Что случилось с Руби?

автор red


Если вы достаточно долго были в мире веб-разработки, вы видели взлеты и падения многих языков и фреймворков. Падающая звезда — Ruby и его фреймворк для веб-приложений Ruby on Rails — загорелись ярче большинства. В 2008 году, всего через три года после того, как был представлен Rails, в этой самой публикации был поставлен вопрос о том, может ли фреймворк стать преемником Java, отметив, что он избавил веб-разработку от монотонной работы и что стартапы, смежные с Ruby, получают большие венчурные инвестиции. .

Пятнадцать лет спустя мысль о том, что Ruby заменит Java, кажется смехотворной. В индексе TIOBE, который отслеживает результаты поиска по запросам о разных языках, Ruby был на 16-м месте, когда я последний раз проверял. Он находится между MATLAB и Object Pascal. (Java занял почетное четвертое место.) Компания Filtered, предоставляющая виртуальные среды, в которых кандидаты на работу могут продемонстрировать свои навыки потенциальным работодателям, даже не включила Ruby в список восьми самых популярных языков. По их словам, наниматели тестировали Ruby только примерно в 0,5% случаев.

Но пока не помещайте Ruby в музей вместе с FORTRAN или ALGOL. Я поговорил с нынешними и бывшими программистами Ruby, чтобы попытаться проследить взлёт и падение языка. Они поделились своими мыслями о том, как и почему Ruby был вытеснен из списка самых любимых языков, а также почему они считают, что у него еще есть будущее.

Когда Руби был великолепен

За первоначальным всплеском популярности Ruby стоял ряд факторов, но главный из них заключался в том, что с его помощью можно было легко ускорить разработку, особенно интерфейсных приложений. И это не изменилось. «Ruby on Rails по-прежнему является отличным способом для небольшой команды оказывать влияние на большую команду, — говорит Ноэль Раппин, соавтор книги. Программирование Ruby 3.2. «Это остается одним из самых быстрых способов перейти от нуля к настоящему ценному продукту».

«Ruby был и всегда был лучшим языком, когда дело доходит до предоставления пользователю надежного пользовательского интерфейса», — объясняет Пулкит Бхардвадж, тренер по электронной коммерции в BoutiqueSetup.net. «Он обеспечивает простоту использования для конечных пользователей и обеспечивает стабильную и безопасную работу. Он также предоставляет пространство для экспериментов, поскольку Interactive Ruby предлагает мгновенные результаты выражения строка за строкой».

Ruby также был связан с сильным сообществом открытого исходного кода с первых дней своего существования. Кевин Троубридж, технический директор Qwoted, считает, что во многом это связано с природой самого языка. «Это самый грамотный из всех языков программирования», — говорит он, имея в виду, что «на нем так легко писать и читать. Вот почему у вас есть чрезвычайно сильное сообщество и философия, заключающаяся в том, что он оптимизирован для продукта, продуктивность разработчиков и счастье».

Но эти преимущества никогда не давали Ruby и Ruby on Rails ничего похожего на полное господство. И другие языки и фреймворки, конечно же, не стояли на месте. «Rails появились на пике периода трансформации и роста Интернета, — говорит Мэтью Боэ, разработчик Ruby с 2006 года. будет единственной историей успеха».

Боэ недавно устроился на работу старшим штатным инженером-программистом в Lattice, магазин TypeScript. «Можно сказать, что Ruby стал жертвой собственного успеха, поскольку его сообщество было главной движущей силой возрождения командной строки в последние годы», — говорит он. «В начале 2000-х она представила разработку на основе REPL людям, которые никогда не слышали о Lisp, управление пакетами — людям, которых отпугнул бы CPAN Perl, разработку через тестирование — людям, не относящимся к высококорпоративному миру Java, и и так далее. Это все то, что сегодня считается ставкой за столом. Руби ничего из этого не придумал, но все это было популяризировано и сделано доступным рубистами».

Претенденты на Ruby: JavaScript и Python

Если и есть один язык, который сейчас доминирует в областях, где раньше правил Ruby, то это JavaScript. Это стало правдой только тогда, когда язык сбежал из браузера, чтобы захватить остальной мир. «Поскольку JavaScript превратился в язык с полным стеком, инженеры получили возможность создавать интерфейсные, серверные и мобильные проекты на одном языке или даже на общей кодовой базе», — говорит Джемайя Сиус, директор по связям с разработчиками в New Relic. «Ruby прост в освоении и имеет очень высокий стандарт безопасности, а также активное сообщество. Но когда кто-то думает о полном стеке, он думает о JavaScript — Node.js, React или любой другой предпочтительной среде».

Троубридж из Qwoted отмечает, что JavaScript смог восполнить этот пробел, потому что язык улучшился по сравнению с тем, на который разработчики когда-то смотрели с определенной долей презрения. Фактически, со временем он стал больше похож на Ruby. «Поставщики браузеров приложили усилия для формализации, стандартизации, упрощения и усовершенствования», — говорит он. «Это намного лучше, чем JavaScript раньше».

«Экосистема JavaScript в ее нынешнем виде была бы невообразимой в 2004 году — она нуждалась как в ренессансе командной строки, так и в развитии веб-платформы», — добавляет Боэ из Lattice. «Знаете ли вы, что потребовалось целое десятилетие, с 1999 по 2009 год, чтобы выпустить одну новую версию стандарта JavaScript? Теперь мы выпускаем одну версию ежегодно. -разработчик стека без знания JavaScript».

