>если есть здесь знатоки этого языка, с удовольствием бы прочел сравнение производительсноти и стабильности Ruby и Perl
Занятие сравнивать два ЯЗЫКА по производительности и стабильности - дело неблагодарное и бессмысленное (ибо речь будет идти о реализациях, а не о языках).
Лично я перешел с Perl на Ruby 3 года назад не потому, что Ruby быстрее или стабильнее, а потому, что на нем проще работать с объектами и сложными структурами (и кода, и данных).
Тем не менее, я портировал код с Perl 5 на Ruby и мог сравнить скорость.
1. Обработка текстов, парсеры, форматеры (всего около 15 программ) ----------------------------------------- - при портировании с Perl на Ruby 1.6 методом "прямого переноса логики" (т.е. почти строка в строку) - разница: производительность - от 10% до 70% в пользу Perl память - от 0 до 10% в пользу Ruby - при портировании с Perl на Ruby 1.6 с оптимизацией алгоритмов под Ruby: производительность - от -10% до 50% в пользу Perl память - от -10% до 20% в пользу Ruby - при портировании с Perl на Ruby 1.8 с оптимизацией алгоритмов под Ruby: производительность - от -30% до 40% в пользу Perl память - от 0% до 20% в пользу Ruby
2. Взаимодействие уже существующего ПО (например, через серевые шлюзы) (всего 6 программ) --------------------------------------------- - при портировании с Perl на Ruby 1.6 методом "прямого переноса логики" (т.е. почти строка в строку) - разница: производительность - от 10% до 30% в пользу Perl - при портировании с Perl на Ruby 1.6 с оптимизацией алгоритмов под Ruby: производительность - от -20% до 30% в пользу Perl - при портировании с Perl на Ruby 1.8 с оптимизацией алгоритмов под Ruby: производительность - от -30% до 30% в пользу Perl
3. Поточная генерация html/xml (увы, только одна программка) ------------------------------ - при портировании с Perl на Ruby 1.6 методом "прямого переноса логики" (т.е. почти строка в строку) - разница: производительность - от 40% до 150% в пользу Perl - при портировании с Perl на Ruby 1.8 с оптимизацией алгоритмов под Ruby: производительность - от -30% до 50% в пользу Perl
Стабильность устраивала в обеих случаях (единственно нарвался на баг в ActivePerl, из-за которого валился один из скриптов).
Гланое: ======= несмотря на то, что на Perl пишу начиная с 1996 года и по сей день, а на Ruby только последние три года, чувствую себя уверенней в Ruby и мне проще предсказать его поведение в сложных случаях.
Синтаксис Ruby проще, однородней и богаче, чем Perl. В Perl добавили слишком много "фич для ленивых", которые надо знать, что-бы писать эффективный код.
>если есть здесь знатоки этого языка, с удовольствием бы прочел сравнение производительсноти и стабильности Ruby и Perl
Занятие сравнивать два ЯЗЫКА по производительности и стабильности - дело неблагодарное и бессмысленное (ибо речь будет идти о реализациях, а не о языках).
Лично я перешел с Perl на Ruby 3 года назад не потому, что Ruby быстрее или стабильнее, а потому, что на нем проще работать с объектами и сложными структурами (и кода, и данных).
Тем не менее, я портировал код с Perl 5 на Ruby и мог сравнить скорость.
1. Обработка текстов, парсеры, форматеры
(всего около 15 программ)
-----------------------------------------
- при портировании с Perl на Ruby 1.6 методом "прямого переноса логики" (т.е. почти строка в строку) - разница:
производительность - от 10% до 70% в пользу Perl
память - от 0 до 10% в пользу Ruby
- при портировании с Perl на Ruby 1.6 с оптимизацией алгоритмов под Ruby:
производительность - от -10% до 50% в пользу Perl
память - от -10% до 20% в пользу Ruby
- при портировании с Perl на Ruby 1.8 с оптимизацией алгоритмов под Ruby:
производительность - от -30% до 40% в пользу Perl
память - от 0% до 20% в пользу Ruby
2. Взаимодействие уже существующего ПО (например, через серевые шлюзы)
(всего 6 программ)
---------------------------------------------
- при портировании с Perl на Ruby 1.6 методом "прямого переноса логики" (т.е. почти строка в строку) - разница:
производительность - от 10% до 30% в пользу Perl
- при портировании с Perl на Ruby 1.6 с оптимизацией алгоритмов под Ruby:
производительность - от -20% до 30% в пользу Perl
- при портировании с Perl на Ruby 1.8 с оптимизацией алгоритмов под Ruby:
производительность - от -30% до 30% в пользу Perl
3. Поточная генерация html/xml
(увы, только одна программка)
------------------------------
- при портировании с Perl на Ruby 1.6 методом "прямого переноса логики" (т.е. почти строка в строку) - разница:
производительность - от 40% до 150% в пользу Perl
- при портировании с Perl на Ruby 1.8 с оптимизацией алгоритмов под Ruby:
производительность - от -30% до 50% в пользу Perl
Стабильность устраивала в обеих случаях (единственно нарвался на баг в ActivePerl, из-за которого валился один из скриптов).
Гланое:
=======
несмотря на то, что на Perl пишу начиная с 1996 года и по сей день, а на Ruby только последние три года, чувствую себя уверенней в Ruby и мне проще предсказать его поведение в сложных случаях.
Синтаксис Ruby проще, однородней и богаче, чем Perl.
В Perl добавили слишком много "фич для ленивых", которые надо знать, что-бы писать эффективный код.