LINUX.ORG.RU

Ruby в качестве замены Perl

 , ,


0

4

Давненько уже подумываю активно писать на чём-либо, помимо Perl'а.

Синтаксис наиболее популярного у хомячков Python'а вызывает у меня откровенное отвращение, язык Julia, который вроде и нравится, в качестве языка общего назначения пока откровенно слаб, да и его нестабильность несколько напрягает. Языки C#, D, Java - многословны и сложны для тех достаточно простых приложений и библиотек, которые я пишу (к тому же наиболее мне симпатичный здесь язык C# - по сути мало популярен на *nix'ах, поскольку ему нужен mono).

Посмотрел на Ruby - вроде неплохо. Есть конечно косяки в виде «@@» (очень странное изобретение - обозначать префиксом область видимости переменной) и прочих чудесных вещей наподобие end'ов и def'ов (что за идиотская обфускация, для чего?), но в целом явно лучше Python'а, вполне удобный синтаксис.

Несколько напрягает тот факт, что популярность Ruby явно обусловлена убывающей, насколько я знаю, популярностью Ruby-On-Rails и в целом, в отличие от того же Perl'а и Python'а, Ruby в качестве языка на все случаи жизни якобы мало используется - сфера применения у него ограничена веб-технологиями (опять же, не моё личное мнение).

Собственно, вопрос в том, насколько перспективен Ruby и есть ли у кого-то обоснованные возражения против того, что «Ruby без рельс бесполезен».

★★★★★

Если тебе удобно, пользуйся. Тренды для тех, кто ищет работу.

LongLiveUbuntu ★★★★★ ()
Ответ на: комментарий от LongLiveUbuntu

Тренды как раз на поиск работы не особо влияют: популярность Java и C# у работодателей (да и Python тоже) ни один ультра-современный трендовый фуннкциональный язык не перебьёт даже с 1000-кратным запасом. Да и всякие Rust'ы больше популярны в проектах на Github'е, чем в реальном продуктиве. Так что тренды не особо важны по-моему.

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

DRVTiny ★★★★★ ()
Ответ на: комментарий от DRVTiny

Это перл-то никому не нужен? Хотя, да, не нужен, но избавиться от него до сих пор никто не может, потому перлисты всё ещё иногда нужны.

r3lgar ★★★★★ ()
Ответ на: комментарий от r3lgar

не нужен
избавиться от него до сих пор никто не может
перлисты всё ещё иногда нужны.

Сколько противоречивых утверждений в одном предложении :)

KRoN73 ★★★★★ ()

Ruby вполне себе используется на все случаи жизни - очень частов в тестировании и автоматизации. Много полезных библиотек написано - к системным либам, к разным API и просто всяких интересных штук. Но да, за пределами RoR его мало, но мало именно работы и потому не слышно. А так народ использует и для всяких сервисов и просто системных скриптов.

Perl 6 не рассматривал?

dr_jumba ()

Если у тебя критерий — чтобы упоротость синтаксиса услаждала взгляд закоренелого перловика, то Руби, безусловно, оптимальный вариант.

Virtuos86 ★★★★★ ()
Ответ на: комментарий от KRoN73

не нужен
избавиться от него до сих пор никто не может
перлисты всё ещё иногда нужны.

Сколько противоречивых утверждений в одном предложении :)

