Вот в общем то прочитал статью и задумался
|
|
-l33t-h4xx- | Дата: Понедельник, 30 Декабря 2013, 14:43 | Сообщение # 21 |
участник
Сейчас нет на сайте
| Цитата vasua99 ( ) Или сама концепция ООП. против самой концепции я не имею ничего против. Цитата vasua99 ( ) Я хочу сказать, что по сути ООП большой костыль, которые придумали обкуренные люди Противоречие. Или ты не понимаешь, о чём говоришь, или ты лицемер, разжигающий срачи. Ни то, ни другое не заслуживает уважения.
Как правильно задавать вопросы
|
|
| |
stalker5889 | Дата: Понедельник, 30 Декабря 2013, 14:44 | Сообщение # 22 |
Свободный игродел
Сейчас нет на сайте
| Цитата vasua99 ( ) А назовите хоть один конкурентоспособный(если они вообще есть) видеодрайвер написанный на ООП языке? Не надо бросаться из крайности в крайность. Я не предлагаю писать hello world с использованием кучи классов. Низкоуровневое программирование уместно при написании драйверов, программировании МК, но не игр. Так же и наоборот.
|
|
| |
cyril | Дата: Понедельник, 30 Декабря 2013, 15:09 | Сообщение # 23 |
был не раз
Сейчас нет на сайте
| Цитата vasua99 ( ) Только вот такие проекты как Linux(+Unix), Apache, CPython, JVM показывают обратное. а по-моему они показывают именно то самое, во всем уступая своим коммерческим собратьям по функциональности, простоте, удобству использования, срокам выхода новых версий, да и всему остальному.
|
|
| |
al_mt | Дата: Понедельник, 30 Декабря 2013, 16:12 | Сообщение # 24 |
постоянный участник
Сейчас нет на сайте
| Опять же на лицо имитация непонимания, вызванная жаждой срача
ООП - это не хорошо и не плохо. Это такой мультитул. Очень правильный и полезный при решении задача ДЛЯ КОТОРЫХ ОН БЫЛ ПРИДУМАН. Попытка заколачивать им гвозди или переносить нанотехнологические молекулы приводят к нелогичным, но по человечески понятным, высерам "ах какая гадость этот ваш ООП!"
|
|
| |
AlexRabbit | Дата: Понедельник, 30 Декабря 2013, 16:39 | Сообщение # 25 |
старожил
Сейчас нет на сайте
| Цитата al_mt ( ) Очень правильный и полезный при решении задача ДЛЯ КОТОРЫХ ОН БЫЛ ПРИДУМАН. +100
Цитата Labirintik ( ) вот Топ саммых популярный Языков программирования и у него на первом месте язык без ООП, ну согласен это не аргумент
Как уже сказано выше не надо путать языки программирования и парадигмы программирования. На Си можно, при желании, писать используя ООП подход.
ООП - это не features языка, это способ моделирования, способ решения задачи. Возможности языка могут облегчать применение принципов ООП, могут не мешать, а могут усложнять применение этих принципов. Да, есть языки изначально "заточенные" под эту концепций (Java, C#). Но не надо совершать ошибку ставя знак равенства между языком и типом программирования.
Сообщение отредактировал AlexRabbit - Понедельник, 30 Декабря 2013, 16:45 |
|
| |
ant0N | Дата: Понедельник, 30 Декабря 2013, 16:52 | Сообщение # 26 |
постоянный участник
Сейчас нет на сайте
| Некоторые люди думают что ООП это седьмое чудо света. Вообще-то ничего сверхъестественного в ней нет, ООП не лучше и не хуже процедурного программирования. Просто всегда должны быть альтернативы... Выбирайте то, что вам больше нравится. Я пробовал обе парадигмы и мне без разницы как писать, все зависит от движка (а точнее от языка, который в нем используется).
Blender 3D, Godot Engine, LUA
|
|
| |
vasua99 | Дата: Понедельник, 30 Декабря 2013, 16:58 | Сообщение # 27 |
GNU follower
Сейчас нет на сайте
| Ну что то понесло меня . Просто скажем так - я лучше выберу связку C + Python для своих проектов и Java для работы в будущем(если не найдется работа C программисту)
Жизнь игра, и мы в ней пешки... А я кушаю пельмешки)
|
|
| |
AlexRabbit | Дата: Понедельник, 30 Декабря 2013, 17:02 | Сообщение # 28 |
старожил
Сейчас нет на сайте
| Как программист Вы должны не "выбирать" а изучить все эти языки + несколько парадигм программирования, включая, в обязательном порядке - ООП.
|
|
| |
al_mt | Дата: Понедельник, 30 Декабря 2013, 17:08 | Сообщение # 29 |
постоянный участник
Сейчас нет на сайте
| Цитата vasua99 ( ) я лучше выберу связку C + Python для своих проектов и Java для работы в будущем(если не найдется работа C программисту) Во-во Именно это обычно и говорят безработные программисты
|
|
| |
AlexRabbit | Дата: Понедельник, 30 Декабря 2013, 17:10 | Сообщение # 30 |
старожил
Сейчас нет на сайте
| Цитата al_mt ( ) Именно это обычно и говорят безработные программисты тссссс! еще конкурент вырастет. ну нафиг
|
|
| |
cyril | Дата: Понедельник, 30 Декабря 2013, 17:12 | Сообщение # 31 |
был не раз
Сейчас нет на сайте
| ООП эффективно для разработки сложных проектов большими командами. Вы можете не понимать преимуществ, пока вы пишите весь код в одиночку, но представьте что вас человек 20, и вам нужно как-то решить как наиболее эффективно распределить работу, как потом соединить это все в одну систему. Пример сложного проекта без ООП - это как раз линукс, из которого например убогий X Window уже 20 лет не могут убрать и заменить чем-то более лучшим
|
|
| |
Andrey_M | Дата: Понедельник, 30 Декабря 2013, 17:27 | Сообщение # 32 |
старожил
Сейчас нет на сайте
| Цитата AlexRabbit ( ) Как программист Вы должны не "выбирать" а изучить все эти языки + несколько парадигм программирования, включая, в обязательном порядке - ООП. Лучше уж изучить один-два похожих языка в совершенстве, чем 100 разных языков, путаясь в них. Помнишь, как выучить С++ за 21 день?
ЪЪЪЪ! Лучшая благодарность - плюс в репутацию :-)
|
|
| |
vasua99 | Дата: Понедельник, 30 Декабря 2013, 17:38 | Сообщение # 33 |
GNU follower
Сейчас нет на сайте
|
Жизнь игра, и мы в ней пешки... А я кушаю пельмешки)
|
|
| |
OpenGOO | Дата: Вторник, 31 Декабря 2013, 02:43 | Сообщение # 34 |
почти ветеран
Сейчас нет на сайте
| Цитата vasua99 ( ) Как то задумался. А ведь на самом деле так выходит. Суть в том, что компьютер понимает только свой язык. И такие языки как C, B и т.д больше к нему приближенны чем допустим C++, D, C#, Java.
Только ассемблер ближе всех к железу, но что-то я не вижу чтобы он был самым популярным языком. С++ близок к железу так же как и Си.
По поводу легче читается, вот кусок примера
Код // Define the gravity vector. b2Vec2 gravity(0.0f, -10.0f);
// Construct a world object, which will hold and simulate the rigid bodies. b2World world(gravity);
// Define the ground body. b2BodyDef groundBodyDef; groundBodyDef.position.Set(0.0f, -10.0f);
// Call the body factory which allocates memory for the ground body // from a pool and creates the ground box shape (also from a pool). // The body is also added to the world. b2Body* groundBody = world.CreateBody(&groundBodyDef);
// Define the ground box shape. b2PolygonShape groundBox;
// The extents are the half-widths of the box. groundBox.SetAsBox(50.0f, 10.0f);
// Add the ground fixture to the ground body. groundBody->CreateFixture(&groundBox, 0.0f);
тоже самое но в ООП стиле
Код B2World world(0.0f, -10.0f); B2Rect ground(0.0f, -10.0f, 100.0f, 20.0f); world.add(&ground);
Мои проекты: - Свободный и открытый клон World Of Goo - TrueEngine2D (2D игровой фреймворк основанный на FreeBASIC)
[GameMaker: Studio v1.4.9999]
|
|
| |
morglodd | Дата: Вторник, 31 Декабря 2013, 04:47 | Сообщение # 35 |
частый гость
Сейчас нет на сайте
| Как и писалось выше ООП хорош для решения некоторых задач и несомненно можно процедурами, но зачем всё усложнять?
Код class Object{ void update(); void render(); void move(); void rotate(); }
class TriggerObject : Object{ void update(){ if in zone -> invoke(); } }
world -> update(){ foreach object{ object.update(); object.render(); } }
main{ World world; world.add( new Object() ); world.add( new TriggerObject() );
loop{ world.update(); } }
Пусть здешние гиганты мысли и товарищи не любящие ооп, реализуют мне этот кусок псевдо кода процедурно, не используя ни одного объекта
C++/C#/PHP/JavaScript/ASM
|
|
| |
vasua99 | Дата: Вторник, 31 Декабря 2013, 11:13 | Сообщение # 36 |
GNU follower
Сейчас нет на сайте
| На структурурах все отлично выходит. И все ваши ООП тоже неплохо выходят. Только при этом ты все контролируешь, т.к сам задаешь что может наследоваться, а что нет. Ибо глупо наследовать std::string делая из него квадратную матрицу. Но даунов много бывает.
Код #define TRIGGER_OBJECT 1 #define OBJECT 0 typedef int type_object;
void trigger_update(trigger_object *); void object_update(object *);
typedef struct { static const type_object type = TRIGGER_OBJECT; static const void (*update)(struct trigger_object *) = trigger_update; } object;
typedef struct { static const type_object type = OBJECT; static const void (*update)(struct object *) = object_update; } trigger_object;
...
int main() { trigger_object t_obj; object obj; obj.update(obj); t_obj.update(t_obj);
return 0; } Добавлено (31.12.2013, 11:13) --------------------------------------------- А вообще:
Жизнь игра, и мы в ней пешки... А я кушаю пельмешки)
Сообщение отредактировал vasua99 - Вторник, 31 Декабря 2013, 11:11 |
|
| |
stalker5889 | Дата: Вторник, 31 Декабря 2013, 11:22 | Сообщение # 37 |
Свободный игродел
Сейчас нет на сайте
| vasua99, а структуры - это разве не классы с членами объявленными как public?
|
|
| |
Andrey_M | Дата: Вторник, 31 Декабря 2013, 11:33 | Сообщение # 38 |
старожил
Сейчас нет на сайте
| Простите, вы о каком ЯП? Я не понимаю вас, судари...
ЪЪЪЪ! Лучшая благодарность - плюс в репутацию :-)
|
|
| |
vasua99 | Дата: Вторник, 31 Декабря 2013, 11:34 | Сообщение # 39 |
GNU follower
Сейчас нет на сайте
| Цитата stalker5889 ( ) vasua99, а структуры - это разве не классы с членами объявленными как public? в С++ - да. В С нет.
Жизнь игра, и мы в ней пешки... А я кушаю пельмешки)
|
|
| |
stalker5889 | Дата: Вторник, 31 Декабря 2013, 11:34 | Сообщение # 40 |
Свободный игродел
Сейчас нет на сайте
| Цитата Andrey_M ( ) Простите, вы о каком ЯП? Я не понимаю вас, судари... Обо всех.
|
|
| |