Навчання веб-розробці: Django проти Node проти Rails проти інших [закрито]


80

Я знаю Java і Python (з деяким Django), а також трохи Ruby (без Rails) і Node.js, і, мабуть, є ще те, про що я не знаю.

Я планую почати вивчати веб-розробку та її повний стек, але коли я бачу навколо, я бачу купу варіантів, і це мене бентежить. Мені потрібні пропозиції, виходячи з наступних пунктів

  1. простота навчання
  2. простота в побудові та ітерації
  3. простота розгортання (наприклад, безкоштовні та дешеві хостингові рішення)
  4. популярний

Будь ласка, дайте кілька порад

Дякую


А як щодо гуглів GWT? Або борознисті граали?
Angel O'Sphere

Відповіді:


82

Рубін на рейках:

Легко вчитися? - Так - відмінна документація на guides.rubyonrails.org та чудовий підручник на railstutorial.org .

Легко будувати та повторювати? - точно - рейки дуже добре піддаються швидкій та ітеративній розробці.

Легко розгорнути? - Розгорнути (принаймні для невеликих додатків та під час навчання) неможливо набагато простіше, ніж користуватися heroku.com - git на основі push, і це безкоштовно.

Популярність - дуже популярна!

Джанго

Легко вчитися? - як і Rails, Django має чудову документацію на docs.djangoproject.com/en/1.3/ . Можливо, трохи крутіша крива навчання (суто думка тут, але я вважаю, що рейки, як правило, "готові до роботи", тоді як django потребує трохи конфігурації перед тим, як перейти до розробки).

Легко будувати та повторювати? - знову ж таки, як Rails, коли ви вже працюєте з ним, це дуже легко повторити.

Легко розгорнути? - не так просто, як Rails. Існують еквіваленти героку gondor.io , djangozoom.com , stable.io, але вони, як правило, перебувають у приватній бета-версії. Тим не менше, у мене не було проблем з отриманням запрошення на gondor.io .

Популярність - вона популярна, але спільнота користувачів трохи менше .... жвава, ніж натовп Rails.

Вузол

Легко вчитися? - гм, так і ні, легко скласти швидкий сервер привіт світу разом, але складніше, якщо ви хочете повномасштабну програму. Спочатку я б тримався осторонь цього - воно нове і швидко розвивається. Крім того, сам Node не можна порівняти з Rails або Django, оскільки два останні є фреймворками, тоді як Node - це більше простого набору apis, який ви могли б використовувати для розробки чогось. Ви можете обрати такий фреймворк, як expressjs.com, який більше відповідає Rails та Django. Я ним не користувався, тому не можу насправді дати вам свою думку.

Легко будувати та повторювати?- легко побудувати - так, легко повторити - так.

Легко розгорнути? - Ви можете перейти на no.de і подати заявку, щоб отримати смартмашину - на даний момент вона безкоштовна і проста в розгортанні - на основі git.

Популярність - вона набирає.


13
Я погоджуюся з вашими першими 3 пунктами щодо RoR. На жаль, ваша остання думка не відповідає дійсності. Можливо, це ганьба, але RoR просто не популярний на практиці. Погляньте на Tiobe, Ruby має лише 1,3% частки ринку, а це означає, що RoR має ще менше. Подивіться на роботу, запропоновану для рейок. Дуже важко його знайти.
Mike Braun

4
справедливий Майк - можливо, інтернет-спільнота просто видає достатньо шуму, і, на мою думку, воно популярне. :)
slapthelownote

2
Я б насправді не знав, але якщо ви поєднаєте всі запитання, позначені тегами Java Web framework, ви не отримаєте жодної близькості до кількості запитань Rails у SO. Це для вас 1,3% частки ринку.
Філіп Дупанович

19
Тепер Heroku підтримує Django.
Бен Расін,

5
Той факт, що для Rails існує набагато більше запитань щодо SO, може бути показником типу програмістів, які намагаються це вивчити, аніж популярності фреймворку в реальних розгорнутих додатках. У групи новеньких буде купа питань
A_funs

44

Кілька приміток розробника Django, який витратив трохи часу на вивчення Node.js:

  • Асинхронний підхід до програмування в Node.js концептуально складніший. Хоча ви можете застосувати подібний підхід у Django або Rails, нечасто це робити.

  • Node.js дуже, дуже швидко виходить з коробки. Але частина цього полягає в тому, що він не включає дуже багато OOB.

  • Світ Node зараз дуже роздроблений, десятки бібліотек Node, рішень та фреймворків змагаються за увагу. На даний момент Express, здається, є найпопулярнішим фреймворком для Node, але ми начебто в очікувальній грі, щоб побачити, що витрясеться. Django і Rails вже мають усі біти, необхідні для створення вдосконалених додатків, без необхідності склеювати все самостійно.

  • Зараз найпопулярнішим фреймворком для Node.js є Express, але Express навіть не включає спосіб підключення до бази даних. Ви повинні це додати. Він також не включає ORM - вам потрібно додати це. Я розглянув деякі ORM-вузли Node, але вони здавались не такими повними або витонченими, як Django.

  • Django - це цілісне, цілісне, наскрізне рішення, де всі частини плавно з’єднуються («спосіб Mac»). Node.js є базовою лінією, на вершині якої ви вибираєте власний фреймворк, власну ORM, власний драйвер db, власну систему маршрутизації URL-адрес тощо ("спосіб Unix").

  • Спосіб Unix має переваги, але подібні системи IMO важче дістати з місця і важче підтримувати. Частини не обов’язково розмовляють між собою, як ви очікували, і весь проект не модернізується відразу. Наскрізні системи, такі як програмно-апаратний континуум Mac та Django / Rails, є величезними виграшами для підвищення продуктивності. Для порівняння зверніть увагу на відносну неясність TurboGears Python (купа від’єднаних частин) порівняно з Django. Джанго їв обід TurboGears, оскільки він згуртований і послідовний. Якщо для вас важлива продуктивність, ви будете продуктивнішими, працюючи в більш зрілих рамках. Фреймворк Node.js, який виконує це бачення, коли-небудь з’явиться, але його ще немає.

  • Express не надає набору корисних інструментів командного рядка, API даних тощо, які надають Django або Rails.

  • Фреймворки Node.js, безумовно, не містять нічого подібного до адміністратора Django, що є масовим виграшем продуктивності для розробників Django.

  • Суто моя думка, але Python просто відчуває себе більш елегантно, ніж Javascript. Код є більш компактним і читабельним. Хоча це не велика перешкода, просто перевага.

