Was ist der Unterschied zwischen Django, Ruby on Rails, Google App Engine usw.?

7

Ich habe eine neue Frage über die Entwicklung von interaktiven, dynamischen Websites. Kann jemand kurz die Unterschiede erklären zwischen:

  • Django
  • Ruby on Rails
  • Google App Engine
  • CGI-Skripte / -Apps
  • Was ist sonst noch ähnlich (PHP ?, Java Servlets ?, TurboGears? usw.)

Wann würde ich beispielsweise die Google App Engine über Django usw. bevorzugen? Wenn ich einen Buchladen wie Amazon eröffnen möchte, wie würde ich die Website gestalten? Wollte ich SO neu implementieren? Was ist mit einer Nachrichtenseite wie nytimes?

Entschuldigung, ich werfe all diese verschiedenen Technologien und Frameworks zusammen, aber für mich, die Uneingeweihten scheinen alle ziemlich genau das gleiche zu tun ...

    
Frank 16.01.2010, 17:24
quelle

3 Antworten

17

Hier ist mein Versuch auf Ihre (sehr breite) Frage:

  1. Django - ein Python-Framework, um die Entwicklung von webbasierten CRUD-Apps für mehrere Clients zu vereinfachen.
  2. Ruby on Rails - ein Ruby-Framework, um die Entwicklung von webbasierten CRUD-Apps für mehrere Clients zu vereinfachen.
  3. Google App Engine - Google-Hosting von Python- oder Java-Anwendungen, die BigTable als Speichermechanismus verwenden.
  4. CGI-Skripte / Apps - alte Schul-Web-Apps, bei denen ein CGI-Skript für jede Anfrage an einen Webserver gestartet wurde.

Grails ist ein Ruby-ähnliches Framework, um die Entwicklung von webbasierten CRUD-Apps für mehrere Clients zu vereinfachen. Es basiert auf Java, Groovy, Spring und Hibernate.

Java-Servlets sind HTTP-Listenerklassen, die Sie mithilfe von Java EE-Servlet / JSP-Engines bereitstellen. Bei diesen Engines sind fast immer HTTP-Server integriert, so dass Sie entscheiden können, ob Sie sie auf einem Webserver wie Apache oder IIS bereitstellen möchten. Sie wären Teil eines Frameworks wie Grails, aber Sie müssen neben Servlets noch eine Menge anderer Dinge hinzufügen, um eine dynamische, datengesteuerte Web-App zu erstellen. Aus diesem Grund können Sie keine Katze schwingen, ohne ein anderes Java-Web-Framework (z. B. Struts, Spring, Wicket, JSF usw.) zu verwenden - es gibt viel mehr als nur Servlets.

Dies ist alles insofern ähnlich, als es verschiedene Versuche sind, das gleiche grundlegende Problem zu lösen. Sie wählen eine basierend auf Ihrer Vertrautheit mit der zugrunde liegenden Sprache.

Ich würde Google App Engine nicht in dieselbe Kategorie einordnen. Es fühlt sich eher wie die "Host in the Cloud" -Option von Google an als eine Alternative zu Rails oder Django. Sie können Python-Apps, die Django verwenden, auf der Google App Engine bereitstellen. In diesem Sinne ist das keine Alternative.

    
duffymo 16.01.2010 17:30
quelle
3

Es ist eine Frage des Geschmacks, was Sie wählen, obwohl Sie Apfel mit Orangen vergleichen:

  • Django und TurboGears sind Frameworks für die einfache Verwendung von Python im Web
  • Ruby on Rails ist auch ein Framework, verwendet aber eine andere Sprache: Ruby
  • PHP ist eine Skriptsprache, die primär für das Web entwickelt wurde
  • Java Servlets werden zum Erstellen von Websites mit Java
  • verwendet
  • CGI ist nur eine Methode für einen Webserver zum Aufruf eines Skripts auf dieser Plattform
  • Google App Enginge ist anders: Es ist ein Dienstanbieter, bei dem Sie Ihre Webanwendung hosten können. Derzeit unterstützt es Python (sogar mit Django oder TurboGears) und Java

Technisch können Sie jede Webapp mit einer der oben genannten Technologien erstellen, ich würde eine verwenden, die mir vertraut ist. Wenn Sie keine wissen, versuchen Sie einfach, einige Tutorials und Wikipedia-Artikel zu den oben genannten zu lesen, um Ihre bevorzugten auszuwählen und zu beginnen - Sie werden sich sehr bald damit vertraut machen. Sobald Sie eines von ihnen gründlich gelernt (und benutzt) haben, wird es nicht schwer sein, die anderen zu benutzen.

    
neo 16.01.2010 17:36
quelle
0

Amazon, SO und Nytimes sind allesamt mehr oder weniger CRUD-Apps. So können Sie es mit jedem aktuellen Web-Framework implementieren.

Ich würde in keiner Reihenfolge überlegen:

  • ruby: Rails für Ruby
  • python: Django
  • C #: asp.net MVC
  • php: symfony2

Wenn Sie eine schnellere Lernkurve wünschen (wenn Sie schnell starten möchten, können Sie sich kleinere Frameworks ansehen):

Ein Schlüsselfaktor ist die Sprache, die Sie bereits kennen. Versuchen Sie also, ein Framework auszuwählen, in dem Sie mit der Sprache vertraut sind.

Ein weiterer Schlüsselfaktor (an den wir weniger denken) ist, welche Sprache Ihre Kollegen kennen. Wenn Ihr Projekt ein Team umfasst oder Sie es in Zukunft jemand anderem übergeben, wählen Sie etwas aus, mit dem sich Ihre Kollegen wohlfühlen.

    
Benjamin Crouzier 06.05.2013 13:50
quelle