LINUX.ORG.RU

erlang vs haskell vs ocaml for mmorpg


0

0

появилась необходимость написать mmorpg и решил опробовать что-нибудь функциональное, на первый взгляд идеально подходит erlang с его легкими потоками, но меня смущает динамическая типизация и скорость, судя по тестам он двум другим языкам проигрывает, на данный момент присматриваюсь к ocaml, тк мне он показался наиболее практичным, хотя очень понравился haskell, но как-то мне он кажется очень уж академичным

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


Ответ на: комментарий от fmj

>Чета я только не видел ни одного ни крупного OpenSource проекта на D

А на Haskell или OCaml? Да и ejabberd на Erlang - не самый популярный проект :)

KRoN73 ★★★★★
()
Ответ на: комментарий от halflife

>Если тебе нужно распараллелить задачу, то лучше.

Слушай, тут речь об MMORPG идёт. И расходы на форки несопоставимы с вычислительной нагрузкой. Точка.

Собственно, у тебя есть опыт разработки MMORPG или ты сугубый теоретик?

>А что вообще в MMORPG можно распараллелить ?

Да всё почти. У нас в L2Fortress каждый пакет от клиента - отдельный поток. Каждый активный AI моба - поток. А вот, скажем, обработка перемещений всех объектов - это один поток на весь сервер. Потому что одна непрерывная числодробилка.

KRoN73 ★★★★★
()
Ответ на: комментарий от pierre

Вот ничего не скажу по поводу Haskell. Как язык он мне нравится больше Erlang-а. Но реализация, в частности ghc, явно сильно подкачала. Что за непотребство, когда для одного и того-же выражения при компиляции отладочной версии он использует ленивые вычисления, не выполняет оптимизацию хвостовой рекурсии и вылетает, съев предварительно всю доступную память, а при компиляции с выставленным флагом оптимизации всё работает нормально. Но даже с оптимизацией показывает на порядок более худшие результаты, нежели вариант на Erlang.

anonymous
()
Ответ на: комментарий от KRoN73

> А на Haskell или OCaml? Да и ejabberd на Erlang - не самый популярный проект :)

Haskell в последнее время набирает популярность, но он никогда не будет настолько популярен, как Java или тот-же D, т.к. требует куда бОльших затрат времени на освоение на уровне достаточном для написания на нем чего-либо. Что до Erlang-а -- так на нем коммерческие проекты делают крупные :) Сотовым пользовались? Вот коммутаторами разными ericsson-овскими как раз Erlang код и рулит :) Правда я не знаю, чье оборудование в нашей стране кто использует, мегафон вроде сименсом пользуется, остальные - хз, но это не суть важно.

fmj
()
Ответ на: комментарий от fmj

>Что до Erlang-а -- так на нем коммерческие проекты делают крупные :)

Примеры OpenSource можно? А про Эрикссон я, как бы, в курсе. Давайте не уклоняться от заявленного.

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

> Примеры OpenSource можно? А про Эрикссон я, как бы, в курсе. Давайте не уклоняться от заявленного.

От своего заявленного я не отклонялся, язык весьма используется в коммерческой среде, значит он нужен. Для меня критерий живости это "или хотя-бы один крупный open source или использование в коммерческой среде", а не "обязательно в open source". На ADA2000 много OpenSource проектов видели? :) Их пожалуй вообще ни одного, т.к. все существующие компиляторы стоят огромных днег, а он между тем более чем живой :)

fmj
()
Ответ на: комментарий от KRoN73

Опенсорс? Всегда пожалуйста, www.erlang-projects.org (в настоящий момент перетаскиваются на новый хостинг). Только что это может доказать? А количество опенсорсных проектов на "C" забъёт количество проектов на всех остальных языках, все эти языки - отстой?

anonymous
()
Ответ на: комментарий от KRoN73

> Слушай, тут речь об MMORPG идёт. И расходы на форки несопоставимы с вычислительной нагрузкой.

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

Всеравно, оптимизации есть какой-то предел. На С, переписать задачу что бы она выполнялась в несколько потоков сложнее. Стоимость форка или создания новой нити тоже выше, ну или кол-во потоков ограниченно (тут уже это важно).

