What is the difference between Django, Ruby on Rails, Google App Engine, etc.?

I have a newbie question about developing interactive dynamic websites. Can someone explain briefly the differences between:

  • Django
  • Ruby on Rails
  • Google app engine
  • CGI scripts / applications
  • anything or anything (PHP ?, Java Servlets ?, TurboGears ?, etc.).

When do I prefer, say, the Google App Engine over Django, etc.? If I wanted to open a bookstore such as Amazon, what would I decide to do on the site? If I wanted to override SO? How about a news site like nytimes?

Sorry, I am putting all these different technologies and frameworks together, but for me the uninitiated they all seem to be doing the same ...

+7
google-app-engine django ruby-on-rails web-applications
source share
3 answers

Here is my attempt at your (very broad) question:

  • Django is a Python framework that makes it easy to develop CRUD-based applications for multiple clients.
  • Ruby on Rails is a Ruby framework that simplifies application development with multiple clients based on multiple clients.
  • Google App Engine - Google hosting of Python or Java applications that uses BigTable as a storage engine.
  • CGI scripts / applications are old school web applications where a CGI script was run for every request to a web server.

Grails is a Ruby-like framework that simplifies CRUD-based application development for multiple clients. It is based on Java, Groovy, Spring, and Hibernate.

Java servlets are HTTP listener classes that you deploy using Java EE servlets / JSP engines. These engines almost always have HTTP servers built into them, so you can choose whether to deploy them over a web server such as Apache or IIS. They will be part of a framework such as Grails, but you need to add many other materials besides servlets to create a dynamic, data-driven web application. That's why you cannot rock a cat without going to another Java web environment (e.g. Struts, Spring, Wicket, JSF, etc.) - there is much more to it than just servlets.

All this seems to be different attempts to solve the same underlying problem. You would choose one of them based on your acquaintance with the main language.

I would not add Google App Engine in the same category. It looks more like a host in the cloud option than an alternative to Rails or Django. You can deploy Python applications that use Django in the Google App Engine, so this is not an alternative in this sense.

+17
source share

This is a matter of taste that you choose, although you are comparing an apple with oranges:

  • Django and TurboGears are the framework for easier use of python on the Internet.
  • Ruby on Rails is also the foundation, but uses a different language: Ruby
  • PHP is the primary scripting language developed for the web.
  • Java Servlets are used to create sites with Java
  • CGI is just a method for a web server to invoke a script on this platform
  • The Google App Enginge is different: it’s a service provider where you can host your webapp. It currently supports Python (even with Django or TurboGears) and Java

Technically, you can create any webapp with one of the technologies above, it will use the one I am familiar with. If you don’t know this, just try to read some of the lessons and Wikipedia articles above to select your preferred option and start using it - you will find out soon. Once you have learned (and used) one of them, it will be difficult to use the others.

+3
source share

Amazon, SO, and Nytimes are all more or less CRUD applications. Thus, you can implement it using any modern web infrastructure.

I review in no order:

  • ruby: Rails for ruby
  • python: django
  • C #: asp.net MVC
  • php: symfony2

If you need a faster learning curve (if you need to run fast, you can take a look at the smaller framework):

One of the key factors is the language you already know. Therefore, try to choose a structure in which you are familiar with this language.

Another key factor (which we think less about) is what your peers know. If your project includes a team, or you pass it on to someone else in the future, choose what your colleagues will like.

0
source share

All Articles