Una de las mejores cosas de una “aplicación web en la nube” es que se ejecuta en el entorno que establezca y sea accesible para el mundo (o sus usuarios) a través de protocolos estándar como HTTP, HTTPS, JSON, SOAP (* shudder *), etc. Por lo general, publica una API para la interacción programática y este se convierte en el punto de interacción con el mundo exterior. Por ejemplo, Twitter tiene una API que permite a los usuarios usar su idioma de elección para interactuar con el servicio e incluso ha comenzado a usar esta API para Twtter.com en lugar de tener una capa de aplicación nativa fuera de su API (esto se llama Nuevo Twitter interfaz).
Por lo tanto, puede usar cualquier idioma que se ajuste a sus necesidades. En realidad, esto no es nuevo para “Cloud Web Apps”, pero ha sido un hecho desde que la WWW comenzó a popularizarse. De hecho, uno de los primeros éxitos en el desarrollo de aplicaciones web fue iniciado por Paul Graham y vendido a Yahoo! para convertirse en Yahoo! Almacenar. Fue escrito en LISP. Como Paul y su equipo estaban familiarizados con LISP, pudieron ser extremadamente eficientes al agregar funciones y eliminar errores. Lea más sobre esta “arma secreta” aquí: http://www.paulgraham.com/avg.html. Ahora, si usara LISP, todavía estaría trabajando en una aplicación web “Hello World” :).
Al elegir una plataforma de desarrollo web, tenga en cuenta lo siguiente:
- ¿Cómo crearía un sitio de comercio electrónico interactivo?
- ¿Cuál es mejor para el futuro, PHP o AngularJS?
- ¿Qué papel juegan los frameworks en el desarrollo web?
- ¿Cuál es la mejor manera de escalar una aplicación Rails?
- ¿Cuáles son las formas de proporcionar un diseño receptivo utilizando HTML y CSS?
- Las fortalezas de su equipo actual: ¿qué idiomas conoce bien?
- La comunidad en torno al idioma: ¿están sus participantes activos haciendo cosas similares a usted? ¿La comunidad está dispuesta a ayudarse mutuamente?
- Bibliotecas para realizar tareas comunes de aplicaciones web: Perl con CPAN fue una bendición para el desarrollo web temprano. Hoy las gemas de Ruby están preparadas para superar en número a la amplitud de módulos disponibles en CPAN (leí esto en Slashdot recientemente; suena bastante cierto *)
- La prevalencia de la experiencia con el idioma en la fuerza laboral que lo rodea: cuando su equipo crezca, ¿puede encontrar empleados calificados de manera rápida y razonable? Esto fue citado como la razón principal por la que varias grandes compañías web cambiaron de C o Perl a PHP a principios de la década de 2000.
- Comercialización: lamentablemente, la elección del idioma es importante para algunos tomadores de decisiones, como grandes clientes o inversores. Digo “tristemente” porque siempre que los 4 elementos anteriores se gestionen correctamente, la elección del idioma y la plataforma es irrelevante.
Oh, lo olvidé. También debe considerar el costo del conjunto de herramientas de la plataforma de idiomas. Lo creas o no, hay algunos conjuntos de herramientas que cuestan dinero. Es sospechoso que ofrezcan ventajas reales sobre las alternativas de código abierto en 2011, pero estos retrasos en el desarrollo de código cerrado pueden satisfacer mejor sus necesidades, por lo que debe considerar este costo.
Nota: algunos discutirán sobre los beneficios de velocidad de varios idiomas / plataformas que promueven. Acelere uno o más de ejecución, desarrollo, implementación o escalabilidad (por ejemplo, se dice que Haskell es una maravilla para el escalado). La verdad es que si cuida los 4 elementos anteriores, su plataforma puede optimizarse para funcionar bien. También es cierto que asumir una plataforma de desarrollo desconocida para obtener un beneficio percibido probablemente resulte contraproducente en una de estas áreas de “velocidad”.
* El conteo del módulo Ruby Gems pronto para superar las CPAN: http://developers.slashdot.org/s…