Фибоначчи на Node.JS и Erlang, рак и мрак

Пару дней назад в интернетах пробежала статья «Node.JS is Cancer», (по-русски на Хабре: http://habrahabr.ru/blogs/nodejs/129640/) в которой он какой-то пурги набросал на Node.JS, даже не смешно. Не смешно это потому, что там лажа какая-то, наброс слишком толст. Прочитав, некоторые могут случайно сделать вывод, что на самом деле ничего плохого в Node.JS нет.
Brian Beck попытался восстановить реноме Node.JS, правда тоже довольно неуклюже. Но почитать стоит.
Node.js Cures Cancer
The Point and Those Who Miss It
Я могу восстановить реноме Node.JS очень быстро — но только если не брать Erlang во внимание. Потому что если брать Erlang во внимание, то картина для Node.JS получается достаточно непривлекательная.
Но я в данном посте хочу поговорить о другом. Вот Brian говорит, что фибоначчи делается гораздо медленнее на Ruby (3 минуты) или на Python (две минуты). На Node.JS у него получаются сногсшибательная цифра в 5.6 секунд.
Вот что у меня получается Node.js (12 секунд):
[vlm@nala:~]> time node
fib.js
real 0m13.219s
user 0m12.347s
sys 0m0.087s
[vlm@nala:~]>
А вот что у меня получается на эрланге (6 секунд; а если интерпретировать а не компилировать — то 24):
[vlm@nala:~]> erl
Erlang R14B (erts-5.8.1) [source] [64-bit] [smp:2:2] [rq:2]
[async-threads:0] [hipe] [kernel-poll:false]
Eshell V5.8.1 (abort with ^G)
1> c("fib.erl", [native]).
{ok,fib}
2> timer:tc(fib,fib,[40]).
{6121594,165580141}
3>
Как видим, одним махом здесь я развенчал миф о том, что «Erlang же медленный», а также миф о том, что «Node.JS ужасающе быстрый».
Короче, нет ничего в Node.JS, всё кривое (от парадигмы до комьюнити), так что будете проходить — проходите мимо.
|
</> |