Webentwicklung lernen: Django vs Node vs Rails vs Andere [geschlossen]

80

Ich kenne Java und Python (mit etwas Django) und ein bisschen Ruby (keine Rails) und keine Node.js und wahrscheinlich gibt es noch mehr, die mir nicht bekannt sind.

Ich habe vor, mit dem Erlernen der Webentwicklung und ihres gesamten Stacks zu beginnen, aber wenn ich mich umschaue, sehe ich viele Optionen, was mich verwirrt. Ich benötige Vorschläge basierend auf den folgenden Parametern

  1. leicht zu lernen
  2. einfach zu erstellen und zu iterieren
  3. Einfache Bereitstellung (wie kostenlose und kostengünstige Hosting-Lösungen)
  4. Beliebt

Bitte werfen Sie einen Rat

Vielen Dank

Tagträumer
quelle
Was ist mit Googles GWT? Oder groovige Grale?
Angel O'Sphere

Antworten:

82

Ruby on Rails:

Leicht zu lernen? - Ja - ausgezeichnete Dokumentation unterguides.rubyonrails.org und ein großartiges Tutorial unter railstutorial.org .

Einfach zu erstellen und zu iterieren? - sicher - Schienen eignen sich sehr gut für eine agile und iterative Entwicklung.

Einfach zu implementieren? - Für die Bereitstellung (zumindest für kleine Apps und während des Lernens) können Sie nicht einfacher sein als mit heroku.com - git-basiertem Push und es ist kostenlos.

Popularität - sehr beliebt!

Django

Leicht zu lernen? - Wie Rails verfügt auch Django über eine hervorragende Dokumentation unter docs.djangoproject.com/de/1.3/ . Vielleicht eine etwas steilere Lernkurve (reine Meinung hier, aber ich finde, dass Rails eher "bereit" sind, während Django ein wenig Konfiguration benötigt, bevor Sie mit der Entwicklung beginnen).

Einfach zu erstellen und zu iterieren? - Wie bei Rails ist es auch hier ziemlich einfach zu iterieren, wenn Sie erst einmal damit fertig sind.

Einfach zu implementieren? - nicht so einfach wie Rails. Es gibt Heroku-Äquivalente gondor.io , djangozoom.com , stabile.io, aber sie befinden sich in der Regel in der privaten Beta. Trotzdem hatte ich keine Probleme, eine Einladung zu gondor.io zu bekommen .

Popularität - es ist beliebt, aber die Benutzergemeinschaft ist etwas weniger ... lebhaft als die Rails-Menge.

Knoten

Leicht zu lernen? - ähm ja und nein, einfach einen schnellen Hallo-Welt-Server zusammenzustellen, aber schwieriger, wenn Sie eine App in vollem Umfang wollen. Ich würde mich in erster Linie davon fernhalten - es ist neu und entwickelt sich schnell. Außerdem ist Node selbst nicht mit Rails oder Django vergleichbar, da es sich bei den beiden letzteren um Frameworks handelt, während Node eher ein Barebone-Satz von Apis ist, mit denen Sie etwas entwickeln können. Sie könnten sich für ein Framework wie expressjs.com entscheiden, das eher Rails und Django entspricht. Ich habe es nicht benutzt, daher kann ich dir keine Meinung geben.

Einfach zu erstellen und zu iterieren? - einfach zu bauen - ja, leicht zu iterieren - ja.

Einfach zu implementieren? - Sie können zu no.de gehen und sich für eine Smartmachine bewerben - sie ist derzeit kostenlos und einfach bereitzustellen - git-basiert.

Popularität - es gewinnt.

slapthelownote
quelle
13
Ich stimme Ihren ersten 3 Punkten zu RoR zu. Leider ist Ihr letzter Punkt nicht wahr. Es ist vielleicht eine Schande, aber RoR ist in der Praxis einfach nicht beliebt. Schauen Sie sich Tiobe an, Ruby hat nur 1,3% Marktanteil, was bedeutet, dass RoR noch weniger hat. Schauen Sie sich die angebotenen Stellen für Schienen an. Es ist sehr schwer, einen zu finden.
Mike Braun
4
fair genug Mike - vielleicht macht die Online-Community gerade genug Lärm, dass ich der Meinung bin, dass es beliebt ist. :)
Slapthelownote
2
Ich würde es nicht wirklich wissen, aber wenn Sie alle mit Java Web Frameworks gekennzeichneten Fragen kombinieren, werden Sie nicht annähernd die Anzahl der Rails-Fragen zu SO erreichen. Das sind 1,3% Marktanteil für Sie.
Filip Dupanović
19
Heroku unterstützt jetzt Django.
Ben Racine
5
Die Tatsache, dass es viel mehr SO-Fragen für Rails gibt, könnte ein Indikator für die Art von Programmierern sein, die versuchen, es mehr zu lernen als die Popularität des Frameworks in tatsächlich bereitgestellten Anwendungen. Ein paar Neulinge werden ein paar Fragen haben
A_funs
44

Ein paar Notizen von einem Django-Entwickler, der ein bisschen Zeit damit verbracht hat, Node.js zu erkunden:

  • Der asynchrone Programmieransatz in Node.js ist konzeptionell schwieriger. Während Sie in Django oder Rails einen ähnlichen Ansatz verfolgen können, ist dies nicht üblich.

  • Node.js ist wirklich sehr, sehr schnell. Ein Grund dafür ist jedoch, dass es nicht sehr viel OOB enthält.

  • Die Knotenwelt ist derzeit sehr fragmentiert, und Dutzende von Knotenbibliotheken, Lösungen und Frameworks konkurrieren um Aufmerksamkeit. Express scheint derzeit das beliebteste Framework für Node zu sein, aber wir warten auf ein Spiel, um zu sehen, was herauskommt. Django und Rails verfügen bereits über alle Komponenten, die Sie zum Erstellen erweiterter Anwendungen benötigen, ohne alles selbst zusammenkleben zu müssen.

  • Das derzeit beliebteste Framework für Node.js ist Express, aber Express bietet nicht einmal eine Möglichkeit, eine Verbindung zu einer Datenbank herzustellen. Sie müssen das hinzufügen. Es enthält auch kein ORM - das müssen Sie hinzufügen. Ich habe mir einige Node-ORMs angesehen, aber sie schienen nicht annähernd so vollständig oder raffiniert zu sein wie die von Django.

  • Django ist eine vollständige, zusammenhängende End-to-End-Lösung, bei der alle Teile nahtlos zusammenpassen ("Mac-Methode"). Node.js ist eine Basislinie, auf der Sie Ihr eigenes Framework, Ihren eigenen ORM, Ihren eigenen DB-Treiber, Ihr eigenes URL-Routing-System usw. usw. auswählen ("der Unix-Weg").

  • Der Unix-Weg bietet Vorteile, aber solche IMO-Systeme sind schwieriger in Betrieb zu nehmen und schwieriger zu warten. Die Teile sprechen nicht unbedingt wie erwartet miteinander und das gesamte Projekt wird nicht sofort aktualisiert. End-to-End-Systeme wie das Mac-Software- / Hardware-Kontinuum und Django / Rails sind enorme Produktivitätsgewinne. Beachten Sie zum Vergleich die relative Dunkelheit von Pythons TurboGears (eine Reihe nicht verbundener Teile) im Vergleich zu Django. Django aß das Mittagessen von TurboGears, weil es zusammenhängend und konsistent ist. Wenn Produktivität für Sie wichtig ist, werden Sie produktiver arbeiten, wenn Sie in einem ausgereifteren Rahmen arbeiten. Ein Node.js-Framework, das diese Vision erfüllt, wird eines Tages eintreffen, aber es ist noch nicht da.

  • Express bietet nicht die hilfreichen Befehlszeilentools, Daten-APIs usw., die Django oder Rails bereitstellen.

  • Node.js Frameworks enthalten sicherlich nichts wie den Django-Administrator, was für Django-Entwickler einen massiven Produktivitätsgewinn darstellt.

  • Rein meine Meinung, aber Python fühlt sich einfach eleganter an als Javascript. Code ist kompakter und lesbarer. Keine große Hürde, nur eine Präferenz.

Insgesamt fühlt sich Django wie eine Plattform mit "Batterien inklusive" an, während Node sich eher wie ein Kramverkauf anfühlt.

