singlepost

Ruby vs Perl << На главную или назад  

Привет всем. Я только вступил в ваш достойный клуб, и мне сразу бросилась в глаза некая… "про-Руби-ориентированность" тутошнего коллектива.

Будучи любитем Перла (то есть имея пару лет опыта девелопмента на нём), я в своё своё время немножко почитал и про Руби. У меня сложилось впечатление, что Руби это нечто среднее между Перлом и Ява-скриптом, то есть то ли продвинутый JS то ли опущенный Перл, не в обиду будь сказанно :)

Здесь же я с удивлением вижу что про Перл отзываются в некоторой мере пренебрежительно, дескать, тоже хорошо, но не так продвинуто как Руби…

В свете вышесказанного — вопрос. Не подскажете, хотя бы в двух словах, чем же на ваш взгляд Руби так хорош (vs Perl), и пример того, что на одном языке можно сделать лучше чем на другом?

10 ответов в теме “Ruby vs Perl”

  1. 10
    Юрий Петров ответил:

    М-да… Перл использовал довольно активно, и убедился, что читать можно и чужой код. Естественно, если он написан руками. А уж запутать можно что угодно, вне зависимости от языка.

    С Ruby знаком больше в качестве пользователя… И впечатления удручающие. Аналогичные системы, написанные на чем-то ином, работают в разы быстрее. Это только некоторый опыт, но слишком уж печальный. Хотя ООП вносит некоторое облегчение.
    А вот аргумент "на нем даже дети пишут" несостоятелен по многим причинам =) Во-первых, "сделай то, чем может пользоваться даже идиот – и только идиот будет этим пользоваться" (с). Во-вторых, нормальные дети и в 5 классе будут писать на чем угодно, если есть желание.

    И еще. Писать код в IDE, в Vim, в MC или чем-то еще – дело привычки и только её. Если надо – его можно писать хоть через MIDPSSH с телефона.

  2. 9
    Anton Makarov ответил:

    использую Perl, нравиться все… Ruby даже нет желания смотреть.

    "разбирать то что написано другим програмистом на Perl, это ужас"
    если писал нормальный человек, то разбирается все с минимальными издержками времени…

  3. 8
    Роман Торстэн ответил:

    Просто perl сложнее в освоении, не каждому дано, но на самом деле его использует во всех более-менее продвинутых организациях (куча модулей облегчает создания самых разных по функциональности утилит), а вот на руби я только любителей, которые дома кодят видел.

  4. 7
    Олег Андреев ответил:

    Надо взять Рубин, книжку по нему и пробовать. Че тут обсуждать-то. Руби мощнее и аккуратнее перла (чистое ООП, Smalltalk-фичи и прочие дела). Андрей Шитов (техдиректор студии лебедева) любит Перл6 и считает, что руби ничем не лучше. Но для перл6 компилятора нет уже 5 лет, а на руби уже 7 лет успешно делают коммерческие приложения.

    Лично мне Перл кажется шероховатым и задроченным. А рубин – логичным и последовательным. Но нужно самому пробовать.

  5. 6
    Алексей Злобин ответил:

    "я пишу в обыкновенном vim'е … и меня это совершенно не тревожит" – и этот человек ещё над ассемблерщиком издевался!

  6. 5
    Алексей Скрываюсь ответил:

    Как было правельно сказано, Perl – язык write only, разбирать то что написано другим програмистом на Perl, это ужас (я знаю о чем говорю, на работе мы пишем на Perl и PHP) :)
    - В Perl очень много «нечитаемых» конструкций
    - Perl ООП – натяжка :) , в книге Programmig PERL (Wall L., Christiansen T., Schwartz R.) сказано
    «an object is simply a referenced thingy that happens to know which class it belongs to. A class is simply a package that happens to provide methods to deal with objects. A method is simply a subroutine that expects an object reference (or a package name, for class methods) as its first argument» (объект – это просто структура данных, которая была связана с именем некоторого класса и к которой можно получить доступ по ссылке. Класс – это просто модуль, экспортирующий методы для обработки объектов. Метод – это просто подпрограмма, принимающая в качестве первого параметра ссылку на объект)
    Как следствие с ООП в Perl беда %(
    В Ruby таки проблем нет, я смог прочитать Ruby код даже не зная толком его синтаксиса. Да к 6 версии Perl, там все будет «в ажуре», но вот когда она будет? И нужна ли она будет ведь уже сейчас мы имеем JRuby и JPhyton (ну хреновенький да), и IronPhyton на .NET и обещают портировать Ruby.
    Perl конечно хороший язык, но он стар (superstar), в любом случае попробовать Ruby стоит.

  7. 4
    Пустовалов Михаил ответил:

    >>пока …. жаверы борятся с IDE, я пишу в обыкновенном vim'е
    повеселил … повеселил …

  8. 3
    Михаил Голуб ответил:

    Просто я не могу в такой пост вместить все фичи руби, которые мне в нем нравятся. Это скорее так происходило: я сидел и каждый день в течение первого месяца пытался вставить свою челюсть на место, а она выпадала и выпадала..
    Пойди в группу по руби, возьми там ссылки на литературу.. посиди и почитай.. торкнет.. реально говорю :)
    Матц не тот человек, который бы стал придумывать новый язык просто так, когда уже есть Perl.

  9. 2
    Артём Матросов ответил:

    Ясно, спасибо за ответ. То есть преимущество R это главным образом его упрощённость :)

    Ну что же, это действительно плюс, перл не то чтобы тяжело выучить, его просто очень тяжело читать даже опытным программистам которые не знают P.

    Но если уж кто прохавал, то ИМО P помощнее будет. И натянутость ООП — спорный вопрос, очень спорный. Фишка в том, что там есть и множественное наследование, и миксины, и темплейты, и выборочная видимость методов / свойств класса, и перегрузка операторов, и множество других вещей которым названия ещё не придумали :)

    Другое дело что это делается идиомами языка которые дико выглядят для неоптытного перлиста.

    Ну а по поводу предпоследнего абзаца ("Ruby нужен там…"), так мне кажется это скажет адепт любого языка подставив на место R любой свой любимый :) ))

    Кстати, лично для меня несколько странно выглядит фраза "борятся с ИДЕ" :)

  10. 1
    Михаил Голуб ответил:

    Про-руби-ориентированность это потому, что
    1. Активная администрация этой группы по большей мере пишет на Ruby, гы-гы :)
    2. Сам Ruby очень и очень милый язык.

    Выделю две вещи, остальные уж сам:
    Ruby имеет более низкий порог вхождения. Я просто сам помню, как классе в 9 или 10 баловался с Perl'ом и мой опыт я бы не назвал удачным. А на ruby даже дети пишут (//hacketyhack.net). Перлизмы (переменная по умолчанию, дикие имена вроде $:, $; и т.д.) тоже есть, но они очень не приветствуются в сообществе в последние годы, поэтому потихоньку уходят.

    У Ruby ОЧЕНЬ АДЕКВАТНАЯ поддержка ООП. Все – объект. Есть миксины, как замена множественному наследованию. Можно переоткрывать классы и т.п.
    У Perl'а ООП очень натянутое.

    Ruby нужен там, где нужна простота, гибкость, масштабируемость и хорошее разделение кода (пока дотнетчики и жаверы борятся с IDE, я пишу в обыкновенном vim'е, а до этого в Scite и меня это совершенно не тревожит).
    Справа есть группа. Можно заглянуть туда и найти информацию о языке и как начать с ним работать.

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.