Загалом, Django відчуває себе платформою "з включеними батареями", тоді як Node відчуває себе більше як продаж у ніс.

Node / Express справді молоді. Захоплююче по-різному і демонструє величезні обіцянки, але скільки часу знадобиться, щоб фреймворки Node.js почувались конкурентоспроможними у зрілих фреймворках? Не знаю.


3
з CoffeeScript. Код є більш компактним і читабельним настільки, наскільки це робить Python
jwchang

"Express - це швидкий, непроникний, мінімалістичний веб-фреймворк для Node.js" з головної сторінки Express.

27

Що стосується можливостей для працевлаштування, я б сказав, що ви отримаєте хорошу роботу, якщо підете на Rails або Django. Зараз лише кілька компаній дійсно платять за розробників Node.js, оскільки він поки недостатньо великий.

Що стосується можливостей запуску, Rails весь шлях. Більшість цікавих та захоплюючих стартапів підтримує Ruby on Rails. Я натрапив на пару, що використовує Django. Але такі компанії, як Groupon та Living Social, написані переважно на Rails. Ruby також майже вдвічі популярніший від Python на Github . І ось це питання Quora:

З точки зору майбутнього, Node.js - це шлях. Шаблони HTML так чи інакше починають писатися майже повністю на JavaScript ( jQuery.tmpl ), тож, роблячи це таким чином, що вам потрібно лише оволодіти однією мовою, JavaScript, ваш набір навичок стає набагато потужнішим. І node.js дійсно підходить для веб-додатків у режимі реального часу . Крім того , хмара розгортання платформ , таких як Heroku, які були спочатку 100% рубіна, також починають підтримувати Node.js . Інші теж роблять це для всіх мов, як dotcloud .

Потрібно зробити ще багато роботи, щоб зробити Node.js таким повнофункціональним, як Ruby on Rails (тому Rails поки що є стандартом), але основи тут є:

  • express.js : веб-фреймворк
  • jade.js : фреймворк шаблонів html
  • socket.io : веб-програми в режимі реального часу

Якщо ви хочете найсучасніший край, однозначно Node.js. Якщо хочете

  1. легкість в дізнатися
  2. простота в побудові та ітерації
  3. простота розгортання (наприклад, безкоштовні та дешеві хостингові рішення)
  4. популярний

Рубін на рейках.


5

Популярність (пункт 4)): Технологія Java Server Faces (JSF) . Починаючи з JSF 1.2 до поточного JSF 2.1, тепер це збігається з Java EE 5 та Java EE 6 відповідно. Це означає, що тепер це стандарт Java EE. Крім того, перевага означатиме, що сервери веб-додатків (такі як JBoss AS 5 і вище, GlassFish, WebSphere AS, Oracle AS тощо), які повністю сумісні з Java EE (5 і вище), можуть запускати JSF (не потрібно конфігурацій, так що вирішує пункт в)).

Існують різні підручники для JSF, наприклад, у CoreServlets . BalusC написав простий і чудовий підручник з налаштування та написання простого веб-додатку JSF з нуля.


3
Я повністю згоден! JSF сьогодні дуже хороший (старі версії були не такими чудовими). Додавання до своїх прикладів; JSF також є частиною веб-профілю Java EE, тому надлегкі сервери, такі як Resin, також підтримують JSF нестандартно.
Mike Braun

1
Блоги та статті Ps BalusC - чудові! :)
Mike Braun

1

JSF 2.x стає в наш час настільки популярним, і все більше орієнтований на інтерфейс користувальницький інтерфейс у поєднанні з праймфейсами , якщо вам потрібна швидка розробка додатків в екосистемі JSF, таких як рейки, вам слід врахувати

http://www.springfuse.com/

http://www.myeclipseide.com/documentation/quickstarts/ME4STutorialScaffoldingJSF/scaffoldingjsfarticle.html

Spring Roo з аддоном JSF http://java.dzone.com/articles/jsf-20-spring-roo

1)ease to learn (http://www.vogella.com/articles/JavaServerFaces/article.html)

2)ease to build and iterate

3)ease to deploy (like free and cheap hosting solutions) 

   a) http://www.mkyong.com/google-app-engine/google-app-engine-jsf-2-example/
   b) http://blog.jelastic.com/2012/06/11/how-to-deploy-primefaces-applications-into-jelastic-cloud/

4)popular (http://www.primefaces.org/whouses.html)
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.