Порівняння NodeJS проти Ruby on Rails 2017. Що найкраще для веб-розробки?

Стартапу важко вибрати правильну мову для розробки. Одна з найбільших бій у розвитку - між Node.JS та Ruby on Rails. Отже, хто переможець у цій боротьбі?

Король мертвий, хай живе Король!

Якщо ви поставили це запитання 5 років тому, це було б точно Рубі, але час змінюється, і у нас є новий керівник.
Давайте подивимося на тенденції Google:

Протягом останніх 4 років Node.JS щойно розгромив Ruby, і вузол продовжує розширювати ринок.
Тепер порівняємо мови програмування.

Як ми бачимо з цього графіка, у Рубі найповільніший час виконання.
Ще один фактор - кількість робочих місць. Чим більше робочих місць на ринку, тим більше вимог до певної мови.

Плюси Ruby on Rails:

  • Це гнучка та зручна для IDE структура.
  • Міграції баз даних. Він буде легко переноситься на будь-яку платформу.
  • Легкі функції та маніпуляції.
  • Це відповідає структурі та методології.
  • Мова дуже потужна і виразна. Висловити логіку програми легко інтуїтивно.

Мінуси Ruby on Rails:

  • Потрібні найкращі навички програмування, тому потрібні найвищі програмісти з високою оплатою.
  • Набагато складніше, якщо робити великі проекти.
  • Документація призначена лише для популярних рамок
  • Потрібно більше обчислювальних ресурсів.
  • Продуктивність. Рейки повільно, як пекло, і це перетворюється на досвід кінцевого користувача.
  • Великі рамки для стеків. Той факт, що у Рейлів так багато шарів абстракції, налагоджує біль.

Плюси Node.JS:

  • Потужні основні бібліотеки. libuv, бібліотека за Node, яка обробляє незаблокований введення / вивід, надзвичайно приголомшлива і зла.
  • Повний стек. Від сервера HTTP до двигуна шаблонів, Node.JS - це весь пакет. Rails спирається на щось на зразок Nginx або Apache з mod_rails (він же Пасажирський), щоб реально працювати.
  • Високий попит на ринку і дуже популярний у стартапи в цей час.
  • Однакова мова на стороні клієнта та сервера.
  • Легко контролювати, розгортати та підтримувати.
  • Завантаження сторінки відбувається швидше по всьому сайту. (Наші тести показали, що веб-сайти, як правило, в 2 або 3 рази швидше з вузлом.

Мінуси Node.JS:

  • Вузол не підходить для завдань, що займаються процесором.
  • Нестабільний API: API Node має звичку змінюватись невідповідними способами від виходу до випуску, і потрібні часті зміни вашої кодової бази, щоб тримати роботу останньої версії. Однак це повинно бути стабільнішим з моменту виходу 0.2.0.
  • Оскільки він новий і дуже гарячий, на ринку node.js є менше розробників.

Великі компанії вибирають Node.JS замість Ruby on Rails.

Що стосується масштабованості, ви не можете конкурувати з Node.JS. Є компанії, які перейшли з Ruby на Rails на Node.js:

  • Netflix
  • Нью-Йорк Таймс
  • PayPal
  • Середній
  • LinkedIn
  • Uber
  • Хапі

Тематичне дослідження LinkedIn

LinkedIn замінив їхню мобільну інфраструктуру, побудовану на Ruby on Rails, на Node.js деякий час тому з міркувань продуктивності та масштабованості.

Кіран Прасад вирішив перейти з Рубі через проблеми зі масштабованістю.

Врешті-решт Node.js було обрано, що надає ряд переваг:

  • Для кращих показників продуктивності Node.js до 20 разів швидше, ніж Rails для певних сценаріїв
  • Використовуючи лише 3 сервери замість 30, залишаючи місце для 10-кратного зростання трафіку
  • Передній інженер JavaScript може бути використаний для зворотного коду, і дві команди були фактично об'єднані в одну

Список понад 4000 компаній, які вже використовують Node.js. На Hacker News є довга нитка реакцій

Висновок

Ruby On Rails як і раніше популярний фреймворк і його люблять багато розробників. Однак дві найбільші переваги node.js. По-перше, це javascript, а по-друге, це архітектура, керована подіями, що робить його приголомшливим для мобільних додатків, чатів або будь-яких додатків, які використовують сервіси відпочинку як бекенд.

Якщо ця стаття була для вас корисною, поділіться нею зі своїм другом і покладіть кнопку, як ніби.