Я старался. (=

r3lgar ★★★★★ ()
Ответ на: комментарий от dr_jumba

А как у Ruby в плане стабильности самого языка?

Мне он интересен ещё тем, что есть такой crystal-lang, и он весьма быстр (с точки зрения его разработчиков и поклонников так вообще рвёт всех, но это очень расхожее мнение). Т.е. в принципе мне нравятся языки с типами данных (хотя всякие int8, int32, int64 с автоматическим их выводом видятся полным маразмом), а у Crystal как раз синтаксис прямиком из Ruby, так что было бы удобно что-то на чистом Ruby, а что-то - на Crystal.

Perl6 бесперспективен: он слишком медленный и откровенно маргинальный, несмотря на его отличную концепцию, я бы делал ставку на него в последнюю очередь. В 2007-м году все бы ещё подождали его стабилизации и роста производительности. В 2017-м, по прошествии полутора десятков лет с момента начала активной движухи на ниве строительства 6-ки и после того, как вообще половина народа уже перебежала на чистые компиляторы без всякого JIT'а или с JIT'ом, но шустрые - надежды на Perl6 питают разве что самые принципиальные поклонники творчества Ларри.

DRVTiny ★★★★★ ()

Популярность по барабану. Тебе удобно? Бери, что угодно, хоть брейнфак. Сейчас популярность больше во вред. См. жаваскрипт мирок - набигают тысячи макак и все ломают нонстоп. В руби этот этап прошли уже к счастью. Так что все довольно стабильно там.

Ruby без рельс бесполезен

Ерунда. Скорее наоборот, рельсы это глухое легаси сегодня.

bread ()
Ответ на: комментарий от DRVTiny

Мне он интересен ещё тем, что есть такой crystal-lang

Crystal очень интересный проект, но к сожалению совершенно малоизвестный. Пилят его буквально 1,5 землекопа. Проблема с ним в том, что это все же не руби, а язык, похожий на руби. Т.е. инфраструктура там нулевая. Если тебе не нужны сторонние либы, милое дело попробовать.

bread ()
Ответ на: комментарий от Virtuos86

По-моему великолепный у perl'а синтаксис :)

my $a='A';
my $r=\qr{^[Ba]+$};
print "hello\n" if $a=~$$r
DRVTiny ★★★★★ ()
Ответ на: комментарий от DRVTiny

Со стабильностью все хорошо, со времен 1.8 ничего нигде не ломалось, а сейчас, на минуточку, уже 2.4.*. В автоматизации его достаточно активно используют, благодаря таким инструментам как Chef/Puppet. Ну и другие, уже не такие популярные инструменты автоматизации, на нем пишут. Ребята из Flant вон dapp выкатили, для сборки контейнеров.

postgred ()
Ответ на: комментарий от Virtuos86

упоротость синтаксиса

Растолюб рассуждает про упоротость синтаксиса, фейспалм. Впрочем, синтаксис действительно не айс. Но бывает и похуже.

bread ()

популярность Ruby явно обусловлена убывающей

Фантазии js-макак, рельсы заняли прочно свою нишу и никуда не убывают, несмотря на.

сфера применения у него ограничена веб-технологиями

Обычный, полноценный ООП язык, язык не может быть ограничен вебом.

Ruby в качестве языка на все случаи жизни

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

В итоге: простой, но достаточно мощный язык для почти любых задач, изучить его недолго, стало быть пригодится.

Alve ★★★★★ ()

Ruby в качестве языка на все случаи жизни якобы мало используется

Мне кажется, что часто используется. Для подтверждения этого утверждения, первыми в голову пришли Asciidoctor и Watir.

Что бы вас убедило, что Ruby относительно популярен и вне веба?

очень странное изобретение - обозначать префиксом область видимости переменной

Мне кажется, что это норм. @@ и $ редко нужны. Обычно у вас переменная либо с @, либо без.

и прочих чудесных вещей наподобие end'ов и def'ов (что за идиотская обфускация, для чего?)

Согласен, что это излишне многословно. От боли спасает vim-endwise.

Касательно «для чего» — у блоков внутри {} и do end различный приоритет выполнения.

a b {
  inside block
}

В коде выше сперва вызывается метод b с блоком. Результат, который вернет b, будет первым и единственным аргументом для a.

a b do
  inside block
end

А здесь вызывается метод a с первый аргументом b и блоком.

Давненько уже подумываю активно писать на чём-либо, помимо Perl'а.

Кстати, я заинтересован в том, чтобы научиться читать и отлаживать Perl(если это не потребует от меня большого количества времени). Так что, если нужно что-то перевести с Perl на Ruby, то меня можно кастовать.

Интересно, какие у Perl есть аналоги для pry, byebug и pry-byebug.

Anatolik ★★ ()

Ruby явно обусловлена убывающей, насколько я знаю, популярностью Ruby-On-Rails

уже лет 5 умирает. как и пхп. я руби использовал только как замену сложным шелл-скриптам - для этого он отличный (не значит, что плохой для всего остального). но скрипт на питоне был бы более-менее такой же.

на чем тот же brew сделан

Синтаксис наиболее популярного у хомячков Python'а вызывает у меня откровенное отвращение

странно. руби и питон сильно похожи друг на друга

но в целом явно лучше Python'а

поцоны-то и не знали

сфера применения у него ограничена веб-технологиями

в вакансиях да. а так нет. но под питон либ заметно больше, если отойти от вэба

есть ли у кого-то обоснованные возражения против того, что «Ruby без рельс бесполезен».

любой язык лучше Perl. выбирай любой, не пожалеешь

anonymous ()
Ответ на: комментарий от postgred

со времен 1.8 ничего нигде не ломалось

Это не так. Иногда немножко ломается. Например, в 2.3 nil.dup выкинет ошибку TypeError, а 2.4 просто вернет nil.

Anatolik ★★ ()
Ответ на: комментарий от anonymous

странно. руби и питон сильно похожи друг на друга

Только внешне(для тех, кто не очень хорошо знаком и с Ruby, и с Python).

Anatolik ★★ ()

На руби/рельсах всегда найдешь работу(не смотря что популярность уже «не та»). По личным ощущениям - после полугода на Node.js вновь вернуться на Rails было чертовски приятно.

http://rubyjobs.ru/vacancies

https://t.me/rubyjob

neversleep ★★ ()
Ответ на: комментарий от DRVTiny

А как у Ruby в плане стабильности самого языка?

Совместимость с прошлой версией иногда немножко ломают, но так, что это затрагивает незначительное количество кода.

Матц почти на каждом своем выступлении про Ruby 3 отмечает, что сохранение совместимости — это одна из самых главных целей.

Мне он интересен ещё тем, что есть такой crystal-lang, и он весьма быстр

Я для себя решил пока не вкладывать время в изучение Crystal. Подождать до момента, когда запилят параллельность и стабильную версию.

Anatolik ★★ ()
Последнее исправление: Anatolik (всего исправлений: 1)
Ответ на: комментарий от anonymous

странно. руби и питон сильно похожи друг на друга

По-моему совсем не похожи. Объектные модели принципиально различны. И приемы декомпозиции сильно разные.

bread ()
Ответ на: комментарий от anonymous

любой язык лучше Perl

Очень обидные ваши слова.

anonymous ()

Я вполне успешно использую ruby для написания сложных скриптов (в том числе для Windows и Illumos).
Разговоры о бесполезности ruby за пределами рельсов обычно возникают при обсуждении поиска не связанной с ROR работы. То есть это не ваш случай.
Тоже самое можно сказать о популярности. Больше популярность языка - больше перспективы найти работу сейчас или в ближайшем будущем. Если вы пишите свой проект (особенно, если пишите только для себя), то популярность - последнее, что должно вас интересовать. Разве что вы хотите себе команду для проекта найти - но это уже другая история.

Leupold_cat ★★★ ()

А чем собственно Perl не устраивает?

Singularity ★★★★ ()

Но ведь Раби давно уже в соседней Перлу могиле. Да и в былые годы это был язык одного фрейморвка.

entefeed ☆☆☆ ()
Ответ на: комментарий от Leupold_cat

Я вполне успешно использую ruby для написания сложных скриптов (в том числе для Windows и Illumos).

А что за скрипты? По работе или есть и с открытыми исходниками что-то?

Anatolik ★★ ()

Официальный интерпретатор - тот еще тормоз по сравнению с перлом

annulen ★★★★★ ()
Ответ на: комментарий от pru-mike

Кстати, спасибо.

Мне сейчас не очень нужна эта информация, но если у вас есть для этого время, может расскажете, как лучше всего установить этот Reply на Arch Linux? Интересно, есть ли в мире Perl аналог Gemfile.lock.

Anatolik ★★ ()

Это ты его просто не знаешь, а на деле там такое же уныние и чад кутежа.

go посмотри, у нас двое перловиков на него часть часть проектов спихнули, хоть и плюются от примитивности.

anonymous ()

Давно и плотно сижу на Ruby. Коллега на прошлой работе усиленно пытался переманить на Python, но мне было лень (ничего не имею против языка, иногда даже что-то на нём пишу, но Ruby всё равно больше нравится).

В итоге Ruby нашёл мне новую работу. :)

