Среда, 27 Ноября 2024, 17:47

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 2 из 3
  • «
  • 1
  • 2
  • 3
  • »
Вот в общем то прочитал статью и задумался
-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
постоянный участник
Сейчас нет на сайте
Опять же на лицо имитация непонимания, вызванная жаждой срача biggrin

ООП - это не хорошо и не плохо. Это такой мультитул. Очень правильный и полезный при решении задача ДЛЯ КОТОРЫХ ОН БЫЛ ПРИДУМАН.
Попытка заколачивать им гвозди или переносить нанотехнологические молекулы приводят к нелогичным, но по человечески понятным, высерам "ах какая гадость этот ваш ООП!" cool biggrin
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
Сейчас нет на сайте
Ну что то понесло меня biggrin . Просто скажем так - я лучше выберу связку C + Python для своих проектов и Java для работы в будущем(если не найдется работа C программисту)

Жизнь игра, и мы в ней пешки... А я кушаю пельмешки)
AlexRabbitДата: Понедельник, 30 Декабря 2013, 17:02 | Сообщение # 28
старожил
Сейчас нет на сайте
Как программист Вы должны не "выбирать" а изучить все эти языки + несколько парадигм программирования, включая, в обязательном порядке - ООП.
al_mtДата: Понедельник, 30 Декабря 2013, 17:08 | Сообщение # 29
постоянный участник
Сейчас нет на сайте
Цитата vasua99 ()
я лучше выберу связку C + Python для своих проектов и Java для работы в будущем(если не найдется работа C программисту)

Во-во biggrin
Именно это обычно и говорят безработные программисты biggrin biggrin biggrin biggrin
AlexRabbitДата: Понедельник, 30 Декабря 2013, 17:10 | Сообщение # 30
старожил
Сейчас нет на сайте
Цитата al_mt ()
Именно это обычно и говорят безработные программисты

тссссс! еще конкурент вырастет. ну нафиг happy
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
Сейчас нет на сайте
biggrin


Жизнь игра, и мы в ней пешки... А я кушаю пельмешки)
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)
---------------------------------------------
А вообще:

biggrin


Жизнь игра, и мы в ней пешки... А я кушаю пельмешки)

Сообщение отредактировал 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 ()
Простите, вы о каком ЯП? Я не понимаю вас, судари...

Обо всех.


  • Страница 2 из 3
  • «
  • 1
  • 2
  • 3
  • »
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг