Nauka tworzenia stron internetowych: Django vs Node vs Rails vs Others [zamknięte]


80

Znam Javę i Pythona (z jakimś Django) i trochę Ruby (bez Railsów) i nie znam Node.js i prawdopodobnie jest więcej rzeczy, których nie jestem świadomy.

Planuję rozpocząć naukę tworzenia stron internetowych i jego całego zestawu, ale kiedy się rozejrzę, widzę mnóstwo opcji i to mnie dezorientuje. Potrzebuję sugestii opartych na następujących parametrach

  1. łatwość uczenia się
  2. łatwość tworzenia i iteracji
  3. łatwość wdrożenia (jak darmowe i tanie rozwiązania hostingowe)
  4. popularny

Proszę o radę

Dziękuję Ci


A co z Google GWT? Albo groovy Grails?
Angel O'Sphere

Odpowiedzi:


82

Ruby on Rails:

Łatwe do nauki? - Tak - doskonała dokumentacja na guide.rubyonrails.org i świetny tutorial na railstutorial.org .

Łatwe do zbudowania i iteracji? - na pewno - railsy bardzo dobrze nadają się do zwinnego i iteracyjnego rozwoju.

Łatwy do wdrożenia? - Wdrażanie (przynajmniej w przypadku małych aplikacji i podczas nauki) nie może być prostsze niż korzystanie z heroku.com - push oparty na git i jest bezpłatne.

Popularność - bardzo popularna!

Django

Łatwe do nauki? - podobnie jak Railsy, ​​Django ma doskonałą dokumentację pod adresem docs.djangoproject.com/en/1.3/ . Może trochę bardziej stroma krzywa uczenia się (tutaj czysta opinia, ale uważam, że railsy są zwykle "gotowe do pracy", podczas gdy django wymaga trochę konfiguracji, zanim zaczniesz programować).

Łatwe do zbudowania i iteracji? - znowu, podobnie jak w Railsach, kiedy już go uruchomisz, iteracja jest dość łatwa.

Łatwy do wdrożenia? - nie tak proste jak Rails. Istnieją odpowiedniki heroku gondor.io , djangozoom.com , stabilne.io, ale zwykle znajdują się one w prywatnej wersji beta. To powiedziawszy, nie miałem problemu z otrzymaniem zaproszenia do gondor.io .

Popularność - jest popularna, ale społeczność użytkowników jest trochę mniej ... żywa niż tłum Railsów.

Węzeł

Łatwe do nauki? - hm tak i nie, łatwo połączyć szybki serwer hello world, ale trudniej, jeśli chcesz mieć aplikację na pełną skalę. W pierwszej kolejności trzymałbym się z daleka od tego - jest to nowe i szybko ewoluujące. Ponadto sam Node nie jest porównywalny z Railsami czy Django, ponieważ te dwa ostatnie to frameworki, podczas gdy Node jest raczej podstawowym zestawem interfejsów API, którego można użyć do stworzenia czegoś. Możesz wybrać framework, taki jak expressjs.com, który jest bardziej zgodny z Railsami i Django. Nie korzystałem z niego, więc nie mogę dać Ci opinii.

Łatwe do zbudowania i iteracji? - łatwe do zbudowania - tak, łatwe do iteracji - tak.

Łatwy do wdrożenia? - możesz udać się na no.de i złożyć wniosek o zakup smartmachine - w tej chwili jest darmowy i łatwy do wdrożenia - oparty na git.

Popularność - rośnie.


13
Zgadzam się z Twoimi pierwszymi 3 punktami dotyczącymi RoR. Niestety twoja ostatnia uwaga nie jest prawdziwa. Może szkoda, ale RoR po prostu nie jest popularny w praktyce. Spójrz na Tiobe, Ruby ma tylko 1,3% udziału w rynku, co oznacza, że ​​RoR ma jeszcze mniej. Spójrz na oferty pracy dla szyn. Bardzo trudno go znaleźć.
Mike Braun

4
w porządku Mike - może społeczność internetowa robi tyle hałasu, że wydaje mi się, że jest popularna. :)
slapthelownote

2
Naprawdę nie wiedziałbym, ale jeśli połączysz wszystkie pytania otagowane za pomocą frameworków internetowych Java, nie zbliżysz się do liczby pytań Rails na SO. To dla Ciebie 1,3% udziału w rynku.
Filip Dupanović

19
Heroku obsługuje teraz Django.
Ben Racine

5
Fakt, że jest znacznie więcej pytań SO dotyczących Railsów, może świadczyć o typie programistów próbujących się go nauczyć niż o popularności frameworka w aktualnie wdrażanych aplikacjach. Grupa nowicjuszy będzie miała mnóstwo pytań
A_funs

44

Kilka uwag od programisty Django, który spędził trochę czasu na eksplorowaniu Node.js:

  • Asynchroniczne podejście do programowania w Node.js jest koncepcyjnie trudniejsze. Chociaż możesz zastosować podobne podejście w Django lub Railsach, nie jest to powszechne.

  • Node.js jest naprawdę, bardzo szybki po wyjęciu z pudełka. Ale po części jest to spowodowane tym, że nie zawiera zbyt wielu OOB.

  • Świat Node jest obecnie bardzo podzielony, a dziesiątki bibliotek, rozwiązań i frameworków Node konkurują o uwagę. Express wydaje się być obecnie najpopularniejszym frameworkiem dla Node, ale jesteśmy w pewnym sensie w grze czekającej, aby zobaczyć, co się stanie. Django i Railsy mają już wszystko, czego potrzebujesz do tworzenia zaawansowanych aplikacji bez konieczności samodzielnego sklejania wszystkiego razem.

  • Najpopularniejszym frameworkiem dla Node.js jest obecnie Express, ale Express nie zawiera nawet sposobu na połączenie się z bazą danych. Musisz to dodać. Nie zawiera też ORM - musisz to dodać. Przyjrzałem się niektórym ORMom węzłów, ale nie wydawały się one tak kompletne ani wyrafinowane jak Django.

  • Django to kompletne, spójne rozwiązanie typu end-to-end, w którym wszystkie części pasują do siebie bezproblemowo („sposób Mac”). Node.js to linia bazowa, na której możesz wybrać swój własny framework, własny ORM, własny sterownik db, własny system routingu adresów URL itp. („Sposób uniksowy”).

  • Uniks ma swoje zalety, ale takie systemy IMO są trudniejsze do uruchomienia i trudniejsze w utrzymaniu. Części niekoniecznie rozmawiają ze sobą, jak można by się spodziewać, a cały projekt nie jest aktualizowany od razu. Systemy end-to-end, takie jak kontinuum oprogramowania / sprzętu Mac i Django / Rails, to ogromne korzyści w zakresie produktywności. Dla porównania zwróć uwagę na względną niejasność TurboGears Pythona (kilka odłączonych części) w porównaniu z Django. Django zjadł lunch TurboGears, ponieważ jest spójny i konsekwentny. Jeśli produktywność jest dla Ciebie ważna, będziesz bardziej produktywny, pracując w bardziej dojrzałych ramach. Framework Node.js, który spełnia tę wizję, pewnego dnia pojawi się, ale jeszcze go nie ma.

  • Express nie zapewnia szeregu pomocnych narzędzi wiersza poleceń, API danych itp., Które zapewniają Django lub Railsy.

  • Frameworki Node.js z pewnością nie zawierają niczego takiego jak administrator Django, co jest ogromną korzyścią dla programistów Django.

  • Czysto moja opinia, ale Python po prostu wydaje się bardziej elegancki niż JavaScript. Kod jest bardziej zwarty i bardziej czytelny. Nie jest to jednak duża przeszkoda, tylko preferencja.

Ogólnie rzecz biorąc, Django wydaje się być platformą „w zestawie z bateriami”, podczas gdy Node bardziej przypomina szperanie.

Node / Express są naprawdę młode. Ekscytujące pod wieloma względami i obiecujące, ale jak długo potrwa, zanim frameworki Node.js poczują się konkurencyjne w stosunku do dojrzałych platform? Nie wiem


3
z CoffeeScriptem. Kod jest bardziej zwarty i bardziej czytelny niż Python
jwchang

„Express to szybki, nieoceniony, minimalistyczny framework sieciowy dla Node.js” ze strony głównej Express.

27

Jeśli chodzi o możliwości zatrudnienia, powiedziałbym, że dostaniesz dobrą pracę, jeśli wybierzesz Rails lub Django. Tylko kilka firm naprawdę płaci teraz programistom Node.js, ponieważ nie jest on jeszcze wystarczająco duży.

Jeśli chodzi o możliwości startowe, Railsy na całej drodze. Większość zabawnych i ekscytujących możliwości startowych jest wspieranych przez Ruby on Rails. Natknąłem się na parę używającą Django. Ale firmy takie jak Groupon i Living Social są napisane głównie na Railsach. Ruby jest również prawie dwa razy bardziej popularny niż Python na Githubie . I jest to pytanie Quora:

Jeśli chodzi o przyszłość, Node.js jest drogą. Szablony HTML i tak zaczynają być pisane prawie w całości w JavaScript ( jQuery.tmpl ), więc uczynienie go tak, abyś musiał opanować tylko jeden język, JavaScript, sprawia, że ​​twój zestaw umiejętności jest znacznie potężniejszy. A node.js naprawdę nadaje się do aplikacji internetowych czasu rzeczywistego . Plus, Chmura wdrażania platform jak Heroku, które były pierwotnie 100% rubin, są również zaczynają wspierać node.js . Inni robią to również dla wszystkich języków, na przykład dotcloud .

Wciąż jest wiele do zrobienia, aby Node.js był w pełni funkcjonalny jak Ruby on Rails (więc Railsy są nadal standardem, na razie), ale podstawy są tam wszystkie:

  • express.js : framework sieciowy
  • jade.js : framework do tworzenia szablonów html
  • socket.io : aplikacje internetowe czasu rzeczywistego

Jeśli szukasz nowatorskich rozwiązań, zdecydowanie Node.js. Jeśli chcesz

  1. łatwość aby nauczyć
  2. łatwość tworzenia i iteracji
  3. łatwość wdrożenia (jak darmowe i tanie rozwiązania hostingowe)
  4. popularny

Ruby on Rails.


5

Popularność (punkt 4)): Technologia Java Server Faces (JSF) . Począwszy od JSF 1.2 do obecnego JSF 2.1, pokrywa się on teraz z odpowiednio Java EE 5 i Java EE 6. Oznacza to, że jest to teraz standard Java EE. Zaletą będzie również to, że serwery aplikacji internetowych (takie jak JBoss AS 5 i nowsze wersje, GlassFish, WebSphere AS, Oracle AS itp.), Które są w pełni zgodne z Java EE (5 i nowsze), mogą uruchamiać JSF (bez konieczności konfiguracji, aby rozwiązać punkt c)).

Istnieją różne samouczki dotyczące JSF, np. W CoreServlets . BalusC napisał prosty i doskonały samouczek dotyczący konfigurowania i pisania prostej aplikacji internetowej JSF od podstaw.


3
W pełni się zgadzam! JSF jest obecnie bardzo dobry (stare wersje nie były takie świetne). Dodawanie do przykładów; JSF jest również częścią Java EE Web Profile, więc ultra lekkie serwery, takie jak Resin, również obsługują JSF po wyjęciu z pudełka.
Mike Braun

1
Blogi i artykuły Ps BalusC są absolutnie świetne! :)
Mike Braun

1

JSF 2.x staje się obecnie tak popularny i bardziej oparty na UI framework w połączeniu z primefaces , jeśli potrzebujesz szybkiego rozwoju aplikacji w ekosystemie JSF, takim jak rails, powinieneś rozważyć

http://www.springfuse.com/

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

Spring Roo z dodatkiem 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)
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.