Недавно я перешел с Ruby on Rails на Elixir / Phoenix, но наследие заставлять нас улыбаться продолжает жить.

Я ни о чем не жалею о своем опыте работы с Rails. Мы создали несколько отличных веб-приложений и веб-сайтов. Это помогло сформировать мое мышление (может быть, хорошее или плохое) в модель «счастья программиста». Когда мои разработчики счастливы, они работают продуктивно, а когда мои разработчики продуктивны, мой клиент тоже счастлив.

Мы также создали свою долю «больших комков грязи». В некоторых случаях мы пытались следовать соглашениям Rails и терпели неудачу. В некоторых случаях мы пытались быть новаторскими, и это действительно потерпело неудачу. А в некоторых случаях это были очень сложные проблемные области, для решения которых Rails плохо подходил.

У всего есть срок годности

Я никогда не перестану любить Rails. Но я перестану им пользоваться. - Стив Келлок

Rails исполнилось десять лет, и багаж этого десятилетия начинает проявляться. Эксперимент Turbolinks, отсутствие настоящего параллелизма, сложная борьба за производительность, огромные размеры ActiveRecord и чрезмерно умные DSL постепенно уменьшают счастье программистов.

Rails, в силу своей зависимости от CRuby, далек от победы над параллелизмом и зверем производительности. Даже если вы используете JRuby, Rails не предназначен для идиоматического использования преимуществ параллелизма JRuby. В том маловероятном случае, если Rails будет коренным образом изменен для адаптации, сообщество построит огромную инерцию вокруг драгоценных камней, которые были построены вокруг старых Rails.

Эликсир и Феникс

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

Я очень взволнован по поводу Elixir / Phoenix. Это духовный преемник Rails, сочетающий современный параллелизм и стабильность с новым (для меня) миром функционального программирования и неизменяемости. Он также имеет глубокие корни в мире Rails, что делает переход незаметным и приятным.

Простые, идиоматические и легкие процессы Elixir позволяют решать проблемы производительности, с которыми сталкиваются веб-приложения. Если вы сравниваете только прямолинейную однопоточную производительность, Elixir не намного быстрее, чем Ruby, но уносит Ruby с ног в ответ на несколько входящих запросов. Phoenix как фреймворк крошечный по сравнению с Rails. И Хосе Валим (создатель Elixir и один из основных участников Phoenix) мягко уводил сообщество от чрезмерно умных и к более понятным и управляемым DSL.

Я мог бы продолжить об Эликсире и Фениксе, и, собственно, я так и сделаю, в будущих сообщениях в блоге. Если вам интересно, нажмите эту кнопку «Подписаться». :)

Я глубоко признателен за то, что создали @dhh (и другие), что помогло сформировать новое поколение разработки веб-приложений. Заставляет улыбнуться; и в этом Rails добился огромного успеха.

Хамон Холмгрен (http://twitter.com/jamonholmgren, http://infinite.red)