java ruby-on-rails django node.js

java - Desarrollo web de aprendizaje: Django vs Node vs Rails vs Others



ruby-on-rails node.js (5)

Conozco Java y Python (con algunos Django) y un poco de Ruby (sin Rails) y no Node.js, y probablemente haya más de los que no tengo conocimiento.

Estoy planeando comenzar a aprender desarrollo web y su stack completo, pero cuando lo veo veo un montón de opciones y esto me confunde. Necesito sugerencias basadas en los siguientes parámetros

  1. facilidad para aprender
  2. facilidad para construir e iterar
  3. facilidad de implementación (como soluciones de hosting gratuitas y baratas)
  4. popular

Por favor, lanza un consejo

Gracias


Ruby on Rails:

¿Fácil de aprender? - Sí - documentación excelente en guides.rubyonrails.org y un gran tutorial en railstutorial.org .

Fácil de construir e iterar? - con seguridad - los rieles se prestan muy bien al desarrollo ágil e iterativo.

Fácil de implementar? - Para implementar (al menos para aplicaciones pequeñas y mientras aprendes ), no puedes ser más fácil que usar heroku.com - push basado en git y es gratis.

Popularidad - ¡Muy popular!

Django

¿Fácil de aprender? Al igual que Rails, Django tiene una documentación excelente en docs.djangoproject.com/en/1.3/ . Tal vez una curva de aprendizaje un poco más empinada (pura opinión aquí, pero creo que los rieles tienden a estar "listos para funcionar", mientras que django necesita un poco de configuración antes de entrar en el desarrollo).

Fácil de construir e iterar? - De nuevo, al igual que Rails, una vez que está listo y corriendo con él, es bastante fácil de iterar.

Fácil de implementar? - No tan fácil como Rails. Hay heroku equivalentes gondor.io , djangozoom.com , stable.io pero tienden a estar en versión beta privada. Dicho esto, no tuve problemas para obtener una invitación a gondor.io .

Popularidad : es popular, pero la comunidad de usuarios es un poco menos ... animada que la multitud de Rails.

Nodo

¿Fácil de aprender? - um sí y no, es fácil juntar un servidor de hello world, pero es más complicado si quieres una aplicación a gran escala. Me mantendría alejado de esto en primera instancia, es nuevo y evoluciona rápidamente. Además, el Nodo en sí mismo no es comparable con Rails o Django porque los dos últimos son marcos, mientras que el Nodo es más un conjunto de apis barebones que podrías usar para desarrollar algo. Podrías optar por un framework como expressjs.com que esté más en línea con Rails y Django. No lo he usado, así que realmente no puedo darte una opinión.

Fácil de construir e iterar? - fácil de construir - sí, fácil de iterar - sí.

Fácil de implementar? - puede dirigirse a no.de y solicitar una máquina inteligente - es gratis en este momento y fácil de implementar - basado en git.

Popularidad - está ganando


Algunas notas de un desarrollador de Django que ha dedicado un tiempo a explorar Node.js:

  • El enfoque de programación asincrónica en Node.js es conceptualmente más difícil. Si bien puede adoptar un enfoque similar en Django o Rails, no es común hacerlo.

  • Node.js es realmente rápido de la caja. Pero parte de la razón para eso es que no incluye mucho OOB.

  • El mundo de Nodo está muy fragmentado en este momento, con docenas de bibliotecas, soluciones y marcos de Node todos compitiendo por la atención. Express parece ser el marco más popular para Node en este momento, pero estamos en una especie de juego de espera para ver qué se agita. Django y Rails ya tienen todos los bits que necesita para crear aplicaciones avanzadas sin tener que pegar todo por su cuenta.

  • El marco más popular para Node.js en este momento es Express, pero Express ni siquiera incluye una forma de conectarse a una base de datos. Tienes que agregar eso. Tampoco incluye un ORM: debe agregarlo. Busqué en algunos ORM de Nodo, pero no parecían tan completos o sofisticados como los de Django.

  • Django es una solución completa, cohesiva, de extremo a extremo, donde todas las piezas encajan perfectamente ("el modo Mac"). Node.js es una línea de base sobre la que puede elegir su propio marco, su propio ORM, su propio controlador de base de datos, su propio sistema de enrutamiento de URL, etc., etc. ("el modo Unix").

  • Existen ventajas en el modo Unix, pero los sistemas IMO como este son más difíciles de despegar y más difíciles de mantener. Las partes no necesariamente se hablan entre sí como es de esperar, y todo el proyecto no se actualiza de inmediato. Los sistemas de extremo a extremo, como el continuo software / hardware de Mac y Django / Rails, son grandes logros para la productividad. A modo de comparación, tenga en cuenta la relativa oscuridad de los TurboGears de Python (un grupo de partes desconectadas) en comparación con Django. Django comió el almuerzo de TurboGears porque es coherente y consistente. Si la productividad es importante para usted, va a ser más productivo trabajando en un marco más maduro. Un framework de Node.js que cumpla con esta visión llegará algún día, pero todavía no está allí.

  • Express no proporciona la gama de útiles herramientas de línea de comandos, API de datos, etc. que proporciona Django o Rails.

  • Los frameworks de Node.js ciertamente no incluyen nada como el administrador de Django, que es una victoria de productividad masiva para los desarrolladores de Django.

  • Puramente mi opinión, pero Python simplemente se siente más elegante que Javascript. El código es más compacto y más legible. No es un gran obstáculo, solo una preferencia.