Использую и «чистый» Ruby и Rails, недавно ещё начал ковырять Sinatra и EventMachine. Проблем с производительностью не испытываю, но один раз наткнулся на жор памяти при использовании Sidekiq-воркеров.

Кстати, ситуация обратная ОПу — хотел изучить Perl для расширения кругозора. :D

Пользуясь случаем, передаю привет tazhate. Спасибо, что посоветовал Ruby!

spijet ★★★ ()
Последнее исправление: spijet (всего исправлений: 2)
Ответ на: комментарий от DRVTiny

Если перестать использовать $a в качестве переменной и отказаться от хранения регэкспов в ссылках, может и Perl покажется нормальным языком. С таким подходом любой условный ruby тебе не поможет.

anonymous ()
Ответ на: комментарий от bread

упоротость синтаксиса

Растолюб рассуждает про упоротость синтаксиса, фейспалм. Впрочем, синтаксис действительно не айс. Но бывает и похуже.

Тащемта я питонист. А в Расте закорючки нужны, чтобы запилить уберфичи, заимствование и времена жизни, в статически типизированном языке. Зачем в динамике громоздить аскии-арт, если по примеру питона видно, что можно обойтись без этого?) И по аналогии с растом можно также предположить, что как раст якобы отпугивает синтаксисом неофитов, так и перл страдает от того же. В расте хотя бы компилятор по рукам надает, если напишешь фигню, а в перле она еще и заработает.

