Pregunta

Sé que obtendré mil '' Depende de lo que intentes hacer '' respuestas, pero en serio, todavía no hay información sólida sobre esto en línea. Aquí están mis suposiciones: creo que son similares para muchas personas en este momento:

  1. Ahora es octubre de 2008. Quiero comenzar a escribir una solicitud para enero de 2009. Estoy dispuesto a usar código beta y tal, pero para enero me gustaría un sitio que no tenga problemas "extraños". Dicho esto, si un idioma es simplemente un 10% más lento que otro, no me importan esas cosas siempre que el problema sea lineal. Mi principal preocupación es la productividad del desarrollador.
  2. Usaré Linux, Apache, MySQL para la aplicación.
  3. Quiero poder para hacer cosas como ejecutar funciones de cliente scp y ftp con bibliotecas estables (solo elegí esas dos porque no están relacionadas con la web pero al mismo tiempo representan protocolos de red bastante comunes que cualquier aplicación más grande podría usar) ) También se utilizarán tecnologías como OpenID y Oauth.
  4. Los desarrolladores web con experiencia están fácilmente disponibles (es decir, no tengo que encontrar personas de compañías financieras y demás).
  5. Cualquiera que sea la opción es común y estará disponible por un tiempo.
  6. Aquí hay una patada. Me gustaría poder usar herramientas / lenguajes de capa de presentación avanzados similares a HAML, SASS. Definitivamente quiero usar JQuery.
  7. Crearé una aplicación de Facebook y en algún momento haré cosas como tratar con mensajes SMS, aplicaciones de iPhone, etc.

En este punto, las opciones de lenguaje son PHP (Cake, Symfony, Zend), Python (Django), Ruby (Merb). Estoy realmente entre Django y Merb en este punto, principalmente porque todos los demás parecen ir por ese camino.

Por favor, no ponga aquí ninguna tecnología que no esté hecha para la corriente principal. Sé que Merb no ha sido probado en su mayoría, pero su objetivo declarado es una plataforma sólida y tiene mucho impulso detrás, así que estoy seguro de que es viable. Por favor, no responda con lo genial que es Perl o .Net.

Para referencias futuras: estas elecciones ya se hicieron:

  • Debian (Lenny): para convertir los ciclos de CPU en algo útil. Trac
  • 0.11 - Para Project Management Gliffy - Para wireframes y demás
  • Google Docs / Apps: para documentación, correo electrónico alojado, etc. ...
  • Amazon ec2 / S3: para alojamiento, almacenamiento.

Saludos, Adam

¿Fue útil?

Solución

depende.

php - Symfony es un gran marco. desventajas: php, wordy y directorio pesado. Propel se vuelve molesto de usar. Ventajas: PHP está en todas partes y la mano de obra es barata. marco bien hecho y buen soporte. muchos complementos para hacerte la vida más fácil

python - django también es un gran marco. Desventajas: los programadores de Python pueden ser más difíciles de encontrar, django aún más difícil. cambiar su esquema de db puede ser algo difícil ya que no hay migraciones oficiales. no hace mvc como esperarías. ventajas: hace todo lo que necesita y tiene la gran biblioteca y comunidad python std detrás de ella.

ruby: nunca he usado merb, así que abordaré los rieles. aspectos positivos: hay un complemento, una gema o una receta para casi cualquier cosa que quieras hacer. fácil de usar. desventajas: esos complementos, gemas y recetas a veces no funcionan de manera misteriosa. Los parches de mono son a menudo malvados. La comunidad es ... vocal. software obstinado, y a veces esas opiniones son incorrectas ( falta de claves foráneas ). los rieles en sí mismos parecen una torre de cartas esperando explotar y quitarle horas de su vida.

con todo eso dicho, soy un desarrollador independiente de php / symfony y ruby ??/ rails. He trabajado en varios proyectos en idiomas y marcos. Mi último proyecto está en Rails únicamente por ActiveMerchant. He estado buscando una razón para desarrollar una aplicación django por un tiempo. Si hubiera una biblioteca como ActiveMerchant para django, probablemente la habría usado.

Otros consejos

Django!

Busque las conversaciones de DjangoCon en Google / Youtube - Especialmente "Aplicaciones reutilizables" (www.youtube.com/watch?v=A-S0tqpPga4)

He estado usando Django durante algún tiempo, después de comenzar con Ruby / Rails. Encontré que la comunidad de Django es más fácil de acceder (mejor), el lenguaje documentado con ejemplos excelentes , y su modularidad es increíble, especialmente si desea agregar componentes personalizados a la mezcla, y no ser obligado a usar ciertas cosas aquí y allá.

Estoy seguro de que probablemente haya formas de ser igual de flexible con Rails o algo así, pero le recomiendo que eche un vistazo a las presentaciones de Django, etc., en http://www.djangoproject.com/

Eugene mencionó que ahora está en 1.0 y, por lo tanto, seguirá siendo una base de código estable y compatible con versiones anteriores hasta enero de 2009.

Además, las interfaces de administración automáticas que crea son listas para producción y extremadamente flexibles.

Lo siento, pero tu pregunta es incorrecta. La gente probablemente me va a votar por este, pero quiero decirlo de todos modos:

¡No esperaría obtener una respuesta objetiva! ¿Por qué? Eso es simple:

  • Todos los defensores de Ruby le dirán que use Ruby.
  • Todos los defensores de Python le dirán que use Python.
  • Todos los defensores de PHP le dirán que use PHP.
  • Inserte idiomas adicionales aquí.

¿Tienes la idea?

Te recomiendo que pruebes cada uno de los idiomas que mencionaste por ti mismo. Al menos unos días cada uno. Luego, debe tener una base mucho mejor para tomar su decisión final.

Dicho esto, elegiría Ruby (porque soy un defensor de Ruby).

Todos ellos harán el trabajo.

Use el que usted y su equipo están más familiarizados

Esto tendrá un impacto mucho mayor en los tiempos de entrega y la estabilidad de su aplicación que cualquiera de las otras variables.

Me gustaría ir con Django, si te sientes cómodo con una solución de Python. Está en la versión 1.0 ahora, y está madurando muy bien, con una gran base de usuarios y muchos contribuyentes. Integrar jQuery no es un problema, y ??lo he hecho sin ningún problema.

Lo único es que, por lo que puedo decir, Ruby es mucho más popular para el desarrollo web hoy en día, por lo que es más fácil encontrar desarrolladores de Ruby. Tengo esta impresión al buscar anuncios de trabajo recientes: no hay tantos para Python o Django. No sé mucho sobre Merb, así que no puedo hacer una comparación justa.

He hecho suficiente PHP para no recomendar comenzar un nuevo proyecto con él.

Basado en tus razones, iría con Ruby. Veo que desea algunas herramientas de administración (scp, cliente ftp) y Ruby lo tiene (bibliotecas net / sftp y net / ftp).

Además, hay grandes gemas como Dios para monitorear su sistema, Vlad the Deployer para desplegar, etc. Y muchas alternativas en el campo de Merb, simplemente use lo que encuentre que sea mejor para sus necesidades (Thin, Mongrel, ebb, etc).

Para tener una idea de dónde se encuentra actualmente el ecosistema de Django, es posible que desee consultar

Tengo que prefacio esto con mi acuerdo con Orion Edwards, elija el que su equipo está más familiarizado.

Sin embargo, también tengo que notar la curiosa falta de lenguajes ASP.NET en su lista. No para provocar al gran ejército fanático, pero ¿dónde está la carne? .NET es una plataforma de desarrollo estable y rápida y el grupo de trabajo crece a diario. VB.NET y C # son conjuntos de habilidades transportables, y eso puede significar mucho cuando estás creando un equipo de desarrolladores para trabajar en un conjunto diverso de tareas. .NET también le permite separar su capa de presentación de su código de back-end, como otros idiomas, pero también le permite exponer ese código de back-end como servicio web para cosas como sus aplicaciones de iPhone y Facebook.

