Обучение веб-разработке: Django vs Node vs Rails vs Others

Я знаю Java и Python (с некоторым Django) и немного Ruby (без Rails) и no Node.js, и, возможно, есть еще что-то, о чем я не знаю.

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

  • легкость обучения
  • легкость сборки и итерации
  • легкость развертывания (например, бесплатные и дешевые хостинг-решения)
  • популярный

Пожалуйста, бросьте какой-нибудь совет

Спасибо

Ответ 1

Ruby on Rails:

Легко учиться? - Да - отличная документация на 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

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

Легко создавать и итерации? - легко построить - да, легко итеративно - да.

Простота развертывания? - вы можете перейти к no.de и применить его для получения smartmachine - он свободен в настоящий момент и легко развертывается - git.

Популярность - она ​​набирает обороты.

Ответ 2

Несколько заметок от разработчика Django, которые потратили немного времени на изучение Node.js:

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

  • Node.js действительно, действительно быстро из коробки. Но причина в том, что он не включает в себя очень много OOB.

  • Мир Node очень фрагментирован прямо сейчас, с десятками библиотек, решений и фреймворков Node, которые все конкурируют за внимание. Экспресс, по-видимому, является самой популярной структурой для Node прямо сейчас, но мы вроде как в ожидающей игре, чтобы увидеть, что трясет. Django и Rails уже имеют все необходимые биты для создания передовых приложений без необходимости склеивать все вместе.

  • Самой популярной структурой для Node.js сейчас является Express, но Express даже не включает способ подключения к базе данных. Вы должны добавить это. Он также не включает ORM - вам нужно добавить это. Я просмотрел ORM, но они не казались почти такими же сложными, как Django.

  • Django - это полное, сплоченное, сквозное решение, в котором все части легко сочетаются ( "путь Mac" ). Node.js - это базовая линия, поверх которой вы выбираете свою собственную структуру, свою собственную ORM, свой собственный драйвер db, свою собственную систему маршрутизации URL и т.д. и т.д. ( "путь Unix" ).

    /li >
  • Есть преимущества для Unix-метода, но системы IMO, подобные этим, сложнее сойти с земли и с трудом поддерживать. Части не обязательно общаются друг с другом, как и следовало ожидать, и весь проект не обновляется сразу. Комплексные системы, такие как программный/аппаратный континуум Mac и Django/Rails, являются огромными выигрышами для производительности. Для сравнения отметим относительную неясность Python TurboGears (куча отключенных частей) по сравнению с Django. Джанго съел обед TurboGears, потому что он сплочен и последователен. Если производительность важна для вас, вы будете более продуктивно работать в более зрелых рамках. Рамка Node.js, которая выполняет это видение, прибудет когда-нибудь, но ее пока нет.

  • Express не предоставляет ряд полезных инструментов командной строки, API данных и т.д., которые предоставляют Django или Rails.

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

  • Чисто мое мнение, но Python просто чувствует себя более элегантно, чем Javascript. Код более компактный и читаемый. Однако не большое препятствие, просто предпочтение.

В целом, Django чувствует себя "платформой с включенными батареями", а Node больше похож на продажу рояля.

Node/Экспресс действительно молоды. Захватывающие пути и демонстрирующие огромные перспективы, но сколько времени потребуется для рамок Node.js, чтобы чувствовать себя конкурентоспособными со зрелыми фреймворками? Я не знаю.

Ответ 3

Что касается возможности трудоустройства, я бы сказал, что вы хорошо поработаете, если поедете с Rails или Django. Только немногие компании действительно платят за разработчиков Node.js, потому что пока еще недостаточно.

С точки зрения возможности запуска, Rails полностью. Ruby on Rails поддерживает большинство интересных и интересных возможностей запуска. Я наткнулся на пару, используя Django. Но такие компании, как Groupon и Living Social, пишутся в основном на Rails. Ruby почти в два раза популярнее Python на Github. И вот этот вопрос Quora:

С точки зрения будущего, Node.js - путь. Шаблоны HTML начинают практически полностью записываться на JavaScript (jQuery.tmpl), поэтому для этого вам нужно всего лишь освоить 1 язык, JavaScript, сделать свой набор навыков что гораздо более мощным. И Node.js действительно поддается веб-приложениям реального времени. Кроме того, платформы поддержки облаков, такие как Heroku, которые первоначально были 100% рубинами, также начали поддерживать Node.js. Там другие делают это для всех языков, например dotcloud.

По-прежнему нужно выполнить большую работу, чтобы сделать Node.js полностью включенным как Ruby on Rails (так что Rails по-прежнему остается стандартом, но все же там все:

  • express.js: веб-фреймворк
  • jade.js: html templating framework
  • socket.io: веб-приложения в режиме реального времени

Если вам нужен передний край, определенно Node.js. Если вы хотите

Ruby on Rails.

Ответ 4

Популярность (пункт 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 (нет необходимости в конфигурациях, так что решает точку c)).

Существуют различные обучающие программы для JSF, например. в CoreServlets. BalusC написал простой и отличный учебник по настройке и написанию простого веб-приложения JSF с нуля.

Ответ 5

Как насчет googles GWT? Или groovy grails?

Ответ 6

Теперь JSF 2.x становится настолько популярным, и больше ориентируется на UI в сочетании с primefaces, если вам нужна быстрая разработка приложений в экосистеме JSF, таких как рельсы, вы должны рассмотреть

http://www.springfuse.com/

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

Spring Roo с JSF Addon 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)