En general, Django se siente como una plataforma de "baterías incluidas", mientras que Node se siente más como una venta de artículos usados.

Node / Express son realmente jóvenes. Emocionante de muchas maneras, y que muestra grandes promesas, pero ¿cuánto tiempo tomará para que los frameworks de Node.js se sientan competitivos con frameworks maduros? No lo sé.


En términos de oportunidad de trabajo, diría que obtendrás un buen trabajo si vas con Rails o Django. Solo unas pocas compañías realmente están pagando por los desarrolladores de Node.js ahora, porque aún no es lo suficientemente grande.

En términos de oportunidad de inicio, Rails todo el camino. La mayoría de las oportunidades de inicio divertidas y emocionantes están respaldadas por Ruby on Rails. Me he encontrado con un par usando Django. Pero las compañías como Groupon y Living Social están escritas principalmente en Rails. Ruby es casi dos veces más popular que Python en Github también. Y está esta pregunta de Quora:

En términos del futuro, Node.js es el camino. Las plantillas HTML están empezando a escribirse casi en su totalidad en JavaScript de todos modos ( jQuery.tmpl ), por lo que para que solo tenga que dominar 1 idioma, JavaScript, hace que sus habilidades sean mucho más poderosas. Y node.js realmente se presta a aplicaciones web en tiempo real . Además, las plataformas de implementación en la nube como Heroku, que originalmente eran 100% ruby, también están comenzando a admitir Node.js. Hay otros que lo hacen para todos los idiomas, como dotcloud .

Todavía queda mucho trabajo por hacer para que Node.js sea tan completo como Ruby on Rails (por lo que Rails sigue siendo el estándar, por ahora), pero los conceptos básicos están todos allí:

Si quieres vanguardia, definitivamente Node.js. Si tu quieres

  1. ease para learn
  2. facilidad para construir e iterar
  3. facilidad de implementación (como soluciones de hosting gratuitas y baratas)
  4. popular

Ruby on Rails.


JSF 2.x se ha vuelto tan popular hoy en día, y más framework centrado en UI en combinación con primefaces , si necesita un rápido desarrollo de aplicaciones en el ecosistema JSF como rieles, debería considerar

http://www.springfuse.com/

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

Spring Roo con el complemento 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)


Popularidad (punto 4)): Tecnología Java Server Faces (JSF) . Desde JSF 1.2 hasta el JSF 2.1 actual, ahora coincide con Java EE 5 y Java EE 6, respectivamente. Eso significa que ahora es un estándar Java EE. Además, una ventaja significará que los Servidores de aplicaciones web (como JBoss AS 5 y superior, GlassFish, WebSphere AS, Oracle AS, etc.) que sean totalmente compatibles con Java EE (5 y superior) pueden ejecutar JSF (sin necesidad de configuraciones, entonces eso resuelve el punto c)).

Hay varios tutoriales para JSF, por ejemplo, en CoreServlets . BalusC escribió un tutorial simple y excelente sobre cómo configurar y escribir una aplicación web JSF simple desde cero.