Форум Игромании

Форум Игромании (http://forum.igromania.ru/index.php)
-   Архив (Общеигровые вопросы) (http://forum.igromania.ru/forumdisplay.php?f=173)
-   -   Дискуссия о языках программирования (http://forum.igromania.ru/showthread.php?t=55215)

SINED_SEM 27.12.2007 21:32

Цитата:

Создаю эту тему, ибо надоели споры, какой язык программирования для чего больше подходит. Здесь можно попытаться обсудить, что лучше для обучения, что - для программирования игр и т.п.
За попытку начала подобных дискуссий в других темах буду наказывать. Советы выбрать тот или иной язык программирования давать можно, разводить дискуссию о преимуществах - нет.
Убедительная, подкреплёная увесистым плюсомётом, просьба соблюдать уважение к собеседникам и придерживаться фактов, а не личного мнения ("мне то-то нравится, поэтому всё остальное - ерунда"). Хотя своим опытом, разумеется, делиться можно ("я вот писал на том-то и вышло так-то, а на ином - вот так").
Pokibor
Так что же лучше - C++/C#/pascal???

pokibor 27.12.2007 21:36

Цитата:

Сообщение от SINED_SEM (Сообщение 2972384)
Так что же лучше - C++/C#/pascal???

Не провоцируйте флейм. Если я сейчас отвечу, что C++, придёт noLove и опять начнёт кричать о преимуществах C#. А потом и поклонники Delphi подтянутся. Однозначного ответа Вам вряд ли кто даст. Хорошо знать и то, и другое, и третье. Однако всё-таки неоспоримый факт в том, что пока что большинство сложных профессиональных проектов пишут на проверенным временем C++ и под него наибольшее разнообразие компиляторов. Хотя noLove может и заявить, что C# набирает обороты.

ORTODOX 27.12.2007 22:04

SINED_SEM
С++ тяжок! :) Лучше начинать с паскаля, потом пересесь со временем на делфи... :)
ЗЫ В шапке все в факе есть ;)

noLove 28.12.2007 05:26

Если в дальнейшем человек хочет прогать графику, пусть начинает изучение языков программирования с C#, ибо он легок в освоении и прост в понимании, а так же в нем иной подход к реализации ООП. Все реализовано используя пространства имен и классы.

pokibor, вот не надо ля-ля. Согласись, ведь шарп гораздо проще освоить, чем С++? Начинать надо с простого. Потом, когда товарищ освоит азы кодинга - у него будет выбор, в какую сторону двигаться, захочет - будет плюсы учить, а точнее не плюсы, а тонкости, ибо синтаксис в плюсах такой же как и в шарпе за редкими исключениями. Захочет - будет паскаль учить. Еще раз повторяю. Мне очень нравится в шарпе его чистота, а так же реализация структуры исходного кода. Если тебя так напрягают мои посты про простоту шарпа - давай спросим у товарища SINED_SEM, какой из языков ему понравился бОльше? чисто ради интереса.

ps// начал глосование на rsdn: http://rsdn.ru/poll/1979.aspx

pokibor 28.12.2007 10:55

noLove, не нарывайтесь. Флеймить я вам не дам.
Цитата:

Сообщение от noLove (Сообщение 2975154)
Если в дальнейшем человек хочет прогать графику, пусть начинает изучение языков программирования с C#, ибо он легок в освоении и прост в понимании, а так же в нем иной подход к реализации ООП. Все реализовано используя пространства имен и классы.

Ммм... Интересно. У меня после прочтения создалось впечатление, что Вы считаете C# языком для графики :lol: Не для физики, не для рассчётов уравнений, а именно для графики. В рамках того, что заявленные преимущества сугубо к графике никакого отношения не имеют (они вообще-то общие), то Ваш пост просто-напросто не логичен. Объективно - C# в одинаковой степени подходит для всего, разве что кроме создания оконных интерфейсов (где ему сильно помогает неплохой визуальный редактор).

Цитата:

Сообщение от noLove (Сообщение 2975154)
Согласись, ведь шарп гораздо проще освоить, чем С++?