Node / Express sind sehr jung. In gewisser Weise aufregend und vielversprechend, aber wie lange wird es dauern, bis sich Node.js Frameworks mit ausgereiften Frameworks konkurrenzfähig fühlen? Ich weiß es nicht.

Shacker
quelle
3
mit CoffeeScript. Code ist kompakter und lesbarer als Python
jwchang
"Express ist ein schnelles, unbefangenes, minimalistisches Webframework für Node.js" auf der Express-Hauptseite.
27

In Bezug auf die Arbeitsmöglichkeiten würde ich sagen, dass Sie einen guten Job bekommen, wenn Sie sich für Rails oder Django entscheiden. Nur wenige Unternehmen zahlen jetzt wirklich für die Entwickler von Node.j, weil es noch nicht groß genug ist.

In Bezug auf die Startmöglichkeit, Rails den ganzen Weg. Die meisten unterhaltsamen und aufregenden Startmöglichkeiten werden von Ruby on Rails unterstützt. Ich bin auf ein Paar gestoßen, das Django benutzt. Unternehmen wie Groupon und Living Social sind jedoch hauptsächlich auf Rails geschrieben. Ruby ist auch auf Github fast doppelt so beliebt wie Python . Und da ist diese Quora-Frage:

In Bezug auf die Zukunft ist Node.js der Weg. HTML-Vorlagen werden sowieso fast ausschließlich in JavaScript ( jQuery.tmpl ) geschrieben. Wenn Sie also nur eine Sprache, JavaScript, beherrschen, werden Ihre Fähigkeiten umso leistungsfähiger. Und node.js eignet sich wirklich für Echtzeit-Web-Apps . Plus Cloud Deployment - Plattformen wie Heroku, die ursprünglich 100% Rubin waren, sind auch Node.js zu unterstützen beginnen . Es gibt andere, die das auch für alle Sprachen tun, wie Dotcloud .

Es muss noch viel Arbeit geleistet werden, um Node.js so voll funktionsfähig wie Ruby on Rails zu machen (daher ist Rails vorerst immer noch der Standard), aber die Grundlagen sind alle vorhanden:

Wenn Sie auf dem neuesten Stand sein wollen, auf jeden Fall Node.js. Falls Sie es wollen

  1. leicht zu lernen
  2. einfach zu erstellen und zu iterieren
  3. Einfache Bereitstellung (wie kostenlose und kostengünstige Hosting-Lösungen)
  4. Beliebt

Ruby on Rails.

Lance Pollard
quelle
5

Popularität (Punkt 4)): Java Server Faces (JSF) -Technologie . Ab JSF 1.2 bis zum aktuellen JSF 2.1 stimmt es jetzt mit Java EE 5 bzw. Java EE 6 überein. Das bedeutet, dass es jetzt ein Java EE Standard ist. Ein Vorteil bedeutet auch, dass Webanwendungsserver (wie JBoss AS 5 und höher, GlassFish, WebSphere AS, Oracle AS usw.), die vollständig Java EE-kompatibel (5 und höher) sind, JSF ausführen können (keine Konfiguration erforderlich). so dass Punkt c)) löst.

Es gibt verschiedene Tutorials für JSF, z . B. in CoreServlets . BalusC hat ein einfaches und hervorragendes Tutorial zum Einrichten und Schreiben einer einfachen JSF-Webanwendung von Grund auf neu geschrieben.

Buhake Sindi
quelle
3
Ich stimme vollkommen zu! JSF ist heutzutage sehr gut (alte Versionen waren nicht so toll). Hinzufügen zu Ihren Beispielen; JSF ist auch Teil des Java EE-Webprofils, sodass ultraleichte Server wie Resin auch JSF sofort unterstützen.
Mike Braun
1
Die Blogs und Artikel von Ps BalusC sind absolut großartig! :)
Mike Braun
1

JSF 2.x wird heutzutage so populär und ein UI-zentrierteres Framework in Kombination mit Primefaces , wenn Sie eine schnelle Anwendungsentwicklung im JSF-Ökosystem wie Rails benötigen, die Sie in Betracht ziehen sollten

http://www.springfuse.com/

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

Spring Roo mit 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)
Sam
quelle