web-dev-qa-db-fra.com

Apprentissage du développement Web: Django vs Node vs Rails vs Others)

Je sais Java et Python (avec certains Django) et un peu de Ruby (pas de Rails) et pas de Node.js et probablement il y en a plus que je ne connais pas.

Je prévois de commencer à apprendre le développement Web et sa pile complète, mais quand je vois autour de moi, je vois beaucoup d'options et cela me confond. J'ai besoin de suggestions basées sur les paramètres suivants

  1. facilité d'apprentissage
  2. facilité de construction et d'itération
  3. facilité de déploiement (comme les solutions d'hébergement gratuites et bon marché)
  4. populaire

Veuillez jeter quelques conseils

Merci

80
daydreamer

Ruby on Rails:

Facile à apprendre? - Oui - excellente documentation sur guides.rubyonrails.org et un excellent tutoriel sur railstutorial .org .

Facile à construire et à itérer? - à coup sûr - Rails se prête très bien au développement agile et itératif).

Facile à déployer? - Pour déployer (au moins pour les petites applications et pendant l'apprentissage), vous ne pouvez pas vraiment être plus facile que d'utiliser heroku .com - Push basé sur git et c'est gratuit.

Popularité - très populaire!

Django

Facile à apprendre? - comme Rails, Django a une excellente documentation sur docs.djangoproject.com/ fr/1.3 / . Peut-être une courbe d'apprentissage légèrement plus raide (purement opinion ici, mais je trouve Rails a tendance à être "prêt à partir" alors que Django = nécessite un peu de configuration avant de se lancer dans le développement).

Facile à construire et à itérer? - encore une fois, comme Rails, une fois que vous êtes opérationnel, il est assez facile à itérer.

Facile à déployer? - pas aussi facile que Rails. Il existe des équivalents Heroku gondor.io , djangozoom.com , stable.io mais ils ont tendance à être en version bêta privée. Cela dit, je n'ai eu aucun mal à obtenir une invitation à gondor.io .

Popularité - c'est populaire, mais la communauté des utilisateurs est un peu moins .... animée que la foule Rails.

Node

Facile à apprendre? - euh oui et non, facile de mettre en place un serveur rapide bonjour, mais plus compliqué si vous voulez une application à grande échelle. Je resterais loin de cela dans un premier temps - c'est nouveau et évolue rapidement. De plus, Node lui-même n'est pas comparable à Rails ou Django parce que les deux derniers sont des frameworks alors que Node est plus un ensemble d'api barebones que vous pouvez utiliser pour développer quelque chose. Vous pouvez opter pour un cadre comme expressjs.com qui est plus conforme à Rails et Django. Je ne l'ai pas utilisé donc je ne peux pas vraiment vous donner d'avis.

Facile à construire et à itérer? - facile à construire - oui, facile à itérer - oui.

Facile à déployer? - vous pouvez vous diriger vers no.de et postuler pour obtenir une machine intelligente - elle est gratuite pour le moment et facile à déployer - git basé.

Popularité - ça gagne.

81
slapthelownote

Quelques notes d'un développeur Django qui a passé un peu de temps à explorer Node.js:

  • L'approche de programmation asynchrone dans Node.js est conceptuellement plus difficile. Bien que vous puissiez adopter une approche similaire dans Django ou Rails, ce n'est pas courant de le faire.

  • Node.js est vraiment, vraiment rapide hors de la boîte. Mais cela s'explique en partie par le fait qu'il n'inclut pas beaucoup d'OOB.

  • Le monde Node est très fragmenté en ce moment, avec des dizaines de Node bibliothèques, solutions et frameworks tous en compétition pour attirer l'attention. Express semble être le framework le plus populaire) pour Node en ce moment, mais nous sommes en quelque sorte dans un jeu en attente pour voir ce qui secoue. Django et Rails = avez déjà tous les bits dont vous avez besoin pour créer des applications avancées sans avoir à tout coller vous-même.

  • Le framework le plus populaire pour Node.js en ce moment est Express, mais Express n'inclut même pas un moyen de se connecter à une base de données. Vous devez ajouter cela. Il n'inclut pas non plus un ORM - vous devez l'ajouter. J'ai examiné certains ORM Node, mais ils ne semblaient pas aussi complets ou sophistiqués que ceux de Django.

  • Django est une solution complète, cohérente et de bout en bout, où toutes les pièces s'emboîtent de manière transparente ("à la manière Mac"). Node.js est une ligne de base sur laquelle vous choisissez votre propre framework, votre propre ORM, votre propre pilote de base de données, votre propre système de routage d'URL, etc. etc. ("la manière Unix").

  • Il y a des avantages à la méthode Unix, mais les systèmes IMO comme celui-ci sont plus difficiles à décoller et plus difficiles à entretenir. Les parties ne se parlent pas nécessairement comme vous vous en doutez, et l'ensemble du projet n'est pas mis à niveau en même temps. Les systèmes de bout en bout comme le continuum logiciel/matériel Mac et Django/Rails sont d'énormes gains de productivité. À titre de comparaison, notez l'obscurité relative des TurboGears de Python (un tas de parties déconnectées) par rapport à Django. Django a mangé le déjeuner de TurboGears parce qu'il est cohérent et cohérent. Si la productivité est importante pour vous, vous allez être plus productif en travaillant dans un cadre plus mature. Un cadre Node.js qui remplit cette la vision arrivera un jour, mais elle n'est pas encore là.

  • Express ne fournit pas la gamme d'outils de ligne de commande, d'API de données, etc. utiles fournis par Django ou Rails.

  • Les frameworks Node.js n'incluent certainement pas quelque chose comme l'administration Django, qui est un gain de productivité massif pour Django devs.

  • Purement mon avis, mais Python juste sent plus élégant que Javascript. Le code est plus compact et plus lisible. Pas un gros obstacle cependant, juste une préférence.

Dans l'ensemble, Django ressemble à une plate-forme "batteries incluses" tandis que Node ressemble plus à une vente de fouille).

Node/Express sont vraiment jeunes. Excitant à certains égards et très prometteur, mais combien de temps faudra-t-il pour que les frameworks Node.js se sentent compétitifs par rapport aux frameworks matures? Je ne sais pas.

42
shacker

En termes d'opportunités d'emploi, je dirais que vous obtiendrez un bon emploi si vous optez pour Rails ou Django. Seules quelques entreprises paient vraiment pour les développeurs de Node.js maintenant, car ce n'est pas encore assez gros.

En termes d'opportunité de démarrage, Rails jusqu'au bout. La plupart des opportunités de démarrage amusantes et passionnantes sont soutenues par Ruby on Rails. J'ai rencontré un couple utilisant Django. Mais des entreprises comme Groupon et Living Social sont toutes écrites principalement sur Rails. Ruby est presque deux fois plus populaire que Python sur Github également. Et il y a cette question Quora:

En termes d'avenir, Node.js est le chemin. Les modèles HTML commencent à être écrits presque entièrement en JavaScript de toute façon ( jQuery.tmpl ), ce qui fait que vous n'avez à maîtriser qu'un seul langage, JavaScript, rend vos compétences beaucoup plus puissantes. Et node.js se prête vraiment à applications Web en temps réel . De plus, les plates-formes de déploiement cloud comme Heroku, qui étaient à l'origine 100% Ruby, sont également commençant à prendre en charge Node.js . Il y en a d'autres qui le font pour toutes les langues aussi, comme dotcloud .

Il reste encore beaucoup de travail à faire pour que Node.js soit aussi complet que Ruby sur Rails (donc Rails est toujours la norme, pour maintenant), mais les bases sont là:

Si vous voulez couper Edge, certainement Node.js. Si tu veux

  1. facilité à apprendre
  2. facilité de construction et d'itération
  3. facilité de déploiement (comme les solutions d'hébergement gratuites et bon marché)
  4. populaire

Ruby on Rails.

27
Lance Pollard

Popularité (point 4)): technologie Java Server Faces (JSF) . De JSF 1.2 à JSF 2.1 actuel, il coïncide désormais avec Java EE 5 et Java EE 6 respectivement. Cela signifie qu'il s'agit désormais d'un Java EE Standard. De plus, un avantage signifie que les serveurs d'applications Web (tels que JBoss AS 5 et versions ultérieures, GlassFish, WebSphere AS, Oracle AS, etc.)) sont entièrement Java EE conforme (5 et plus) peut exécuter JSF (pas besoin de configurations, donc cela résout le point c)).

Il existe différents didacticiels pour JSF, par exemple dans CoreServlets . BalusC a écrit un tutoriel simple et excellent sur configuration et écriture d'une application Web JSF simple à partir de zéro.

5
Buhake Sindi

JSF 2.x devient de nos jours si populaire, et un cadre plus centré sur l'interface utilisateur en combinaison avec primefaces , si vous avez besoin d'un développement rapide d'applications dans l'écosystème JSF comme Rails vous devriez considérer

http://www.springfuse.com/

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

Spring Roo avec 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)
1
Sam