Не соглашусь. Всё зависит от книжки. C++ не сложнее C# и Pasca (ORTODOX, да-да, именно так). Укажите мне, что там сложного. Работа с памятью? А Вам трудно запомнить, что после new всегда где-нибудь должен быть delete?
А вот с деструкторами в C# действительно проблема. Если в C++ они естественны, то в C# эти самые несчастные Dispose, которые нужно постоянно ручками прогать - тихий ужас. Вы скажете "зачем их использовать"? Я скажу - для получения навыков по созданию абстрактных классов (вроде стеков, деревьев и пр.). Написание такого класса, уж извините, входит в основы программирования (мы его на первом курсе осваивали, чуть ли не сразу после начала занятий).
И если Вы сейчас заявите, что эти классы-де есть в библиотеках C#, то я Вам отвечу, что в реальных приложениях часто бывают нужны не они, а различные их вариации. Сбалансированные деревья, приоритетные очереди, деки и прочее.

Цитата:

Сообщение от noLove (Сообщение 2975154)
Начинать надо с простого. Потом, когда товарищ освоит азы кодинга - у него будет выбор, в какую сторону двигаться, захочет - будет плюсы учить, а точнее не плюсы, а тонкости, ибо синтаксис в плюсах такой же как и в шарпе за редкими исключениями.

Ну вот - синтаксис такой же, как с шарпе. Так чем же так сложны эти несчастные плюсы? Пространства имён и в них есть (std - что такое, по Вашему?) ООП самое настоящее именно в С++ (вообще, меня удивило заявление, что в C# "иной подход к реализации ООП". Чем же он иной-то? ООП в полной мере реализовано в C++ и оттуда перекочевало в C#, с поправками на уборку мусора и разве что урезаниями. Чем подход-то иной, хоть убейте, не понимаю. Наследование на месте, инкапсуляция на месте, полиморфизм на месте. Зато множественного наследования нема, как "проблематичного в реализации". Ну кому-то может оно и проблематично, но вообще-то множественным наследованием никто программиста пользоваться не заставляет, если у него не хватает ума на его грамотную реализацию. А простор при использовании множественного наследования больше.

Цитата:

Сообщение от noLove (Сообщение 2975154)
Захочет - будет паскаль учить. Еще раз повторяю. Мне очень нравится в шарпе его чистота, а так же реализация структуры исходного кода. Если тебя так напрягают мои посты про простоту шарпа - давай спросим у товарища SINED_SEM, какой из языков ему понравился бОльше? чисто ради интереса.

А если ответ будет - Basic? :lol: А что - тоже симпатичный язык. Там даже в конце строки никаких точек с запятыми ставить не надо. Правда, по себе могу сказать, что использование Basic'а и реальное программирование даже на C# - вещи разные...
Серьёзно - я Вам то же самое могу сказать про C++. Что кому нравится - это в области чувств и ощущений, а она не рациональна.
Меня Ваши посты не напрягают. Поставить галочку и нажать "удалить" больших усилий не надо. :Grin:

Цитата:

Сообщение от noLove (Сообщение 2975154)
ps// начал глосование на rsdn: http://rsdn.ru/poll/1979.aspx

Я рад. Только списочек какой-то урезанный. Что там делает Java при наличии C# и где Prolog, например? Считаете, что он неконкурентоспособен? Ох, начну я преимущества пролога с его наследниками расписывать, ох, начну...
Если что - я даже не думал голосовать. Смешно.

ORTODOX 28.12.2007 11:03

noLove
pokibor
может вместо споров создадим здесь голосование, какой язык вы считаете самым лучщим или что-то наподобие?
pokibor
Создай гголосование :))

pokibor 28.12.2007 11:09