Между тем, Python стал доминировать в одной из самых горячих областей разработки сегодня — искусственном интеллекте и машинном обучении. «Python стал популярен в научном сообществе, потому что он мог прототипировать модели и алгоритмы быстрее, чем когда-либо, поэтому он на годы опередил Ruby», — говорит Бхардвадж. «С другой стороны, Ruby стал восприниматься как медленный в исполнении и не привлек внимания к разработке». Сиус из New Relic соглашается: он говорит, что «когда кто-то думает об универсальном языке, который может создавать все, от игр до виртуальной реальности, искусственного интеллекта и машинного обучения, все знают, что Python — явный победитель».

Упадок рубина

Несколько факторов привели JavaScript и Python к доминированию над Ruby, и они выходят за рамки только качеств самих языков. «На бумаге Python и Ruby вполне эквивалентны, — говорит Троубридж из Qwoted. «Они оба являются динамическими, интерпретируемыми языками сценариев, которые лучше всего работают на сервере. Они не очень эффективно используют память, поэтому их дорого запускать, но они обладают невероятной гибкостью, поэтому они также довольно быстро настраиваются. пишите и дружелюбно относитесь к новичкам».

Но когда дело доходит до науки о данных, у Python есть преимущество благодаря доступности таких библиотек, как TensorFlow и Keras. «Эти фреймворки упрощают программистам визуализацию данных и написание программ для машинного обучения, — говорит Бхардвадж.

Тем временем JavaScript породил, казалось бы, бесконечные библиотеки, которые разработчики могут легко загружать и адаптировать практически для любых целей. «Как технолог, вы можете отправиться в путешествие своего собственного героя, следуя любой нише, которую считаете правильным путем», — говорит Троубридж. Но когда дело доходит до JavaScript, «эти библиотеки превосходны. Зачем игнорировать все это?»

Многие из этих библиотек были разработаны членами сообщества, что вдохновило других внести свой вклад в эффект снежного кома, знакомый всем, кто занимается открытым исходным кодом. Но один крупный игрок имел здесь огромное влияние. Python TensorFlow, который Бхардвадж назвал «изменившим правила игры», был выпущен компанией Google, которая последовала примеру академических кругов и сделала Python своим внутренним языком сценариев. Google, как производитель доминирующего веб-браузера, также проявляет очевидный интерес к развитию JavaScript, и Троубридж отдает должное Google за то, что он сделал JavaScript намного быстрее и эффективнее с точки зрения использования памяти, чем это было раньше: «В некотором смысле кажется, что язык низкого уровня, — говорит он. Между тем, общепризнано, что Ruby отстает в производительности, отчасти потому, что ему не хватает такого же корпоративного спонсора с ресурсами для его улучшения.

А в некоторых нишах, где когда-то процветал Ruby, его не заменили другим языком; скорее, почва сдвинулась, так что эти ниши больше не узнаваемы. «Я начал свой бизнес с создания маркетинговых сайтов и интернет-магазинов для клиентов местного креативного агентства, и я думаю, что также легко упустить из виду, насколько этот нижний конец мира веб-разработки был автоматизирован», — говорит Боэ из Lattice. . «Через пару лет весь этот бизнес перестал быть жизнеспособным — никто не интересовался подобными сделанными на заказ сайтами, когда они могли довольно прилично работать с WordPress или Shopify».

Почему Руби никуда не денется

Тем не менее, Ruby не исчезнет, ​​и Shopify, гигант электронной коммерции, является одной из основных причин этого, поскольку Ruby on Rails является его основной платформой для разработки. «Ruby по-прежнему лучше всего подходит для создания приложений для электронной коммерции благодаря своей динамической функциональности и гибкости», — говорит Бхардвадж из BoutiqueSetup.net. «Вы можете создать свое приложение с помощью различных модулей и изменить их позже. Это упрощает обновление приложения для дополнительных функций».

И хотя Shopify, очевидно, не работает в масштабах такой компании, как Google, он по-прежнему стремится действовать как своего рода покровитель Ruby, как Google делает для своих любимых языков. Например, Shopify недавно разработала YJIT, своевременный компилятор, улучшающий производительность Ruby и встроенный в стандарт Ruby.

Троубридж из Qwoted говорит, что Ruby также процветает «в качестве отличного серверного «связующего» языка, который хорошо работает для серверного компонента веб-приложений, как в режиме «только API» Rails». В некотором смысле, отмечает он, эта роль «оставляет Руби, по существу, там, где она началась».

В общем, почти все, с кем я разговаривал, считают, что Ruby и Ruby on Rails будут продолжать использоваться в ряде настроек. «Есть много языков, которые по-прежнему широко используются и актуальны, хотя и не так популярны, как когда-то», — говорит Троубридж. «Я бы назвал Java главным примером этого и предположил, что Ruby и Java пойдут по схожей траектории».

Наконец, есть теплота и энтузиазм в отношении Ruby со стороны его сообщества, которых вы, кажется, не найдете в других языках, даже в тех, которые во многих областях «победили» Ruby. Например, Космин Андриеску, технический директор Lumenova AI, говорит, что «Rails по-прежнему имеет большое преимущество с его огромным количеством библиотек Ruby gem по сравнению со многими средами JavaScript, которые имеют нестабильные API и недостаточно развиты во всех необходимых инструменты для веб-разработки». Боэ, несколько более прямо, характеризует Python как «язык, на котором я встречал больше всего людей, которые абсолютно ненавидят его использовать».

«Я до сих пор использую Ruby для личных проектов и надеюсь, что смогу снова использовать его в профессиональных целях», — добавляет Боэ. «Сейчас в мире Ruby происходит много захватывающих событий, и по состоянию на шесть месяцев назад было много возможностей для трудоустройства. Ruby никогда больше не станет Next Big New Thing, но я думаю, что он здесь, чтобы остаться».

Related Posts

Оставить комментарий