Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Пару вопросов о наболевшем


Автор: sidiakin 13.8.2013, 20:38
Вот мне нравится язык С++, но то как там сделано ООП прост ужас. Вот мне интересно люди кто работает С++ -программистами действительно пишут в стиле ООП или это не обязательно? Я бы с удовольствием работал на Си, но если ООП для Сишников обязательно, то лучше какойнить C#

И вот интересно. В новом ЯП Go отсутствует ООП. Получается что ООП себя не оправдало? Оказалось что оно никому не нужно

Автор: Amp 13.8.2013, 22:23
Цитата(sidiakin @  13.8.2013,  20:38 Найти цитируемый пост)
 С++ -программистами действительно пишут в стиле ООП или это не обязательно

Каждый новый класс в коде - это +0.01% к окладу для C++ программиста, вот и пишут в ООП стиле. Плюются, но пишут. А по вечерам собираются за столиком на кухне и рассказывают друг-другу байки про программистов на Go, которым не надо писать классы и которых лично никто не знает.

Автор: kemiisto 13.8.2013, 23:14
Цитата(sidiakin @  13.8.2013,  19:38 Найти цитируемый пост)
Вот мне нравится язык С++, но то как там сделано ООП прост ужас.

И в чём же ужас?

Цитата(sidiakin @  13.8.2013,  19:38 Найти цитируемый пост)
Вот мне интересно люди кто работает С++ -программистами действительно пишут в стиле ООП или это не обязательно?

Пишут. Обязательно или нет - это зависит от задачи.

Цитата(sidiakin @  13.8.2013,  19:38 Найти цитируемый пост)
В новом ЯП Go отсутствует ООП.

Это откуда информация? Я бегло глянул, есть там ООП. Наследования нет. Так оно к ООП имеет опосредованное отношение. Нужен полиморфизм, а как он реализован на языковом уровне - дело десятое. А полиморфизм в go есть.

Цитата(sidiakin @  13.8.2013,  19:38 Найти цитируемый пост)
Получается что ООП себя не оправдало?

Вывод странный. "Классическое" ООП на манер C++/Java, да, пожалуй не самое оно, но к ООП вообще это отношения не имеет.

Автор: NoviceF 14.8.2013, 08:13
Цитата(sidiakin @  13.8.2013,  21:38 Найти цитируемый пост)
Я бы с удовольствием работал на Си

Так а при чём тогда c++?

Цитата(sidiakin @  13.8.2013,  21:38 Найти цитируемый пост)
 то лучше какойнить C#

И чем c# лучше в плане ООП?

Автор: jsharp36 14.8.2013, 09:08
Пока альтернативы особой ООП нет. Например, функциональные языки - отличная штука, но всё составляется из функций - это математика. ООП - всё составляется из функций и объектов - это близко к естественному языку - предложения требуют подлежащего и сказуемого. Это ад, конечно, с т.з. правильности моделирования. В естественном языке и свет светит и ветер дует (хотя нет объекта ветер и действия дуть, также как нет объекта свет и его отдельного действия свечения). В ООП этот ад на проектах всяких энтерпрайзов в моделях тоже проявляется. В объектах "бизнес-правило", в паттернах.
Но что поделать, так устроено мышление большинства людей. А значит удобно, низкий порог вхождения.

С++ и С# мало чем в ООП отличаются, кроме отсутствия в последнем множественного наследования. Если это хорошо, то в первом есть возможность его не использовать.

Этот ответ добавлен с нового Винграда - http://ru.vingrad.com//object-id520a6f366ccc19bb72000002#findElement_E7045_520b1eef6ccc19d40c000483_0

Автор: kemiisto 14.8.2013, 09:28
Цитата(jsharp36 @  14.8.2013,  08:08 Найти цитируемый пост)
С++ и С# мало чем в ООП отличаются, кроме отсутствия в последнем множественного наследования.

Точнее, в C# (как и в Java) нет множественного наследования реализации, а есть только множественное наследование интерфейса. Но это тоже палка о двух концах, так как часто пораждает кучу одинакового кода в классах, реализующих один и тот же интерфейс. Поэтому многие новомодные языки поддерживают механизм примесей (mixin). C#, вроде, даже и сам как-то там поддерживает на уровне библиотек.

Автор: bsa 14.8.2013, 13:05
jsharp36, ООП к языку не имеет никакого отношения. Другое дело, что в одних языках его использовать удобней, чем в других. Посмотри например на SDL и на ядро Linux - типичные ОО программы, но на языке С.
Так что тут дело в головах, а не языках.

Автор: jsharp36 14.8.2013, 13:53
Цитата

   ООП к языку не имеет никакого отношения
   

Я не утверждал, что ООП гвоздями прибито к языку. Но вообще, отношение имеет. Язык определяет мышление. Т.е. инструмент определяет, как им удобнее пользоваться.

Да, я в своем сообщении подразумевал ООП джавовского, С++-сного типа. И популярность ООП связана с нашим естественным мышлением и его недостатками. Отсюда и недостатки ООП.

Любая парадигма не имеет прямого отношения к языку. Но тем не менее, одни языки предрасполагают к ООП, другие нет.

Этот ответ добавлен с нового Винграда - http://ru.vingrad.com//object-id520a6f366ccc19bb72000002#findElement_E7045_520b61a86ccc190e42002352_0

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)