ORTODOX
Не создам. Во-первых, оно будет оффтопом. Во-вторых, эти посты также являются оффтопом и будут вскоре удалены. В-третьих, оно бессмысленно.
Война языков, как я уже говорил, всегда скатывается в флейм, ибо её участники находят, к чему придраться у противника, и начинают это со всех сторон бить, параллельно категорически опровергая наличие в своём любимом языке слабых мест. Любой язык имеет свою область применения, как и любая теория. Спорить тут можно долго, нудно и болезнено. Кстати, если сейчас дать SINED_SEM, например, Blitz3D с его Basic'ом, то через полгода он заклеймит позором и C#, и C++, и Delphi. Я Вас уверяю. Проверено на практике.

noLove 28.12.2007 11:12

Цитата:

Сообщение от pokibor (Сообщение 2975655)
Ммм... Интересно. У меня после прочтения создалось впечатление, что Вы считаете C# языком для графики :lol: Не для физики, не для рассчётов уравнений, а именно для графики. В рамках того, что заявленные преимущества сугубо к графике никакого отношения не имеют (они вообще-то общие), то Ваш пост просто-напросто не логичен. Объективно - C# в одинаковой степени подходит для всего, разве что кроме создания оконных интерфейсов (где ему сильно помогает неплохой визуальный редактор).

Я это к тому, что проще будет с шарпа на плюсы пересесть, чем с паскаля на плюсы.

про ООП. в шарпе все строго сгруппировано в пространства имен и классы. Там нельзя создать метод и разместить его вне класса.

ps// про множественное наследование: http://www.gotdotnet.ru/Forums/Common/171156.aspx там разбор полетов

pps// опять это все перерастает в соревнование, у кого "хозяйство" больше.

ppps// пусть SINED_SEM сам выберет, что лучше изучать, попробовав и шарп, и плюсы. а?

pokibor 28.12.2007 11:28

Цитата:

Сообщение от noLove (Сообщение 2975744)
Я это к тому, что проще будет с шарпа на плюсы пересесть, чем с паскаля на плюсы.

Согласен. Хотя... дайте подумать... не совсем согласен. В паскале есть работа с памятью, в C# - нет. С непривычки странновато будет осознавать, что от тебя требуют delete делать.
Цитата:

Сообщение от noLove (Сообщение 2975744)
про ООП. в шарпе все строго сгруппировано в пространства имен и классы. Там нельзя создать метод и разместить его вне класса.

И это - "иной подход к реализации ООП"??? :eek: :lol:
Ндааа... принципиальная разница, ничего не скажешь.
Серьёзно - отличия никакого. Ну нельзя писать функции вне классов ("метод вне класса" есть понятие абсурдное), и что дальше? Ну будет программист вместо того, чтобы сразу писать функцию, сперва класс под неё подгонять. Разница-то какая?
Цитата:

Сообщение от noLove (Сообщение 2975744)
ps// про множественное наследование: http://www.gotdotnet.ru/Forums/Common/171156.aspx там разбор полетов

Ммм... Смысл не ясен. Чуть ли не сразу идёт ссылка на пути обхода вопроса разговора (те самые миксины)... Это всё равно что дать в качестве обхода проблем бейсика ссылку на C++ :lol:
В C# множественного наследования нет, в C++ - есть. Факт в этом. Что множественно наследование может понадобиться - тоже факт, я в этом делая дипломные проект убеждался. Так что всякие разглагольствования, что можно там-де что-то куда-то как-то добавить, неуместны.
Цитата:

Сообщение от noLove (Сообщение 2975744)
ppps// пусть SINED_SEM сам выберет, что лучше изучать, попробовав и шарп, и плюсы. а?

Я ему запрещаю? :eek:

L'ombre 28.12.2007 12:02

Цитата:

Сообщение от noLove (Сообщение 2975154)
иной подход к реализации ООП

угу, там ООП навязывается. даже там, где логичнее обойтись без него. ведь ООП - не панацея, просто довольно удачный подход.
Цитата:

Сообщение от noLove (Сообщение 2975154)
ведь шарп гораздо проще освоить, чем С++?

Цитата:

Сообщение от noLove (Сообщение 2975154)
синтаксис в плюсах такой же как и в шарпе за редкими исключениями

