Guillaume Marceau опубликовал (http://gmarceau.qc.ca/blog/2009/05/speed-size-and-dependabil...) наглядный обзор параметров 72 реализаций языков программирования, использовав для этого 19 специальных тестов, подготовленных проектом "The Computer Language Benchmarks Game (http://shootout.alioth.debian.org/)", в рамках которого производится ежедневный анализ изменения параметров 1368 приложений из состава Debian, после их пересборки или выполнения различными версиями компиляторов и интерпретаторов. Оцениваются такие параметры, как скорость выполнения, потребление памяти и размер исходного кода, необходимый для реализации определенных функций.
В итоге, для сравнительной оценки изменения поведения языков в зависимости от выполняемых задач, был подготовлен достаточно интересный визуальный отчет (http://gmarceau.qc.ca/blog/uploaded_images/size-vs-speed-vs-...), в корне отличающийся от стандартных диаграмм, используемых при подобных сравнениях. Параметры каждого я...URL: http://gmarceau.qc.ca/blog/2009/05/speed-size-and-dependabil...
Новость: http://www.opennet.me/opennews/art.shtml?num=21974
Идеальный язык - stalin :D
> быстрым, но усложненным системным языкам, при этом в нижний правый угол будет привязан к элегантным, но медленным, скриптовым языкам.К таким высказываниям лучше прикладывать "ИМХО". Не вижу ничего элегантного в "медленных скриптовых" языках, только очень загадочный местами код и очень много возможностей лепить трудноуловимые баги. Усложнённость же "быстрых системных" языков (видимо имеется в виду C++) включает в себя всего несколько свежих концепций, в основном взятых из других языков (см. "Дизайн и эволюция C++"), которые совсем не сложно освоить, достаточно прочитать 2-3 толковые книжки.
Страунструп - голова. Кроме него к С++ приложили свои мозги такие монстры, как Керниган, Дуг Маккилрой и прочие легендарные личности, все работали одной командой. Если мы чего-то там не понимаем, нужно помнить, что мы мало читали в детстве, и не те книжки скорее всего, что надо стремиться к знаниям, а не искать ленивого успокоения в мутной тухлой заводи "элегантных" медленных скриптовых языков.
Мне больше gnat понравился.
>Мне больше gnat понравился.Концепция, и работа ады прекрасная, мне после С++ очень понравилось, да и компонетное программированое реализуется классно. Вот только одно но, паскально-модульный синтаксис это нечто, не могу его не то что бы осилить, но когда пишеш на С постоянно, даже на лиспе и хаскеле легче писать, нежели на паскально-модульном. А в целом и реализация у гната хорошая, и язык мощьный и количество биндингов тоже неплохо для старта.
А то что можно и ссылки и указатели и gc и прямое высвобождение смешивать - это заставило проникнуться:)
>>Мне больше gnat понравился.
>
>Концепция, и работа ады прекрасная, мне после С++ очень понравилось, да и
>компонетное программированое реализуется классно. Вот только одно но, паскально-модульный синтаксис это нечто,Чем же в институте занимался??? Там именно Паскаль преподают.
В МГУ, например, на кое-каком факультете, про модули на паскале не заикаются. Всё хоть сколько-нибудь серьёзное предлагается писать на си, си++ и потом на чём угодно
Конечно. Своих то языков в МГУ, поди, нет ? ;-)
Поэтому Pascal не полюбили.
> Конечно. Своих то языков в МГУ, поди, нет ? ;-)Как же ж... КуМИР :)
А Паскаль рекомендован UNESCO, с целью сохранения мозга детей (даже не Бейсик).
В институтах обучают ТЕХНИКЕ программирования. Поэтому и начинают с Паскаля по одной простой причине, синтаксис у него понятен для новичков. После выпуска Вы можете программировать хоть на брэйн факе, все необходимые навыки у Вас уже будут.
Синтаксис С чуть-чуть сложнее чем у Паскаля. Начинать с ненужного паскаля чтобы было проще - держать студентов за идиотов. Но если они действительно идиоты, то программистами всё равно не станут , и можно начинать с С.
Незнаю как у вас в институтах, а у нас в Универах... -:)
ну нас редложили С или Паскаль. Мы выбрали С. Знаете, нисколько не жалею...
>Незнаю как у вас в институтах, а у нас в Универах... -:)
>
>ну нас редложили С или Паскаль. Мы выбрали С. Знаете, нисколько не жалею...если подразумевалось, что профессионал обязан уметь абстрагироваться от конкретных реализаций и решать задачи, то я с вами согласен.
но если вы убеждены в преимуществе языка с архаичной структурой, то мне вас жаль.
кроме того, вы не уточнили поколения, диалекты. паскаль значительно прогрессировал (да и паскаля в классическом представлении уже давно нет), си тоже не стоял на месте.
у языка С есть суровые преймущества в некоторых применениях. Знание С может оказаться полезным.
>[оверквотинг удален]
>>
>>ну нас редложили С или Паскаль. Мы выбрали С. Знаете, нисколько не жалею...
>
>если подразумевалось, что профессионал обязан уметь абстрагироваться от конкретных реализаций и решать
>задачи, то я с вами согласен.
>но если вы убеждены в преимуществе языка с архаичной структурой, то мне
>вас жаль.
>кроме того, вы не уточнили поколения, диалекты. паскаль значительно прогрессировал (да и
>паскаля в классическом представлении уже давно нет), си тоже не стоял
>на месте.Имхо, С, как первый язык для изучения, лучше позволяет абстрагироваться.
Гораздо меньше ограничений в том, как писать код - в одну строку, или в несколько; как использовать операторы и т.д. - создается гораздо меньше стереотипов.
А стереотипы - это зло для программирования и вообще для творчества.
Знаете, лучший язык для изучения в качестве первого это форт, как раз согласно Вашим аргументам. Свобода там полная, уровень абстракции любой - хоть AI для микроконтроллера пиши, и скорость исполнения не хилая. А ещё форт это отличный способ почувствовать как свобода может мешать на серьёзных проектах и почему другие языки её ограничивают. Главное не заиграться слишком долго :)
>Знаете, лучший язык для изучения в качестве первого это форт, как раз
>согласно Вашим аргументам. Свобода там полная, уровень абстракции любой - хоть
>AI для микроконтроллера пиши, и скорость исполнения не хилая. А ещё
>форт это отличный способ почувствовать как свобода может мешать на серьёзных
>проектах и почему другие языки её ограничивают. Главное не заиграться слишком
>долго :)Ну... я все-же ещё бы оглядывался на мейнстрим)
Язык С дает ровно столько абстракции, сколько её нужно, для программирования на распространенных языках с синтаксисом, как у С - C / C++ / C# / php / perl / java и т.д.
Если я правильно понял, как это интерпретировать, Ruby и Python ни на что не годятся. Так и знал.
>Если я правильно понял, как это интерпретировать, Ruby и Python ни на
>что не годятся. Так и знал.Угу. Продолжайте писать на brainfuck'е =)
Годятся в случае, когда задача не тяжелая и производительность не критична, как и другие скриптовые языки.
А правильно ли будет некую логику, например, в игре типа Heroes Might and Magic, писать на скриптовых языках, а оставшуюся критичную часть (вывод графики) - С/C++ ? И - какое соотношение будет критичных частей кода к некритичным в такой игре?Мне просто иногда кажется, что важность С/С++ в том же игрописании слегка преувеличена.
Афайк, в игрописании не больно-то и практикуют сплошные си.
Движек да, С/С++, а игровая логика на каком-нить lua.
>Афайк, в игрописании не больно-то и практикуют сплошные си.
>Движек да, С/С++, а игровая логика на каком-нить lua.но движок то на С/С++. :-D
>А правильно ли будет некую логику, например, в игре типа Heroes Might
>and Magic, писать на скриптовых языках, а оставшуюся критичную часть (вывод
>графики) - С/C++ ? И - какое соотношение будет критичных частей
>кода к некритичным в такой игре?
>
>Мне просто иногда кажется, что важность С/С++ в том же игрописании слегка
>преувеличена.На C/C++ пишется движок.
А AI (искуственный интеллект), GUI (интерфейс) и прочие вещи можно писать на чем угодно.
На lua, python, perl.
Да хоть на php )Фишка в том, что компании часто покупают готовый графический движок.
А все AI/GUI и прочая пишут свои, на чем им нравится.
Причем компания может оставить эти скрипты в виде простых файлов (не шифровать).
И тогда энтузиасты пишут всякие моды.
>А правильно ли будет некую логику, например, в игре типа Heroes Might
>and Magic, писать на скриптовых языках, а оставшуюся критичную часть (вывод
>графики) - С/C++ ? И - какое соотношение будет критичных частей
>кода к некритичным в такой игре?
>
>Мне просто иногда кажется, что важность С/С++ в том же игрописании слегка
>преувеличена.Игровым программистам платят меньше, поэтому и идут туда те, кто кроме C++ ничего не знает(Дай бог, чтобы это на нормальном уровне знал).
>Игровым программистам платят меньше, поэтому и идут туда те, кто кроме C++ ничего не >знает(Дай бог, чтобы это на нормальном уровне знал).Ну, если человек __хорошо__ знает C++, то всё остальное ему уже не особенно и нужно. ;-)
Типа консоль, кофе и можно денег не платить? Как с вами связаться ? есть работенка!
Тролль ?
Программист Perl ;)
>Программист Perl ;)Программисты Perl обычно ругаются на php =)
P.S.
Вы ничего не подумайте, я сам пишу на Perl)
>Программисты Perl обычно ругаются на php =)а то, постоянно и очень сильно. и в большенстве своем этому способствуют не столько сам язык, сколько разработчики и переход от одной версии к другой.
Мне понравился Си, РНР.
> верхний левый угол которого будет соответствовать быстрым, но усложненным
> нижний правый угол будет привязан к элегантным, но медленным, скриптовым языкамЯ так понимаю, по оси X - элегантность, по оси Y - скорость.
> В верхнем правом углу разместятся устаревшие языки, а в нижнем левом - идеальные языки, быстрые и удобные.
Тогда тут все должно быть ровно наоборот.
Прочитал. Оси - тормознутось и размер кода :)
зашибись тесты! значит на пхп в несколько процессов идет обработка http://shootout.alioth.debian.org/u32q/benchmark.php?test=bi... а на перле в одно рыло? http://shootout.alioth.debian.org/u32q/benchmark.php?test=bi...
чудесно передергиваем!
>зашибись тесты! значит на пхп в несколько процессов идет обработка http://shootout.alioth.debian.org/u32q/benchmark.php?test=bi... а
>на перле в одно рыло? http://shootout.alioth.debian.org/u32q/benchmark.php?test=bi...
>чудесно передергиваем!Кстати да, +1.
Не осилили переписать на Perl?
похоже, что авторы решили проделать огромную, но пустую и ненужную работу, чтобы убить время. Подобные операции обычно жутко оптимизируются. И зачем пихать их в скрипты, которые не то, что не в курсе про память, они вообще интерпретируются. И еще одна странность - обычный для таких штук Фортран обошли стороной. Нипонятнооо...
> обычный для таких штук Фортран обошли стороной. Нипонятнооо..Чего тут непонятного, это не универсальный язык. Он заточен исключительно под расчеты -- все счетные тесты будут лежать в левом нижнем углу отдельно от всех. В счетном классе задач фортран обгоняет все языки. А вообще тест -- дерьмо. Кобола нет, смолтока нет, лиспа нет.
>> обычный для таких штук Фортран обошли стороной. Нипонятнооо..
>
>Чего тут непонятного, это не универсальный язык. Он заточен исключительно под расчеты
>-- все счетные тесты будут лежать в левом нижнем углу отдельно
>от всех. В счетном классе задач фортран обгоняет все языки. А
>вообще тест -- дерьмо. Кобола нет, смолтока нет, лиспа нет.это понятно. Но и задачка не "универсальная", а счетная. Да и языки, в таком случае, там тоже далеко не все универсальные. Т.е. мне не понятны 2 вещи: что хотел показать автор с практической точки зрения и чем обоснован его выбор. :)
>> обычный для таких штук Фортран обошли стороной. Нипонятнооо..
>
>Чего тут непонятного, это не универсальный язык. Он заточен исключительно под расчеты
>-- все счетные тесты будут лежать в левом нижнем углу отдельно
>от всех. В счетном классе задач фортран обгоняет все языки. А
>вообще тест -- дерьмо. Кобола нет, смолтока нет, лиспа нет.кроме кобола все вышеперечисленное есть. не в диаграмме, в результатах, которые можно между собой сравнить. и фортран, и лисп, и смолтолк. разуваем глаза и смотрим внимательнее http://shootout.alioth.debian.org/
странно, но java в сравнении не увидел. наверное выше всеких похвал и сравнений ;)
третий ряд третья строка слева)
Там их много: java, javaclient, java14, gcj, может ещё что-нибудь не заметил.
Интересно, там есть ссылка на какой-то обновленный вариант:
http://gmarceau.qc.ca/blog/uploaded_images/size-vs-speed-vs-...
Java там в первой колонке!