> Собственно, у тебя есть опыт разработки MMORPG или ты сугубый теоретик?

Опыта у меня нет. Возможно распараллелить на таком уровне не получится. Не спорю.

halflife ★★
()
Ответ на: комментарий от fmj

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

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

KRoN73 ★★★★★
()
Ответ на: комментарий от anonymous

>Опенсорс? Всегда пожалуйста, www.erlang-projects.org (в настоящий момент перетаскиваются на новый хостинг).

Не вижу пока :) И, где ещё ОВерблюд с Хаскелом? :)

>Только что это может доказать?

Откуда я знаю. Привести количество больших опенсорс-проектов, написанных на D не я предложил :)

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

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

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

Вы дословно привели следующую статистику:

"По данным TIOBE: D - 12 место, Haskell - 24, Erlang - 40, ML - 42. D обходит все предложенные OP языки _в сумме_ почти в 3 раза."

Я лишь показал, что эта статистика ни имеет к действительности никакого реального отношения.

P.S. а TIOBE они интересно, для филипса только медецинское оборудование инспектируют, на качество кода или все их выпускаемое железо ? Глючнее чем филипковая прошивка для телефона, я ничего в жизни не видел, раз 100 уже хотел разбить об стену этот xenium 9@9d.

fmj
()
Ответ на: комментарий от KRoN73

>Не вижу пока :) И, где ещё ОВерблюд с Хаскелом? :)

По моему что касается хаскела - достаточно вспомнить про то на чем написана нынешняя реализация перла6. И вообще, действительно, я не понимаю почему на ЛОРе принято судить о популярности языка исключительно по проектам опен сорц, глупость какая то %-(

Вроде взрослые же мужики тут тусят преимущественно, не фанатики, а такое...

anonizmus
()
Ответ на: комментарий от KRoN73

> Не вижу пока :) И, где ещё ОВерблюд с Хаскелом? :)

Хаскелл-у не нужны open source проекты что-бы быть немертворожденным, он замечателен сам по себе :)

Да и крупного на нем сложно что-то написать: хочешь написать крупный проект, а он в 500 строк кода в итоге вмешается (пример -- как-то пробегал window manager на хаскеле тут в новостях :)

fmj
()
Ответ на: комментарий от fmj

Кстате, кстате, Perl6, -- на данный момент единственная работающая реализация его написана на Haskell-е.

fmj
()
Ответ на: комментарий от fmj

>раз 100 уже хотел разбить об стену этот xenium 9@9d.

Зато где еще телефон такой взять который столько без подзарядки живет. Вроде как выбора нет %-(

anonizmus
()
Ответ на: комментарий от fmj

> Вы дословно привели следующую статистику:

> "По данным TIOBE: D - 12 место, Haskell - 24, Erlang - 40, ML - 42. D обходит все предложенные OP языки _в сумме_ почти в 3 раза."

Это не KRoN73 ее приводил, а я.

> Я лишь показал, что эта статистика ни имеет к действительности никакого реального отношения.

Ничего такого ты не показал. Вот как собирается статистика для рейтинга TIOBE: "The ratings are based on the world-wide availability of skilled engineers, courses and third party vendors".

tailgunner ★★★★★
()
Ответ на: комментарий от anonymous

> Что за непотребство, когда для одного и того-же выражения при компиляции отладочной версии он использует ленивые вычисления, не выполняет оптимизацию хвостовой рекурсии и вылетает, съев предварительно всю доступную память, а при компиляции с выставленным флагом оптимизации всё работает нормально.

Так это ж desired behaviour. По умолчанию -- максимальная скорость компиляции. А то, что весь стек съеден -- это к программисту, который где-то забыл поставить strict. Тут вам компилятор такой подарок делает, а вы еще в претензии :-)

pierre
()
Ответ на: комментарий от fmj

>Вы дословно привели следующую статистику

Вроде бы, Новый год уже прошёл, пора прекращать принимать эти вещества :D Можно точную ссылку, где _Я_ это привёл? :)

KRoN73 ★★★★★
()

