С PHP понятно, это всемирный заговор:)
Я все таки надеюсь, что Ruby в Web будет успешно с ним конкурировать.
>JavaScript — тёмная лошадка, которая может насолить всем вышеперечисленным языкам, вытестив их из браузера далеко на сервер.
И не только вытеснить далеко на сервер, но и самому придти к серверам как например Jaxer и аналогичные проекты, или самоделки на Rhino/SpiderMonkey/V8.
Кстати, насчет темной лошадки — сдается мне что Erlang отхватит свою долю в серверных решениях. Но естественно уровня повыше чем задачи для Ruby/PHP.
Но это уже немного из другой оперы.
Как видно из теста, ruby1.9 подает большие надежды чем JRuby:)
Хотя возможно это только на данной задаче, и из-за синтетического теста.
В топик добавлять не буду, т.к тест немного изменен, и тогда еще Groovy'цы будут требовать тестов:)
А у меня наоборот, с С++ опыта совсем мало. Да к томуже я поклонник динамических языков.
Так что, про GC — это субъективно. Согласен, не будем холиварить:)
Ну при относительно большом промежутке времени разницы практически не будет. Да к томуже старт интерпретатора с парсингом файла — пара десятков миллисекунд, что большой роль не играет.
Именно поэтому я прогонял тесты по нескольку раз, и выбирал средние значения.
В доказательство — результаты для Ruby1.9 и Python на сто тысячь итераций:
У меня посвежее:
$ ruby1.9 -v
ruby 1.9.0 (2008-06-20 revision 17482) [i486-linux]
За три месяца — и достаточно значительный прирост производительности у 1.9!
Похоже с 1.9.1 все будет еще интереснее:) Вечером потестю.
А 1.8 у меня 1.8.7, судя по всему регресс по сравнению с 1.8.6
Спасибо за тесты:)
Ажиотаж — да. Но не знаю насчет того, что Ruby обсуждается только из-за RoR.
Как говориться Ruby is not Rails:)
Например я Ruby больше для не веб задач использую.
Он Руби а не Раби:)
>2) Больше упор на встроенные в язык фишки; меньше — на стандартную библиотеку.
Неправельно. Синтаксический сахар — да, на него есть упор. Но это никак не связанно с библиотекой.
Почитайте теже капли(курс статей на хабре был), например работа с массивами.
Ах вот оно что. sys(и user) смысла нет добавлять. Они учтены в real. В тесте они только из-за того, что это стандартный вывод утилиты time.
Можете это убрать? И тогда, если позволите, размещу в топике.
Я все таки надеюсь, что Ruby в Web будет успешно с ним конкурировать.
>JavaScript — тёмная лошадка, которая может насолить всем вышеперечисленным языкам, вытестив их из браузера далеко на сервер.
И не только вытеснить далеко на сервер, но и самому придти к серверам как например Jaxer и аналогичные проекты, или самоделки на Rhino/SpiderMonkey/V8.
Кстати, насчет темной лошадки — сдается мне что Erlang отхватит свою долю в серверных решениях. Но естественно уровня повыше чем задачи для Ruby/PHP.
Но это уже немного из другой оперы.
Насчет теста. Вот такой JRuby(самый последний с их сайта, в репах старый 1.0):
Немного изменил код, замеряю Benchmark.realtime, а не time, т.к. Java долго стартует:
puts Benchmark.realtime { 1000.times { f.factorization 999999} }
И сами результаты:
Как видно из теста, ruby1.9 подает большие надежды чем JRuby:)
Хотя возможно это только на данной задаче, и из-за синтетического теста.
В топик добавлять не буду, т.к тест немного изменен, и тогда еще Groovy'цы будут требовать тестов:)
Так что, про GC — это субъективно. Согласен, не будем холиварить:)
Конечно не спорю, что от программиста зависит, но мне кажеться что GC все-таки надежнее.
В доказательство — результаты для Ruby1.9 и Python на сто тысячь итераций:
$ time ruby1.9 factor.rb
real 0m27.477s
user 0m25.542s
sys 0m0.164s
$ time python factor.py
real 0m51.926s
user 0m50.791s
sys 0m0.164s
Т.е. пропорции те же что и в топике.
$ ruby1.9 -v
ruby 1.9.0 (2008-06-20 revision 17482) [i486-linux]
За три месяца — и достаточно значительный прирост производительности у 1.9!
Похоже с 1.9.1 все будет еще интереснее:) Вечером потестю.
А 1.8 у меня 1.8.7, судя по всему регресс по сравнению с 1.8.6
Спасибо за тесты:)
$ time ruby1.9 t.rb
real 0m0.336s
user 0m0.324s
sys 0m0.000s
$ time python t.py
real 0m0.214s
user 0m0.212s
sys 0m0.004s
а 1.8 в полтора раза медленнее чем у вас
Как говориться Ruby is not Rails:)
Например я Ruby больше для не веб задач использую.
>2) Больше упор на встроенные в язык фишки; меньше — на стандартную библиотеку.
Неправельно. Синтаксический сахар — да, на него есть упор. Но это никак не связанно с библиотекой.
Почитайте теже капли(курс статей на хабре был), например работа с массивами.
Можете это убрать? И тогда, если позволите, размещу в топике.