Igor Karpov (jc@minjust.gov.ua) wrote:
Alexander Timoshenko wrote:
Igor Karpov (jc@minjust.gov.ua) wrote:
Alexander Timoshenko wrote:
Michael Bochkaryov (misha@rattler.kiev.ua) wrote:
Hi, all!
А не будет ли у кого из благородных донов на почитать (или слить) такой книженции? Concurrent Programming in Erlang
А то на сайтах только первая часть, доставка там небыстрая, а хотелось бы относительно срочно.
А оно того стоит? Если планируется использовать для коммерческого проекта "с ноля", то надо бы подумать о: - Сроках обучения людей erlang'у (впрочем, это и без меня понятно :) - Я знаю пару граблей, которые повылазили на свет только когда начали активно использовать тот же ejabberd. До этого в такие позы его никто не ставил. Вобщем у меня, как у пользователя продукта на erlang, этот язык оставил впечатление недоделаности какой-то :(
Это не язык оставил впечатление недоделанности, а продукт. на нём написанный. У меня тоже ejabberd оставил смутные впечатления. Что не мешает мне им пользоваться :)
А сам язык интересный. Такой себе параллельный Prolog without backtracking. Но это понятно - backtracking и realtime - вещи несовместимые.
Концепция яхыка и реализация вещи абсолютно разные. Я уже в ru.unix.prog писал. Могу здесь по пунктам повторить :) - excessive memory usage при работе со строками: памяти выделяется в 8 раз больше, чем длинна строки. - местами кривая до ужаса, но распределенная mnesia: при попытке вставить запись в таблицу(или как там оно называется) из 10000(десять тысяч, я не ошибся с нолем) строк erlang отжирает 1G памяти. - кривая реализация ssl в стандартной библиотеке - Вчерашние грабли: заблокировался Send, erlang за час распух до 600M, в некотором роде вина автора, но: <quote> [23:46] <aleksey> вот спросите эрланговев, почему в нём есть recv(Socket, Length) и send(Socket, Data), но при этом есть recv(Socket, Length, Timeout) но нету send(Socket, Data, Timeout). [23:46] <t> aleksey: наверно send не может блокироваться :) [23:47] <aleksey> может может :) [23:47] <aleksey> раньше оно ещё и глючило как-то при этом, я ещё патч им слал [23:48] <aleksey> так он вроде умеет этот timeout, но в api это не вынесено </quote> - Такая мелочь, как сообщениях Erlang emulator, понятные только просветленным, можно и не упоминать.
Написал было пространное письмо с обширными цитатами и ссылками, а оно возьми и сгинь... ну так уж получилось. В двух словах: ответы почти на все вышеупомянутые вопросы есть в FAQ. См. пункты
http://erlang.org/faq/t1.html#AEN50 http://erlang.org/faq/x443.html#AEN453 http://erlang.org/faq/x1079.html#AEN1278 http://erlang.org/faq/x1351.html#AEN1373
По последнему пункту (насчет send) - я что-то не вижу, чтобы хоть кто-то интересовался этим в рассылке erlang-questions. Может, надо просто спросить? 10000 записей не есть что-то необычное даже для memory-resident database, чтобы раздуваться до 1Г. Вобщем мое дело прокаркать "Nevermore..", с этой задачей я справился :)
А что до ejabberd, то он бесспорно сырой и прожорливый. Что не мешает ему быть значительно более масштабируемым чем даже эталонные реализации jabberd, написанные на C. Угу, "при всем 'богатстве' выбора"... :(
-- gonzo =================================================================== uanog mailing list. To Unsubscribe: send mail to majordomo@uanog.kiev.ua with "unsubscribe uanog" in the body of the message