вот, синтаксис мало отличается. а семантика? программа должна быть класом, с методом Main, чтобы вывести что-либо в stdout, нужно городить двухэтажные конструкции (или подлючать двухэтажные namespaces) типа system.console.write. (напоминает dbms_output.putline).
Цитата:

Сообщение от noLove (Сообщение 2975744)
Там нельзя создать метод и разместить его вне класса.

это, по-вашему, преимущество? (ладно уж, к словам придираться не буду). если мы говорим о простоте, то неужели создать класс, чтобы сделать в нём единственный статический метод проще, чем написать аналогичную функцию? (к тому же, в C++ можно сделать и так, и так)
Цитата:

Сообщение от noLove (Сообщение 2975744)
проще будет с шарпа на плюсы пересесть, чем с паскаля на плюсы.

сомнительно. паскаль (имеется в виду нормальный, удовлетворяющий стандартам) больше похож на C++ чем на C#. или важен только синтаксис?


Цитата:

Сообщение от noLove (Сообщение 2975744)
опять это все перерастает в соревнование, у кого "хозяйство" больше.

действительно - с одной стороны я вижу
Цитата:

Сообщение от pokibor (Сообщение 2975655)
Что кому нравится - это в области чувств и ощущений

Цитата:

Сообщение от pokibor (Сообщение 2972445)
Однозначного ответа Вам вряд ли кто даст.

с другой -
Цитата:

Сообщение от noLove (Сообщение 2975154)
Согласись, ведь шарп гораздо проще освоить, чем С++?

Цитата:

Сообщение от noLove (Сообщение 2975744)
проще будет с шарпа на плюсы пересесть, чем с паскаля на плюсы.

и кто, спрашивается, это соревнование затеял

pokibor 28.12.2007 12:34

Дискуссия о языках программирования
 
Создаю эту тему, ибо надоели споры, какой язык программирования для чего больше подходит. Здесь можно попытаться обсудить, что лучше для обучения, что - для программирования игр и т.п.
За попытку начала подобных дискуссий в других темах буду наказывать. Советы выбрать тот или иной язык программирования давать можно, разводить дискуссию о преимуществах - нет.
Убедительная, подкреплёная увесистым плюсомётом, просьба соблюдать уважение к собеседникам и придерживаться фактов, а не личного мнения ("мне то-то нравится, поэтому всё остальное - ерунда"). Хотя своим опытом, разумеется, делиться можно ("я вот писал на том-то и вышло так-то, а на ином - вот так").

В тему перенесены посты из "Вопросы по программированию".

RUSich 28.12.2007 18:08

реально C++ рулит
и несмотря на его сложность начинать бы советовал именно с него так как с самых азов обучения ты будешь иметь представление о работе с памятью и другх нюансах. я начинал с акшион скриптов (это во флеше)
по синтаксису похоже на с++
когда в школе стали преподават QBasic я от него стрелялся.
а в инсте щас С++ изучаю.
и начинать само сабой с консоли.

raxxla 28.12.2007 19:06

Что касается ООП - С++ это function-oriented язык. Можно вообще без классов (обьектов). какое тут ООП?

Цитата:

Цитата:

про ООП. в шарпе все строго сгруппировано в пространства имен и классы. Там нельзя создать метод и разместить его вне класса.
И это - "иной подход к реализации ООП"???
Это не иной а правильный подход к реализации прадигмы ООП.

С++ хоть и быстрее чем Шарп, но зато он не так гибок как последний.

Цитата:

В C# множественного наследования нет, в C++ - есть. Факт в этом. Что множественно наследование может понадобиться - тоже факт, я в этом делая дипломные проект убеждался. Так что всякие разглагольствования, что можно там-де что-то куда-то как-то добавить, неуместны.
Это искажение фактов. Читаем википедию -

Цитата:

C# относится к семье языков с C-подобным синтаксисом, из них его синтаксис наиболее близок к С++ и Java. Язык имеет строгую статическую типизацию, поддерживает полиморфизм, перегрузку операторов, указатели на функции-члены классов, атрибуты, события, свойства, исключения, комментарии в формате XML. Переняв многое от своих предшественников — языков С++, Delphi, Модула и Smalltalk — С#, опираясь на практику их использования, исключает некоторые модели, зарекомендовавшие себя как проблематичные при разработке программных систем: так, C# не поддерживает множественное наследование классов (в отличие от C++) или вывода типов (реализовано в .NET Framework 3.0).
C# - дальнейшее развитее С++. Он по-определению не может быть хуже своего родителя...

pokibor 28.12.2007 19:38

Цитата:

Сообщение от raxxla (Сообщение 2979440)
Что касается ООП - С++ это function-oriented язык. Можно вообще без классов (обьектов). какое тут ООП?

Эм... Вообще-то "можно" и "нужно" - несколько разные слова, не находите?
Ну нравится Вам - можете в C++ хоть все функции в классы запихнуть (а в main единственный вызов нужной прописать) - кто ж мешает-то? ООП там самое обычное.

Цитата:

Сообщение от raxxla (Сообщение 2979440)
Это не иной а правильный подход к реализации прадигмы ООП.

Интересная мысль... То есть "правильный подход" подразумевает вырезание всего, что расширяет возможности? :eek:
Тогда что в C# делает, например, "goto"? Его же наличие неправильно!
P.S. В тему:
Скрытый текст:

http://imgs.xkcd.com/comics/goto.png
Динозаврику надо бы дать имя C#, если следовать Вашей логике...


Цитата:

Сообщение от raxxla (Сообщение 2979440)
С++ хоть и быстрее чем Шарп, но зато он не так гибок как последний.

Ммм... Стоп, я ничего не упустил? То, что по сравнению с C++ в шарпе вырезанно множественное наследование, функции вне классов, возможность работы с памятью и т.п. придало ему гибкости??? У Вас крайне оригинальное понимание гибкости языка, должен сказать! Это ж так QBasic куда гибче шарпа и C++ окажется! :lol:

Цитата:

Сообщение от raxxla (Сообщение 2979440)
C# - дальнейшее развитее С++. Он по-определению не может быть хуже своего родителя...

О Боже... А что, у красивого родителя не может родиться нежизнеспособный уродец? Простите, реальность говорит несколько о другом...
Т.н. "нежизнеспособные" возможности C++ никто не просит использовать, зато они есть, и это придаёт языку гибкости. Тот же goto тоже некоторые называют несуразностью, однако его никто выкидывать не решился (ох, как же я ругался на Java за отсутствие goto, когда одну программу на ней писал!).

noLove 28.12.2007 19:43

3 вещи из за которых не хочу связываться с c++:

1. Описание прототипов процедур и функций и сам программный код в разных файлах.
2. Непонятности с указателями(ну не понимаю я, когда их надо ставить, а когда - нет, хоть убейте)
3. Не очень нравятся стрелки "->" при работе со свойствами объектов, а так же что то для меня не ясное, когда надо ставить точки, а когда эти стрелки.
3.1. Отладка. В шарпе отлаживать свой софт - это просто сказка, чего я не могу сказать о плюсах.

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

ps// а нафига вообще этот гото нужен? я им никогда не пользовался, пока в делфи сидел(около 7 лет).
pps// pokibor, а то, что в плюсах есть множественное наследование, работа с памятью - это делает его круче? Я конечно понимаю, что Вы папа в плюсах, но все-равно, нехорошо намекать на несостоятельность других языков. Я вот шарп люблю, я ж не говорю, что плюсы - фигня, и на них только дети пишут. И не надо мне тут проффессиональный геймдев приводить в пример. Я лично пишу на том, на чем мне легче\проще\удобнее писать, не знаю как остальные. Скажем НЕТ культу личности! :D

pokibor 28.12.2007 19:51

Цитата:

Сообщение от noLove (Сообщение 2979765)
1. Описание прототипов процедур и функций и сам программный код в разных файлах.

Это ввели не просто так, а потому что как раз таки удобно. Можно переписать файл реализации, не трогая файлов заголовков или наоборот. А в C# приходится всё тело класса перерывать.
Цитата:

Сообщение от noLove (Сообщение 2979765)
2. Непонятности с указателями(ну не понимаю я, когда их надо ставить, а когда - нет, хоть убейте)
3. Не очень нравятся стрелки "->" при работе со свойствами объектов, а так же что то для меня не ясное, когда надо ставить точки, а когда эти стрелки.

Ну извините, это уже не сюда! Интеллектуальные способности у каждого свои, я понимаю, однако критикуя C++ подобным образом Вы только создаёте C# славу "языка для тех, кто (хм...) не способен выучить C++".
Цитата:

Сообщение от noLove (Сообщение 2979765)
3.1. Отладка. В шарпе отлаживать свой софт - это просто сказка, чего я не могу сказать о плюсах.

Ммм... А какие претензии к отладке? По-подробнее. Я вот пишу на C++ и на С# под MSVS - почему-то разницы вообще не заметил...
Цитата:

Сообщение от noLove (Сообщение 2979765)
Это чисто мое имхо, и я его никому не навязываю, плюсы знаю хуже шарпа, и опыта работы там меньше... вот так то...

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

Цитата:

Сообщение от noLove (Сообщение 2979765)
ps// а нафига вообще этот гото нужен? я им никогда не пользовался, пока в делфи сидел(около 7 лет).

А вот почитайте комикс, и поймёте. Goto нужен редко, но метко. Порой стоит вопрос - либо goto, либо нагромождение кошмарных циклов. Если Вы его не испоьзовали - значит, не писали сложных программных систем с кучей циклов и условий.
Цитата:

Сообщение от noLove (Сообщение 2979765)
pps// pokibor, а то, что в плюсах есть множественное наследование, работа с памятью - это делает его круче? Я конечно понимаю, что Вы папа в плюсах, но все-равно, нехорошо намекать на несостоятельность других языков. Я вот шарп люблю, я ж не говорю, что плюсы - фигня, и на них только дети пишут. И не надо мне тут проффессиональный геймдев приводить в пример. Я лично пишу на том, на чем мне легче\проще\удобнее писать, не знаю как остальные. Скажем НЕТ культу личности! :D

Это делает его более гибким. Как Вы трактуете мои слова - это Ваши проблемы. Я привожу пример и говорю, что это-то в C++ есть, а в C# - нет. И что это порой бывает очень полезно. Как goto, например.

MigOrec 28.12.2007 20:00

noLove
1. Так никто впринципе не заставляет. Можно писать все в одном файле и безо всяких прототипов. Вот только зачем..
2. Ну тут уж просто не знаю где там можно путаться.. разве что при объевлени какогонибудь "указателя на массив функций возвращающих массив указателей..."
3. Если объект то точка, если указатель на объект, то стрелочка.
3.1 Честно скажу, что в шарпе не писал и не отлаживал, но помоему простота отладки должна зависеть не от языка а от среду в первую очередь..

Цитата:

Я лично пишу на том, на чем мне легче\проще\удобнее писать, не знаю как остальные.
А тут пожалуй соглашусь) Еще на первом курсе нам советовали в первую очередь стараться выбрать язык которые лучше знаешь.. Уж если он ЗНАЧИТЕЛЬНО хуже подходит для реализации поставленной задачи, то стоит искать другой.

raxxla 29.12.2007 15:24

Цитата:

Сообщение от pokibor (Сообщение 2979721)
Эм... Вообще-то "можно" и "нужно" - несколько разные слова, не находите?
Ну нравится Вам - можете в C++ хоть все функции в классы запихнуть (а в main единственный вызов нужной прописать) - кто ж мешает-то? ООП там самое обычное.

Интересная мысль... То есть "правильный подход" подразумевает вырезание всего, что расширяет возможности? :eek:

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

Цитата:

Сообщение от pokibor (Сообщение 2979721)

Ммм... Стоп, я ничего не упустил? То, что по сравнению с C++ в шарпе вырезанно множественное наследование, функции вне классов, возможность работы с памятью и т.п. придало ему гибкости??? У Вас крайне оригинальное понимание гибкости языка, должен сказать! Это ж так QBasic куда гибче шарпа и C++ окажется! :lol:

