Войти
ФлеймФорумПрограммирование

Нубовопросы по С++ (4 стр)

Страницы: 13 4 5 610 Следующая »
#45
22:45, 23 дек. 2012

AvrDragon
> Признайся честно, единственная причина которой тебе не угодил ООП - то что он
> попуплярен. Так что если его начать ругать, то сразу становишься НИ ТАКОЙ КАК
> ВСЕ. Вот и вся причина нелюбви.
  Все гораздо серьезнее чем ты думаешь.

AvrDragon
> лол, 100 раз отлично срабатывала. Irrlicht, UDK, Torque...
  Ага, это мертвые проекты чуть менее чем полностью и при них разработчики
неудачники, обосравшиеся сами и стремящиеся других посадить в лужу

> даже в конечном итоге
> Quake...Или им всем просто "повезло" а на самом деле это не работает, так,
> просто исключения, подтверждающие правило?
  А что случилось с этой кампанией после перехода на ООП? - правильно она
прекратила свое существование. NUFF Said-:(

AvrDragon
> oh, wow~
> А если у тебя в игре 100500 монстров, то будет 100500 глобальных переменных?
  Есть же массивы, используй их вместо своих классов.

AvrDragon
> *сейчас будет удивительная история что мол структуры и приложенные к ним
> глобальные функции - это ок, но вот если сделать это явно с помощью классов, то
> это уже зашквар*
  Скорее ООП-головного мозга)


#46
22:56, 23 дек. 2012

RenGD
> Все гораздо серьезнее чем ты думаешь.
небыдло на сайте

> Ага, это мертвые проекты чуть менее чем полностью и при них разработчики
>неудачники, обосравшиеся сами и стремящиеся других посадить в лужу
ну да, на УДК вон Мортал Комбат вышел. Ну а че, мертвый же.

> А что случилось с этой кампанией после перехода на ООП? - правильно она
>прекратила свое существование. NUFF Said-:(
А что случилoсь с керниганом? До чего человека С довел?

> Есть же массивы, используй их вместо своих классов.
>Скорее ООП-головного мозга)
Да это массивы головного мозга! Используй глобальные переменные для каждого!

#47
23:08, 23 дек. 2012

RenGD
> Ага, это мертвые проекты чуть менее чем полностью и при них разработчики
> неудачники, обосравшиеся сами и стремящиеся других посадить в лужу

аргументируй


RenGD
А что случилось с этой кампанией после перехода на ООП? - правильно она
прекратила свое существование. NUFF Said-:(

ты серьёзно полагаешь, что изменения парадигмы, или переход на новый язык, или другую ось может вот так взять и уничтожить мощную компанию?
Тем более, которой руководят такие люди, как Кармак?

Кстати, а ты в курсе каким образом Кармак имитировал виртуальный полиморфизм?

+ Показать

RenGD
> Есть же массивы, используй их вместо своих классов.

интересно было бы глянуть на твой код, который посложнее, чем хелло ворлд.

#48
23:41, 23 дек. 2012
+ Показать
#49
2:09, 24 дек. 2012
Kartonagnick
> А так вообще то, всякого рода спаггети и говнокод в режиме "включаем турбо,
> завтра боссу уже нужен результат" можно писать и с применением ООП, и в
> процедурном стиле однофикственно.

> говнокод в режиме "включаем турбо, завтра боссу уже нужен результат"
Блин, меня просто порвало с этой фразы xD


По сабжу: ООП, функциональщина, функции/процедуры и прочее - это ж просто инструменты. А в общем и в целом, код должен просто минимально меняться (в идеале - только дописываться, но так не бывает), быть лёгким в чтении и использовании другими людьми. Также, код должен легко писаться. Т.е. мы должны выражать свои мысли ясно, кратко, максимально быстро и удобно.

Я, например, просто не представляю нормальную жизнь без ООП. Причём для меня идеальный ООП - это ООП в Руби/Питоне, а неидеальный - это Ява/Шарп. Хуже в плюсах.
Имхо, "хуже" - это когда надо много знать. "Лучше" - когда знать практически ничего не надо. И тут дело даже не в ООП, а в коде в целом.
Вот в плюсах надо знать, что чтобы не было утечки, нужно делать деструкторы виртуальными - иначе не вызовется деструктор базовых классов (сам не пробовал, лишь читал). Т.е., конечно, если ты читаешь учебники, интересуешь и т.п. - ты знаешь это, но, в идеале, либо компилятор, либо еще что-то, нас должно предупредить о таком баге.

В Ява/Шарпах (я шарп почти не знаю, только на уровне универских туторов) нужно даже для простых задач писать много рутины - для сравнения классов надо всякие IComparable реализовывать. Ну и т.д. Имхо, интерфейсы - это очень плохая штука, просто потому что:
1. Надо запоминать сами интерфейсы (их имена).
2. Надо запоминать все их методы, параметры и т.п.
Ну либо постоянно гуглить вроде "IComparable Java" или как он там называется. Хорошо, что Eclipse решает подобные проблемы. А вот та же студия мне не говорила какие мне методы надо перегрузить. Я вообще не представляю, как народ на шарпе пишет, потому что там IList есть. Который, в свою очередь, впитывает в себя еще интерфейсы. Т.е. геморрой.

В этом случае мне нравится функциональное решение (лямбды), т.е. написать код вида:

arrayOfClasses.sort!`_1.a < _2.b`;
Мне кажется более простым и удобным. Мало того, такой код еще и работать будет быстрее (если речь идёт о D). А если надо отсортировать по другому полю, то мы точно также можем написать другую лямбду (кстати говоря, тут нет лямбд в данном примере :) В Ди такая штука называется "подмешиванием кода" - разновидность макросов).