Tome todas las sugerencias con un grano de sal y elija la que mejor se adapte a la aplicación. Investigue y diseñe para la función y no para los fanáticos.

Descargo de responsabilidad: una vez que un desarrollador de PHP, ColdFusion y Perl. Fanático de Flex, y amante de Adobe. Ahora escribiendo aplicaciones empresariales .NET. ;)

No olvides Mono, que te permitirá ejecutar .NET con * nix. No es que esté diciendo que será perfecto, solo jugando al abogado del diablo.

No se quede atascado en la mentalidad del diseño de página del lado del servidor. Considere tecnologías como SproutCore, GWT o ExtJS que ponen el código de diseño completamente en el cliente, haciendo que el servidor sea responsable solo del cálculo y procesamiento de datos (y se reemplaza fácilmente).

Y realmente necesitas saber qué plataforma de servidor quieres. No elijas uno porque es el sabor del mes, elige uno porque te sientas cómodo con él. Los sabores no duran, una base de código sólidamente construida lo hará.

Habiendo construido aplicaciones en Django, puedo dar fe de su utilidad. Si solo todos los marcos fueran tan elegantes (sí Spring, te estoy mirando).

Sin embargo, en términos de apostar la granja en Django, una cosa que debes tener en cuenta es que Python 3 se lanzará en breve. Python 3 no es compatible con versiones anteriores y existe el riesgo de que bifurque el lenguaje y termine desacelerando el impulso para todos los proyectos de Python mientras se ocupan de las consecuencias. Para ser justos, Ruby 2.0 también llegará pronto, pero no creo que sea tan perjudicial.

Mi experiencia con varias tecnologías nuevas en los últimos diez años me lleva a recomendar que haga de la estabilidad de la plataforma un criterio serio. Todo está muy bien en desarrollo con el último y mejor marco, pero cuando lo encuentras avanza una versión puntual y de repente la forma en que has hecho todo está en desuso, eso puede resultar en un trabajo innecesario adicional. Esta fue particularmente mi experiencia trabajando con rieles un poco por delante de la versión 1. Solo por esa razón evitaría cualquier plataforma que no estuviera al menos en 1.0 cuando comience a trabajar en ella.

Es genial trabajar con Ruby y mantendrá alta la productividad de su desarrollador, pero si Django es la plataforma más estable, lo favorecería con seguridad.

Vale la pena no estar sesgado sobre la configuración de su servidor. Cualquier marco web moderno que valga su peso en el código fuente tiene una capa de abstracción SQL de algún tipo. PostgreSQL obtiene un rendimiento mucho mejor, y esto proviene de un antiguo partidario de MySQL.

Apache es una bestia, tanto para configurar como para los recursos de su servidor. ¿Por qué no elegir algo liviano, como nginx o lighttpd ?

(Para el registro, soy un gran usuario de Django, pero como decía la respuesta aceptada, vaya con lo que su equipo sepa. Los cambios rápidos no son el momento de aprender nuevos marcos. Si está contratando un equipo desde cero, ve con Django.)

Actualización: Terminé usando y amando Django. Ya he terminado con PHP, perdón por eso. Los futuros lectores que intenten crear un nuevo sitio web 2.0 (suponiendo que tengan experiencia en programación), deberían considerar esta configuración:

Amazon ec2 para hosting ($ 80 / mes - no es barato pero vale la pena si puede pagarlo) Django / Python (Python es el lenguaje de scripting más poderoso del planeta, y Django simplemente lo hace funcionar en la web)

El desarrollo debe hacerse con SQLlite y el servidor de desarrollo que viene con Django. No pierda el tiempo con Nginx, Apache, MySQL hasta que tenga algunas semanas de una versión beta.

Ah, y ahora desarrollo en una Mac, que funciona muy bien para el desarrollo local de Django.

Finalmente, Pinax es un gran comienzo para desarrollo Django .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top