Ну вот, моя первая программа на эрланге. https://github.com/onokhov/erlang_web_crawler/
Язык занятный. Параллелить и устраивать межпроцессное общение просто. Но остальное писать неудобно, думаю, что просто с непривычки. И документацию я ещё не прочитал. Осилил только getting_started, описания модулей string, list, re, httpc и ещё некоторых.
Сторонние модули использовать не хотелось, поэтому то, что в штатных модулях не нашел, делал сам.
Сравнил по производительности с перловой качалкой, эрланговская получилась немного быстрее. За минуту с форума glav.su перловая вытянула 26МБ, а эрланговская 26,7МБ.
Хотелось бы критики по коду от людей эрланг знающих.
Update: Закоммитил правки по комментариям. Заменены паттерны, ++ заменен на [|], использованы list comprehensions.
Update 2: Отказ от prespawn. И правки по стилю
Update 3: Багфикс в receive_text_data/2. Правки по стилю
- Многопоточная качалка на Erlang
(ref http://erlang.org/doc/efficiency_guide/myths.html#id63347)
ne nado delatj "++" tam gde mozno delatj koroche.
prichom koroche kak sintaksicheski tak i mexanicheski (net postrojenija spiska iz odnogo elementa)
P.S. "++" ranjshe byl medlennym, popravili, odnako tam gde "++" ne nuzhen tam jego ftykatj ne nado.
eto verno, no sm moj koment, glavnoje dlja nas umestnostj primenenija instrumentov.
DO - указывает на то, как делать правильно. OK - допустимая альтернатива с учётом того, что понимаешь зачем и почему именно так делаешь.