s/erlang vs haskell vs ocaml for mmorpg/erlang vs haskell vs ocaml vs mmorpg/

anonymous
()
Ответ на: комментарий от KRoN73

> Вроде бы, Новый год уже прошёл, пора прекращать принимать эти вещества :D Можно точную ссылку, где _Я_ это привёл? :)

Ну да прогнал, перепутал :)

P.S. новый год я провел трезвым, были на то причины, вообще ничего не пил последние месяца 4.

fmj
()
Ответ на: комментарий от tailgunner

> Ничего такого ты не показал. Вот как собирается статистика для рейтинга TIOBE: "The ratings are based on the world-wide availability of skilled engineers, courses and third party vendors".

Гм, как-то тут не пахнет особой применимостью тогда к оценке мертворожденности/не мертворожденности. Ну имеется на свете N человек кто знает D, чисто из интузиазма (не думаю, что D поддерживается third party vendor-ами или по нему какие-то курсы читают, так что эти 2 пункта просто пропускаем), ну и что? Они сами мало кому нужны, не то что D, который они знают.

fmj
()
Ответ на: комментарий от fmj

У D есть большой бонус, кстати. Он уже входит в состав GCC :)

...

$ gdmd
gdc (GCC) 4.1.2 20070214 (  (gdc 0.24, using dmd 1.020)) (Gentoo 4.1.2 p1.0.2)

...

Documentation: http://www.digitalmars.com/d/1.0/index.html
               http://dgcc.sourceforge.net/

...

$ qfile gdmd
sys-devel/gcc (/usr/i686-pc-linux-gnu/gcc-bin/4.1.2/gdmd)

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

> У D есть большой бонус, кстати. Он уже входит в состав GCC :)

На оф сайте (gcc.gnu.org) написано "The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada, as well as libraries for these languages (libstdc++, libgcj,...)." и ни слова о D. Так что скорее всего следует более корректно выражатся так: "в gentoo такой-то в gcc по умолчанию включен набор патчей для поддержки языка D."

fmj
()

спасибо всем отписавшимся, в общем-то картина прояснилось, вероятно выберу ерланг + си

cvb
() автор топика

А чем это вам распаралелливаение в Хаскелле неугодило? Вполне себе нормальное распарралелливание...

imp ★★
()
Ответ на: комментарий от KRoN73

> И расходы на форки несопоставимы с вычислительной нагрузкой. Точка.

А на кой чёрт каждый раз создавать и грохать поток, когда можно пул держать? Если по условию задачи нужно работать с большим кол-вом однотипных объектов, то необходимо минимизировать лишние операции на создание и убиение объектов, это ведь лишние такты. Вот в пуле эти операции как раз сведены на нет :)

mv ★★★★★
()
Ответ на: комментарий от halflife

> Стоимость форка или создания новой нити тоже выше, ну или кол-во потоков ограниченно (тут уже это важно).

Это всё, в принципе, фигня. У эрланга преимущество в том, что у него потоки шедулятся чисто в юзерспейсе, а не общим ядерным шедулером.

mv ★★★★★
()
Ответ на: комментарий от fmj

> P.S. а TIOBE они интересно, для филипса только медецинское оборудование инспектируют, на качество кода или все их выпускаемое железо ? Глючнее чем филипковая прошивка для телефона, я ничего в жизни не видел, раз 100 уже хотел разбить об стену этот xenium 9@9d.

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

mv ★★★★★
()
Ответ на: комментарий от cvb

Небольшая... суццесс стори что-ли... В общем всё то, что я за 1.5 недели написал на С++ (новый проект), сегодня реализовал на erlang за 1.5 часа. При этом так хорошо всё на erlang легло, что прямо диву даёшься - не приходится думать о том, как это выразить, пользуясь ограниченными средствами языка, всё очень естественно и гармонично, само собой получается.

anonymous
()
Ответ на: комментарий от anonymous

ну думаю тут свою роль сыграл имеющийся прототип, 1.5 недели ведь заняло не просто набивание кода, но и продумывание архитектуры

cvb
() автор топика

тут тебе еще кучу факов насоветуют. ну или gambit :)

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.