Привет всем. Я только вступил в ваш достойный клуб, и мне сразу бросилась в глаза некая… "про-Руби-ориентированность" тутошнего коллектива.
Будучи любитем Перла (то есть имея пару лет опыта девелопмента на нём), я в своё своё время немножко почитал и про Руби. У меня сложилось впечатление, что Руби это нечто среднее между Перлом и Ява-скриптом, то есть то ли продвинутый JS то ли опущенный Перл, не в обиду будь сказанно
Здесь же я с удивлением вижу что про Перл отзываются в некоторой мере пренебрежительно, дескать, тоже хорошо, но не так продвинуто как Руби…
В свете вышесказанного — вопрос. Не подскажете, хотя бы в двух словах, чем же на ваш взгляд Руби так хорош (vs Perl), и пример того, что на одном языке можно сделать лучше чем на другом?
11 января 2008 в 3:00
М-да… Перл использовал довольно активно, и убедился, что читать можно и чужой код. Естественно, если он написан руками. А уж запутать можно что угодно, вне зависимости от языка.
С Ruby знаком больше в качестве пользователя… И впечатления удручающие. Аналогичные системы, написанные на чем-то ином, работают в разы быстрее. Это только некоторый опыт, но слишком уж печальный. Хотя ООП вносит некоторое облегчение.
А вот аргумент "на нем даже дети пишут" несостоятелен по многим причинам =) Во-первых, "сделай то, чем может пользоваться даже идиот – и только идиот будет этим пользоваться" (с). Во-вторых, нормальные дети и в 5 классе будут писать на чем угодно, если есть желание.
И еще. Писать код в IDE, в Vim, в MC или чем-то еще – дело привычки и только её. Если надо – его можно писать хоть через MIDPSSH с телефона.
9 января 2008 в 18:04
использую Perl, нравиться все… Ruby даже нет желания смотреть.
"разбирать то что написано другим програмистом на Perl, это ужас"
если писал нормальный человек, то разбирается все с минимальными издержками времени…
5 июля 2007 в 2:03
Просто perl сложнее в освоении, не каждому дано, но на самом деле его использует во всех более-менее продвинутых организациях (куча модулей облегчает создания самых разных по функциональности утилит), а вот на руби я только любителей, которые дома кодят видел.
22 июня 2007 в 1:00
Надо взять Рубин, книжку по нему и пробовать. Че тут обсуждать-то. Руби мощнее и аккуратнее перла (чистое ООП, Smalltalk-фичи и прочие дела). Андрей Шитов (техдиректор студии лебедева) любит Перл6 и считает, что руби ничем не лучше. Но для перл6 компилятора нет уже 5 лет, а на руби уже 7 лет успешно делают коммерческие приложения.
Лично мне Перл кажется шероховатым и задроченным. А рубин – логичным и последовательным. Но нужно самому пробовать.
21 июня 2007 в 20:04
"я пишу в обыкновенном vim'е … и меня это совершенно не тревожит" – и этот человек ещё над ассемблерщиком издевался!
21 июня 2007 в 19:01
Как было правельно сказано, 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 стоит.
21 июня 2007 в 16:03
>>пока …. жаверы борятся с IDE, я пишу в обыкновенном vim'е
повеселил … повеселил …
21 июня 2007 в 14:01
Просто я не могу в такой пост вместить все фичи руби, которые мне в нем нравятся. Это скорее так происходило: я сидел и каждый день в течение первого месяца пытался вставить свою челюсть на место, а она выпадала и выпадала..
Пойди в группу по руби, возьми там ссылки на литературу.. посиди и почитай.. торкнет.. реально говорю
Матц не тот человек, который бы стал придумывать новый язык просто так, когда уже есть Perl.
21 июня 2007 в 14:00
Ясно, спасибо за ответ. То есть преимущество R это главным образом его упрощённость
Ну что же, это действительно плюс, перл не то чтобы тяжело выучить, его просто очень тяжело читать даже опытным программистам которые не знают P.
Но если уж кто прохавал, то ИМО P помощнее будет. И натянутость ООП — спорный вопрос, очень спорный. Фишка в том, что там есть и множественное наследование, и миксины, и темплейты, и выборочная видимость методов / свойств класса, и перегрузка операторов, и множество других вещей которым названия ещё не придумали
Другое дело что это делается идиомами языка которые дико выглядят для неоптытного перлиста.
Ну а по поводу предпоследнего абзаца ("Ruby нужен там…"), так мне кажется это скажет адепт любого языка подставив на место R любой свой любимый ))
Кстати, лично для меня несколько странно выглядит фраза "борятся с ИДЕ"
21 июня 2007 в 9:03
Про-руби-ориентированность это потому, что
1. Активная администрация этой группы по большей мере пишет на Ruby, гы-гы
2. Сам Ruby очень и очень милый язык.
Выделю две вещи, остальные уж сам:
Ruby имеет более низкий порог вхождения. Я просто сам помню, как классе в 9 или 10 баловался с Perl'ом и мой опыт я бы не назвал удачным. А на ruby даже дети пишут (//hacketyhack.net). Перлизмы (переменная по умолчанию, дикие имена вроде $:, $; и т.д.) тоже есть, но они очень не приветствуются в сообществе в последние годы, поэтому потихоньку уходят.
У Ruby ОЧЕНЬ АДЕКВАТНАЯ поддержка ООП. Все – объект. Есть миксины, как замена множественному наследованию. Можно переоткрывать классы и т.п.
У Perl'а ООП очень натянутое.
Ruby нужен там, где нужна простота, гибкость, масштабируемость и хорошее разделение кода (пока дотнетчики и жаверы борятся с IDE, я пишу в обыкновенном vim'е, а до этого в Scite и меня это совершенно не тревожит).
Справа есть группа. Можно заглянуть туда и найти информацию о языке и как начать с ним работать.