Virtuos86 ★★★★★ ()
Ответ на: комментарий от DRVTiny

Да, неплохой. Писали бы код на дефицитной бумаге, я бы сам перл выучил, чтобы экономить.

Virtuos86 ★★★★★ ()

У меня нет ни одной программы/скрипта, написанных на руби. Думаю, если бы вдруг на горизонте замаячила возможность использования такой, руби был бы deal breaker — зачем мне нужен еще один интерпретатор в системе? В общем, каждый дрочит как хочет, но если ты пишешь в т.ч. для других людей, не надо их мучить своими рубями.

Im_not_a_robot ★★★★★ ()

Собственно, вопрос в том, насколько перспективен Ruby

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

vtVitus ★★★★★ ()
Ответ на: комментарий от Im_not_a_robot

зачем мне нужен еще один интерпретатор в системе?

Чтобы пользоваться программой, если она вам действительно нужна.

Кстати, есть штуки вроде ruby-packer и omnibus, которые позволяют уменьшить движения, которые нужно осуществить пользователю. Я, правда, ими пока еще ни разу не пользовался(потому что для разработчика — это, наоборот, больше движений).

Anatolik ★★ ()

Ruby в качестве замены Perl

тебе как перл-наркоману зайдет

В приличном обществе, на человека который использует руби мимо рельсов аккуратно в смирительную рубашонку вдевают и в комнату с мягенькими стенами

hizel ★★★★★ ()
Ответ на: комментарий от Virtuos86

Зачем в динамике громоздить аскии-арт, если по примеру питона видно, что можно обойтись без этого?

Чтобы можно было играть в перл-гольф! В идиоматичном руби то закорючек почти и нет. И ублажители компилятора можно без закорючек запилить, раст просто писали на салфетках вероятно, что даже на определении функции сэкономили.

bread ()
Ответ на: комментарий от bread

Если говорить о салфетках, то можно вспомнить, что Кнут написал первую версию TeX в обычном блокноте, так что не надо тут =).

раст просто писали на салфетках вероятно, что даже на определении функции сэкономили

Да, надо было function использовать. enum => enumeration, impl => implementation и т.д. Сразу и плотность кракозябр уменьшится:

#[derive(Debug)]
structure Foo<'foo> {
    field: &'foo string,
}

implementation<'foo> Foo<'foo> {
    function new(field: &'foo string) -> Self {
        Foo { field: field }
    }
}

function main() {
    printline!("{:?}", Foo::new("a"));
}

Даёшь многословность!

Virtuos86 ★★★★★ ()

Почему ты игнорируешь modern perl? Глядя на то, как ты на нём пишешь - плакать хочется.

Deleted ()
Ответ на: комментарий от Virtuos86

Всё равно это ужасно.

Я, например, терпеть ненавижу в perl конструкции вида

getSmth(\'piece of text')

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

А Rust синтаксическим маразмом в духе ruby'евского «@@» полон сверху до низу. Безусловно, в этом плане perl никогда никому не переплюнуть... но зачем???

DRVTiny ★★★★★ ()
Ответ на: комментарий от Deleted

Modern - это сторонние библиотеки типа Moose? А на***я?

DRVTiny ★★★★★ ()
Ответ на: комментарий от Anatolik

Если кратко, то я пишу на нем shell-скрипты, если эквивалент на sh (или ps в windows) нельзя уместить в разумной длины однострочник. В этой роли ruby меня совершенно устраивает и я использую его с этой целью везде, где это приемлемо. Никаких серьезных проектов на ruby я никогда не писал.

Цитируемая вам часть комментария относилась к высказыванию про «бесполезность без ROR». Я пишу это, так как у меня сложилось впечатление, словно вы подумали обо мне, как о ruby-разработчике.

Leupold_cat ★★★ ()
Ответ на: комментарий от Leupold_cat

А типа серьёзные приложения пишете конечно на С++?

DRVTiny ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.