Классический пример - напишите на С++ программу, которая будет модифицировать сама себя. Тогда поймете почему Шарп гибче..


Цитата:

Сообщение от pokibor (Сообщение 2979721)
О Боже... А что, у красивого родителя не может родиться нежизнеспособный уродец? Простите, реальность говорит несколько о другом...
Т.н. "нежизнеспособные" возможности C++ никто не просит использовать, зато они есть, и это придаёт языку гибкости. Тот же goto тоже некоторые называют несуразностью, однако его никто выкидывать не решился (ох, как же я ругался на Java за отсутствие goto, когда одну программу на ней писал!).

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

А "нежизнеспособные" возможности C++ придают языку только еще больше "нежизнеспособности"... и уж никак не гибкости :lol:

pokibor 29.12.2007 16:48

Цитата:

Сообщение от raxxla (Сообщение 2986124)
Это совсем не так. Правильным (с точки зрения ООП) будет язык, запрещающий или усложнающий (дабы у прораммиста небыло соблазана) приминение методов разработки, идущих в разрез с ООП.

Так мне интересно, почему из C# никто не выкинул goto, который тоже, по такой идее, нужно "запретить или усложнить, дабы не было соблазна".
Подход "запретим, чтобы не было соблазна" бредов по самой своей сути и лишь только показывает ориентацию языка на новичков (чтобы не чувствовали себя такими уж новичками) и бессмысленность для профессионалов (которые отлично знают, что, когда и как надо применять).
Зачем нужен C#, почему не Visual Basic? Ведь в VB-то как раз запрещено много больше, чем в C#... И ООП, по Вашей логике, там даже лучше, чем в C# получается (как раз потому что больше запрещено). А уж Java-то вообще супер-язык! И где она сейчас? Да этим самым C#'ом (который по такой логике хуже неё) вытесняется. Странно? Не то слово.
Короче, логика "запретим, чтобы неповадно было" бредова. Больше напоминает "запретим, потому что нам лень это делать".

Цитата:

Сообщение от raxxla (Сообщение 2986124)
Времена бейсика (когда можно было совсем уже без классов) - давно уже прошли. Да и С++, признаться, староват - пора и ему на покой..

Ой, вот только про времена не надо! Давайте нормальные аргумент: почему C++ устарел. Intel'овские процессоры тоже вон уже старые. Давайте на принципиально новую архитектуру какую перейдём тогда. Скажем, троичные процы выпустим :lol:
Кстати, последняя версия стандарта C++ 2003 годом датируется.
Цитата:

Сообщение от raxxla (Сообщение 2986124)
Классический пример - напишите на С++ программу, которая будет модифицировать сама себя. Тогда поймете почему Шарп гибче..

О, Боже! Не менее классический ответ - я Вам эту программу на Прологе напишу чуть ли не в два счёта, а потому буду говорить, что C++ и C# по сравнению с Прологом - полная фигня и Пролог гибче! :lol:
Цитата:

Сообщение от raxxla (Сообщение 2986124)
Жаль вас расстраивать, но реальность говорит как раз об обратном. Вероятность появления уродцев у нормальных родителей - ничтожна, иначе человечество давно бы уже вымерло..

Ага, как же! Всё зависит от условий. Например, если родители были близкими родственниками, то тут, знаете ли, законы немного иные :wnk:
Я уж не говорю о воспитании и прочем. Как говорил Хазанов, нормальная семья: Отец - врач, мать - учительница, сын - оболтус. Пожалуйста: отец - C++, мать - Java, сын - C#!

Цитата:

Сообщение от raxxla (Сообщение 2986124)
А "нежизнеспособные" возможности C++ придают языку только еще больше "нежизнеспособности"... и уж никак не гибкости :lol:

Нет, я всё-таки Вас не понимаю. Ну не используйте возможности, если не умеете! А множественное наследование гибкости-то придаёт, вот уж не надо! И даже логики. Если есть класс "Стрелок" с реализацией всего, что нужно для стрельбы, и класс "Ходок" - для ходьбы, то множественное наследование - самая логичная вещь, какая только может быть.
А уж работа с памятью - так вообще отличная штука. Хотя бы для оптимизации.

raxxla 29.12.2007 17:42

Цитата:

Сообщение от pokibor (Сообщение 2986928)
Так мне интересно, почему из C# никто не выкинул goto, который тоже, по такой идее, нужно "запретить или усложнить, дабы не было соблазна".
Подход "запретим, чтобы не было соблазна" бредов по самой своей сути и лишь только показывает ориентацию языка на новичков (чтобы не чувствовали себя такими уж новичками) и бессмысленность для профессионалов (которые отлично знают, что, когда и как надо применять).

А вы изучаете С++ чтобы чувствовать себя профи?
Отсюда лозунг - если вы профи по части ООП - используйте goto везде! :lol:

А вообще goto оставили для тех кто перешел на Шарп с других менее ООП языков..

Цитата:

Сообщение от pokibor (Сообщение 2986928)
Зачем нужен C#, почему не Visual Basic? Ведь в VB-то как раз запрещено много больше, чем в C#... И ООП, по Вашей логике, там даже лучше, чем в C# получается (как раз потому что больше запрещено). А уж Java-то вообще супер-язык! И где она сейчас? Да этим самым C#'ом (который по такой логике хуже неё) вытесняется. Странно? Не то слово.

Так мы и до Smalltalk-а дойдем, которому нет равных по части ООП ориентированности. Давайте уже оставаться в рамках раз уж мы начали с С++ и Шарпа. А в конкуренции между Java и Шарпом - победит сильнейший..

Цитата:

Сообщение от pokibor (Сообщение 2986928)
Короче, логика "запретим, чтобы неповадно было" бредова. Больше напоминает "запретим, потому что нам лень это делать".

Вам не лень goto везде пихать? это ваше дело.. пихайте наздоровье :Grin:

Цитата:

Сообщение от pokibor (Сообщение 2986928)
Ой, вот только про времена не надо! Давайте нормальные аргумент: почему C++ устарел. Intel'овские процессоры тоже вон уже старые. Давайте на принципиально новую архитектуру какую перейдём тогда. Скажем, троичные процы выпустим :lol:

Некорректное сравнение ситуации. У интел архитектуры щас нет разумной замены. Куда вы там собрались переходить? В ситуации между Шапом и С++ все иначе.

Цитата:

Сообщение от pokibor (Сообщение 2986928)
О, Боже! Не менее классический ответ - я Вам эту программу на Прологе напишу чуть ли не в два счёта, а потому буду говорить, что C++ и C# по сравнению с Прологом - полная фигня и Пролог гибче! :lol:

Надеюсь используемый вами Пролог будет не менее классическим чем ваш ответ.. поясню - как давно у пролога появились фичи написания метапрограмм?

А вообще, если напишите - то так оно и будет, Пролог окажется гибче.

Цитата:

Сообщение от pokibor (Сообщение 2986928)
Например, если родители были близкими родственниками, то тут, знаете ли, законы немного иные :wnk:
Я уж не говорю о воспитании и прочем. Как говорил Хазанов, нормальная семья: Отец - врач, мать - учительница, сын - оболтус. Пожалуйста: отец - C++, мать - Java, сын - C#!

без комментариев.. :rolleyes:

Цитата:

Сообщение от pokibor (Сообщение 2986928)
Нет, я всё-таки Вас не понимаю. Ну не используйте возможности, если не умеете! А множественное наследование гибкости-то придаёт, вот уж не надо! И даже логики. Если есть класс "Стрелок" с реализацией всего, что нужно для стрельбы, и класс "Ходок" - для ходьбы, то множественное наследование - самая логичная вещь, какая только может быть.
А уж работа с памятью - так вообще отличная штука. Хотя бы для оптимизации.

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


Часовой пояс GMT +4, время: 23:47.

Powered by vBulletin® Version 3.8.0
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.