¿Cómo se decide qué lenguaje de programación usar para un proyecto?

Dado que la pregunta está etiquetada en Desarrollo web, consideraré que el proyecto es una aplicación web, no un proyecto móvil.

Al crear una aplicación web, siempre usará javascript como lenguaje del lado del cliente .

Con respecto al lado del servidor , la elección es entre lenguajes de tipo dinámico (Python, Ruby) y estáticos (C #, Java), y la batalla se gana fácilmente por cuál de estos conoce mejor, ya que eso es lo que traerá resultados más rápidos (que en última instancia, es lo que importa: resultados rápidos).

Por lo tanto, la elección de qué lenguaje del lado del servidor es en la mayoría de los casos una cuestión de preferencia personal, estilo de programación preferido (por ejemplo, algunos prefieren la seguridad de tipo de C #, mientras que otros prefieren la verbosidad y la facilidad de uso de Python).


La decisión también puede verse influenciada por los costos de infraestructura que traerá la pila de desarrollo, pero esto es algo a considerar solo después de que el proyecto gane fuerza, realmente.

No diría que soy un experto en esto, pero espero que este intento tenga sentido.

Depende de los requisitos del proyecto. Volviendo a un discurso de gerente de proyecto, en cada proyecto enfrentará 3 limitaciones: tiempo, alcance y costo, según los requisitos.


Este es el clásico triángulo de gestión de proyectos.

Aquí hay algunos ejemplos fuera de mi cabeza donde estas restricciones entran en juego.

1. Hackatones con poco tiempo

2. Proyecto de ingeniería de software empresarial completo, con el apoyo de un proveedor como Microsoft (mucho presupuesto)

3. Proyecto de investigación con recolección de datos y gran número de cálculos; visualización de resultados preferidos

Un hackathon con su marco de tiempo corto (restricción de programación) requiere familiaridad con el lenguaje.

Los clientes que requieren proyectos empresariales completos pueden preferir una pila provista por un proveedor que brinda garantías de soporte, por la cual están dispuestos a pagar (costo; presupuesto considerable). Como tal, puede elegir C #, ya sea porque se recomienda o porque simplemente tienen tanta documentación y adaptadores de aplicaciones proporcionados para ese idioma, usar otro requeriría demasiado tiempo (programación).

Un proyecto de investigación donde los datos necesitan ser analizados y los resultados visualizados rápidamente no requiere muchas de las bibliotecas de redes, etc., que vienen incorporadas en varios idiomas (alcance). Los lenguajes como R (tal vez incluso Matlab, pero no estoy familiarizado) fueron diseñados para hacer esto con menos esfuerzo (horario). (nota: creo que Python también lo está haciendo bien en este frente).

Otro tipo de alcance como restricción es la funcionalidad del software previsto. Whatsapp requirió una alta concurrencia, por lo que eligieron Erlang (¿Cuál es la pila de tecnología detrás de WhatsApp? ¿Es XMPP?), Un lenguaje que fue diseñado teniendo en cuenta la concurrencia.

Podría estar ampliando un poco los ejemplos, pero el triángulo de gestión del proyecto y sus limitaciones podrían ayudarlo a decidir.

(nota: el alcance normalmente se refiere a la amplitud y profundidad del conjunto de características para el proyecto, pero aquí lo uso generosamente para referirme también a la funcionalidad. Es bueno que lo sepas)

Depende del proyecto, por ejemplo, si su proyecto está relacionado con la programación del sistema, entonces el lenguaje C será el mejor y si su proyecto está relacionado con la web, entonces Java o .net serán los mejores.

More Interesting

¿Cuál es la línea de código más larga que puede escribir / escribir / encontrar?

¿Cuál es la mejor manera de construir una API?

¿Qué habilidades debo aprender para convertirme en un desarrollador full-stack?

¿Qué herramienta de prueba de software está en tendencia o mejor? ¿Por qué? ¿Los ingenieros de software pueden explicarlo?

¿El desarrollo de software ágil favorece un lenguaje de programación o arquitectura de software en particular?

¿Tenían los años 80 mejores computadoras ya que resultaron en una innovación de software más radical?

Cómo convencerme de tolerar un código imperfecto que creé para poder dedicar tiempo a cosas más importantes

¿Qué tipo de empresas utilizan Java como su idioma principal en el desarrollo de software? Compañías como Dropbox y Quora trabajan con Python, mientras que otras como Facebook, usan C ++ y PHP.

¿Cómo debo comenzar a aprender lenguajes de programación, ingeniería de software, codificación, etc.?

¿Es el desarrollo de software de estilo estrella de rock sostenible o incluso saludable para la empresa y la industria?

¿Cuántos años transcurren hasta que la IA y el aprendizaje automático comienzan a reducir los trabajos de desarrollo de software?

¿Qué es una validación en ingeniería de software?

¿Cuáles son los inconvenientes de la abstracción?

¿Por qué las estimaciones de tareas de desarrollo de software se desactivan regularmente en un factor de 2-3?

¿Puedes decir qué tan bueno es un programador dependiendo de su habilidad para hablar?