Из Питона мне очень понравились декораторы. Уже не помню точно синтаксиса, но я делал код для веб-проектов вида:

@auth('usergroup')
def printAdminPage
end
Грубо говоря так. Т.е. декларативно и понятно. Мне очень не хватает такой штуки в Ди.

Вот такие вот неплохие функциональные фишки. Но представить себе жизнь без ООП я просто не могу. И все люди, которые отказываются от ООП на данной стадии прогресса мне представляются, уж извините, не иначе как мудаками. Мне сто раз говорили - прочти SICP - и я начинал читать. Сто раз твердили про лисп и макросы - и я опять читал. Читал мануал по Racket, пробовал с ним колупаться.
Пока не забил. Потому что, я считаю, слишком много времени потратил на поиск преимуществ этих технологий, но не нашёл ничего, кроме недостатков. Я думаю, если бы и вправду были бы преимущества, мы бы их видели.

Говорят, что программы на Лиспе тормозные, поэтому во времена разгара лиспа они не получили популярности. Но ок, а где же эти программы сейчас? Сейчас у нас есть лошадиные мощи, по сравнению с теми временами, а уже написанные на лиспе программы всё еще не получили популярность. Как же так? Целый воз и маленькая тележка линуховских программ пришла еще портированием с Unix, а хвалёные, всемогущие лисп-программы еще не используются, хотя программирование на лиспе/функциональщине в тыщи раз продуктивнее обычного программирования.

Наконец, сам лисп - ни разу не функциональный, а мультипарадигмальный язык. А это говорит о том, что даже во времена поголовного упарывания лиспом, люди осознали, что чисто функциональное программирование - сакс. В том же рэкете есть и функциональщина, и ООП.

#50
9:15, 24 дек. 2012

Chaos_Optima
> вот тебе проверка
> http://liveworkspace.org/code/RRbcZ$0
  FIXED: http://liveworkspace.org/code/1zHcHI$1

#51
9:29, 24 дек. 2012

RenGD
> Наконец, сам лисп - ни разу не функциональный, а мультипарадигмальный язык.

Какие там ещё парадигмы ?

#52
9:56, 24 дек. 2012

Zefick
Если полиморфизм понадобится и в процедурном стиле, то будет точно такой же оверхед. Не могу представить себе вменяемый проект, где полиморфизм может не понадобится

#53
10:01, 24 дек. 2012

innuendo
> Какие там ещё парадигмы ?
Да нет у них ни какой парадигмы. Такая же по сути императивщина! Все конструкции те же самые, только записаны иначе. Например, нельзя средствами языка сделать if или cond

#54
10:27, 24 дек. 2012

d.m.k
> Не могу представить себе вменяемый проект, где полиморфизм может не понадобится
Любая средняя казуальная игра в которой все игровые данные определены еще до начала разработки:)

#55
10:30, 24 дек. 2012

d.m.k
> Да нет у них ни какой парадигмы.

В книжках обратное написано...

> Все конструкции те же самые, только записаны иначе. Например, нельзя средствами
> языка сделать if или cond

Это ты ещё не видел if\else\while на том же smalltalk :)

#56
11:11, 24 дек. 2012

petya-kurochkin
> Мне сто раз говорили - прочти SICP - и я начинал читать.

Я вот тоже начал читать в своё время SICP и почти прочитал (причём перестал глубоко читать когда добрался собственно до самого главного ради чего и начал читать - до создания собственно интерпретатора. оказалось такая банальщина поперла, что я это всё уже из других источников знал).
Так вот - мне "понравилось" та штука, что всю первую четверть/треть SICP соловьём апрельским заливается о том как ФЯ хорошо, какое же то говно - мутабельные данные, как же всё было бы просто если все собрались и начали писать в ФЯ, никаких непредсказуемостей и бла-бла-бла, реально капали этим на мозг треть книги.
Но вот наступило время написать что то посложнее вычисления факториала или обхода списка слева-направо, и о чудо... полезли самые настоящие мутабельные переменные и сам источник зла - специальная форма "set". И о чудо, началось обычное императивное программирование, подпертое разве что только кложурами и хвостовой рекурсией, что непринципиально, и полились потоки говна "это плохо, смотрите сколько проблем появляется в отладке программы и так далее", но нет нет да робко проскальзывает что "однако без этого невозможно (!) реализовать некоторые базовые вещи в том что обсуждали выше (car/cdr вроде бы)". Тут я конечно откровенно фейспалмил.
Более того - позже уже залез на сайт где тестируются скорости разных языков и программы на лиспе схеме там тоже были - и неплохие, да, результаты - зашёл в их код - и о чудо! Всё пестрит set-ами! Хаха. И спрашивается - а нафига мне лисп если на реальных задачах получается всё равно программируют люди в императивном стиле задвигая функциональщину куда подальше? Жесть.

#57
11:13, 24 дек. 2012

innuendo
> Какие там ещё парадигмы ?
Я не спец по парадигмам :) Но вообще, там еще есть ООП.
Вот пруф для Ским:
http://docs.racket-lang.org/guide/classes.html

А вот CLOS:
http://en.wikipedia.org/wiki/Common_Lisp_Object_System

Просто синтаксис отстойный. Только и всего.

#58
11:16, 24 дек. 2012

petya-kurochkin
> Я не спец по парадигмам :) Но вообще, там еще есть ООП.

Вы тогда пишите точнее ... ибо под лиспом многое можно понять

#59
11:17, 24 дек. 2012

=A=L=X=
> И спрашивается - а нафига мне лисп если на реальных задачах получается всё
> равно программируют люди в императивном стиле задвигая функциональщину куда
> подальше? Жесть.

Э... есть реальные задачи... а есть тесты

Страницы: 13 4 5 610 Следующая »
ФлеймФорумПрограммирование

Тема в архиве.