2010-01-16 17 views
7

Tengo una pregunta para principiantes sobre el desarrollo de sitios web interactivos y dinámicos. ¿Puede alguien explicar de forma concisa las diferencias entre:¿Cuál es la diferencia entre Django, Ruby on Rails, Google App Engine, etc.?

  • Django
  • Ruby on Rails
  • Google App Engine guiones
  • CGI/apps
  • cualquier otra cosa que es o parece ser similares (PHP ?, Servlets Java? , TurboGears ?, etc.)

¿Cuándo preferiría, por ejemplo, Google App Engine sobre Django, etc.? Si quisiera abrir una tienda de libros como Amazon, ¿qué elegiría para hacer el sitio web? Si quisiera reimplementar SO? ¿Qué tal un sitio de noticias como nytimes?

En este momento estoy tirando todos estos diferentes tecnologías y marcos juntos, pero para mí los no iniciados que todos más o menos parecen estar haciendo lo mismo ...

Respuesta

17

Aquí está mi intento de su pregunta (muy amplio):

  1. Django: un marco de Python para facilitar el desarrollo de aplicaciones CRUD multicliente basadas en web.
  2. Ruby on Rails: un marco Ruby para facilitar el desarrollo de aplicaciones CRUD basadas en web multicliente.
  3. Google App Engine - Alojamiento de Google de aplicaciones Python o Java que usa BigTable como su mecanismo de almacenamiento.
  4. Scripts/aplicaciones CGI: aplicaciones web de la vieja escuela donde se inició un script CGI para cada solicitud a un servidor web.

Grails es un marco similar a Ruby para facilitar el desarrollo de aplicaciones CRUD basadas en web multicliente. Está basado en Java, Groovy, Spring e Hibernate.

Los servlets de Java son clases de escucha HTTP que se implementan utilizando motores Java servlet/JSP. Esos motores casi invariablemente tienen servidores HTTP integrados, por lo que puede elegir si implementarlos o no en la parte superior de un servidor web como Apache o IIS. Serían parte de un framework como Grails, pero necesitas agregar muchas otras cosas además de servlets para crear una aplicación web dinámica basada en datos. Es por eso que no puedes balancear un gato sin golpear otro marco web Java (por ejemplo, Struts, Spring, Wicket, JSF, etc.). Hay mucho más que solo servlets.

Todos estos son similares en que son diferentes intentos de resolver ese mismo problema fundamental. Usted elegiría uno basado en su familiaridad con el idioma subyacente.

No pondría Google App Engine en la misma categoría. Se siente más como la opción de "host en la nube" de Google que una alternativa a Rails o Django. Puede implementar aplicaciones de Python que usan Django en Google App Engine, por lo que no es una alternativa en ese sentido.

+2

+1. Solo agregaría que si no está familiarizado con ninguno de los idiomas, Python o Ruby (me gusta Python) son más expresivos y menos detallados que java. Django (con Python) y Ruby (con Rails) también son frameworks menos complejos que algunos equivalentes en Java. – cethegeek

+0

Excelente adición; gracias, celopes. – duffymo

+0

+1 para 'aplicaciones CRUD basadas en web multicliente' –

3

Es una cuestión de gusto lo que decide si bien se comparan manzanas con naranjas:

  • Django y TurboGears son marcos para el uso de pitón más fácilmente en la web
  • Ruby on Rails es también un marco, pero utilizando un idioma diferente: Rubí
  • PHP es un lenguaje de programación desarrollado primaria para la web servlets Java
  • se utilizan para la creación de sitios web con Java
  • CGI es sólo un metho d para un servidor web para llamar a un script en esa plataforma
  • Google App Enginge es diferente: es un proveedor de servicios en el que puede alojar su aplicación web. Actualmente es compatible con Python (incluso con Django o TurboGears) y Java

Técnicamente puedes crear cualquier aplicación web con una de las tecnologías anteriores, usaría una que yo conozca. Si no conoce ninguno, intente leer algunos tutoriales y artículos de Wikipedia sobre los de arriba para elegir su preferido y comenzar a usarlo; se familiarizará con él muy pronto. Una vez que aprendiste (y usaste) uno de ellos completamente, no será difícil usar los otros.

0

Amazon, SO y Nytimes son todas más o menos aplicaciones CRUD. Entonces puede implementarlo con cualquier marco web actualizado.

Me llenar considero, sin ningún orden:

  • rubí: Carriles de rubí
  • pitón: Django
  • C#: asp.net MVC
  • php: Symfony2

Si desea una curva de aprendizaje más rápida (si necesita iniciar rápidamente, puede echar un vistazo a los marcos más pequeños):

Un factor clave es el lenguaje que ya conoce. Intente elegir un marco en el que esté familiarizado con su lenguaje.

Otro factor clave (que pensamos menos) es el idioma que conocen sus pares. Si su proyecto involucra a un equipo, o se lo entregará a otra persona en el futuro, elija algo con lo que sus compañeros se sientan cómodos.

Cuestiones relacionadas