NodeJS vs Ruby on Rails solishtirish 2017. Internetni rivojlantirish uchun eng yaxshisi qaysi?

Yangi boshlang'ich uchun rivojlanish uchun to'g'ri tilni tanlash qiyin. Rivojlanishdagi eng katta kurashlardan biri bu Node.JS va Ruby on Rails. Xo'sh, bu kurashda kim g'olib?

Qirol o'ldi, uzoq umr ko'ring Qirol!

Agar siz ushbu savolni 5 yil oldin so'rasangiz, u albatta Ruby bo'ladi, ammo vaqt o'zgarib bormoqda va bizda yangi rahbar bor.
Google tendentsiyalari bilan tanishing:

So'nggi 4 yil ichida Node.JS Ruby-ni yiqitdi va tugun bozorni kengaytirishda davom etmoqda.
Endi dasturlash tillarini ishlash vaqtini taqqoslaylik.

Ushbu grafikadan ko'rinib turibdiki, Ruby eng sekin ish vaqtiga ega.
Yana bir omil - bu ishlarning soni. Bozorda ish joylari qancha ko'p bo'lsa, muayyan tilga talab oshadi.

Reyslar bo'yicha yoqut:

  • Bu moslashuvchan va IDE bilan do'stdir.
  • Ma'lumotlar bazasi migratsiyasi. Bu har qanday platformaga osongina ko'chiriladi.
  • Oson funktsiyalar va manipulyatsiyalar.
  • Tuzilishi va metodologiyasiga mos keladi.
  • Til juda kuchli va ifodali. Ilova mantig'ini intuitiv tarzda ifodalash juda oson.

Reysning ekspluatatsiyasi bo'yicha Ruby:

  • Eng yaxshi dasturiy ko'nikmalar talab qilinadi, shuning uchun yuqori maoshli yuqori darajali dasturchilar talab qilinadi.
  • Katta loyihalarni amalga oshirishda juda ko'p hiyla-nayrang.
  • Hujjatlar faqat mashhur ramkalar uchun
  • Ko'proq hisoblash manbalari talab qilinadi.
  • Ishlash. Rels do'zax kabi sekin va bu oxirgi foydalanuvchining tajribasiga qadar puflanadi.
  • Katta suyakli ramkalar. Reysning abstraktsiyaning juda ko'p qatlamlari mavjudligi, bu muammoni hal qilishni qiyinlashtiradi.

Node.JS tarozi:

  • Kuchli kutubxonalar. libuv, blokirovka qilinmaydigan I / O bilan ishlaydigan tugun orqasidagi kutubxona juda ajoyib va ​​yomon tezkor.
  • To'liq suyakka. HTTP serveridan shablonli dvigatelgacha Node.JS - bu butun to'plam. Reylar aslida ishlash uchun Nginx yoki Apache kabi mod_rails (aka Passenger) bilan ish tutadi.
  • Yuqori bozor talabi va hozirgi vaqtda startaplarda juda mashhur.
  • Mijoz va server tomonida bir xil til.
  • Kuzatish, joylashtirish va qo'llab-quvvatlash oson.
  • Sahifa yuki sayt bo'ylab tezroq. (Bizning sinovlarimiz shuni ko'rsatdiki, veb-saytlar odatda tugun bilan 2 yoki 3 marta tezroq bo'ladi.

Node.JS kamchiliklari:

  • Tugun protsessor intensiv vazifalari uchun mos emas.
  • Noturg'un API: Node API orqaga mos kelmaydigan usulda bo'shatishdan ozodgacha o'zgartirishni odatiy holga aylantiradi va kodlar bazangizga tez-tez o'zgartirishlarni kiritish kerak, chunki bu eng so'nggi versiyada ishlaydi. Bu aytilganidek, narsalar 0.2.0 chiqqandan beri barqarorroq bo'lishi kerak.
  • Bu yangi va juda issiq bo'lganligi sababli node.js uchun ishlab chiqaruvchilarning soni kam.

Katta kompaniyalar Node.JS ni Raillardagi Ruby o'rniga tanlaydilar.

Kengayish qobiliyati haqida gap ketganda, siz Node.JS bilan raqobatlasha olmaysiz. Ruby-dan Rails-dan Node.js-ga o'tgan kompaniyalar mavjud:

  • Netflix
  • Nyu-York Tayms
  • PayPal
  • O'rta
  • LinkedIn
  • Uber
  • Hapi

LinkedIn Case Study

LinkedIn bir muncha vaqt oldin ishlash va ko'lamliligi sababli Ruby on Rails-ga qurilgan uyali infratuzilmani Node.js bilan almashtirdi.

Kiran Prasad ko'lamning kengayishi bilan bog'liq muammolar tufayli Rubidan o'tishga qaror qildi.

Node.js oxir-oqibat bir qator imtiyozlarni taqdim etgan holda tanlandi:

  • Yaxshiroq ishlash, Node.js ma'lum stsenariylar uchun Rails-dan 20 marta tezroq ishlaydi
  • 30 o'rniga 30 tadan 3tagina serverdan foydalanish, trafikni 10 baravar ko'paytirish uchun joy qoldirish
  • Front-end JavaScript muhandislarini orqa kod kodi uchun ishlatish mumkin edi va ikkala jamoa aslida bir biriga birlashtirilgan

Node.js-dan foydalanayotgan 4000 dan ortiq kompaniyalar ro'yxati. Hacker News-da uzoq reaktsiyalar mavjud

Xulosa

Ruby On Rails hali ham mashhur ramka bo'lib, uni ko'plab ishlab chiquvchilar sevishadi. Biroq, node.jsning ikkita eng katta afzalligi. Birinchisi, bu javascript, ikkinchidan - bu uyali aloqa dasturlari, chat dasturlari yoki boshqa xizmatlarni orqa fon sifatida ishlatadigan har qanday ilovalar uchun juda mos keladigan arxitektura.

Agar ushbu maqola sizga foydali bo'lsa, uni do'stingiz bilan ulashing va quyidagi tugmani qo'ying.