Depende de para qué planeas usarlo.
A menudo, el contexto o la historia o el conjunto de habilidades existentes de los primeros miembros del equipo predeterminarán esto por usted. En ausencia de eso, aquí hay algunas reglas generales:
Java: si será un proyecto a gran escala, y no se ocupa de problemas del sistema de bajo nivel (es decir, está en gran medida en middleware / aplicaciones), y la escalabilidad / rendimiento es una preocupación importante. (Sugerencia: en la mayoría de los casos, las personas sobrestiman la importancia de la escalabilidad / rendimiento. La mayoría de los proyectos probablemente mueren sin alcanzar un nivel de uso que requiera tanta escalabilidad / rendimiento. Además, la mayoría del software está vinculado a IO, no a CPU, así que de nuevo, la elección del idioma no ayudará con la velocidad / escalabilidad). O si estás haciendo una aplicación de Android.
- Tengo una idea de aplicación para teléfonos inteligentes que creo que podría salvar vidas. No puedo encontrar una manera simple de enviar mi idea a Google. ¿Cómo debo hacer esto?
- ¿Cuál es la mejor aplicación para rastrear y compartir eventos de cualquier tipo?
- ¿Qué es la "gestión de incidentes" en las pruebas de software?
- ¿Alguien ha usado la aplicación Wish en India?
- Motion Graphics y Motion Design: ¿Qué software se usa para hacer animaciones y videos como este?
Scala / Clojure: si desea interoperar con Java, viva en la JVM, es probable que tenga implementaciones empresariales, pero quiere un lenguaje que ofrezca abstracciones de mayor nivel (léase: más productividad) de lo que proporciona Java, y está dispuesto a ser un poco a la vanguardia, y estás dispuesto a comprometerte a trabajar siempre con solo un buen programador, sin importar lo difícil que sea contratarlos.
C ++: si será un proyecto a gran escala, con muchos contribuyentes, y la compatibilidad con C es importante
C: Si vas a lidiar con núcleos, controladores de dispositivos, almacenamiento o cualquier cosa baja en el sistema
Ruby: si desea crear un sitio web con requisitos mal especificados, de modo que necesita ser ágil y lidiar con los requisitos cambiantes, la experimentación rápida y furiosa con nuevas características, y no espera necesitar una gran cantidad de aplicaciones no web cosas (como análisis de datos, o computación científica, o piratería de sistemas)
Python: si no tiene idea de los requisitos, o es probable que los requisitos cambien drásticamente en el futuro, o si los requisitos abarcan varios de los campos anteriores. Es un lenguaje que es bastante bueno en todo lo anterior. Es el mejor lenguaje de propósito general en este momento.
Erlang: si el tiempo de actividad, la resistencia, la tolerancia a fallas, la capacidad de actualizar el código de producción sin ningún tiempo de inactividad, etc. son muy importantes.
JavaScript + HTML + CSS: para cualquier front-end moderno basado en web
Objetivo C: si estás haciendo una aplicación para iPhone.
PHP: no.
Lisp / Haskell: Si realmente quieres mejorar tu programación, expande tu mente (en lo que respecta a las habilidades de programación), y si eres el único programador en el proyecto (o tendrá muy pocas personas muy brillantes trabajando en ello) eso).
Esa es la lista en caso de que el idioma no esté predeterminado debido a otras consideraciones dependientes del contexto (que probablemente sea la mayor parte del tiempo). Y recuerde, cuando tenga dudas, use Python.