No existe el mejor lenguaje de programación.
Diferentes idiomas son buenos en diferentes contextos. Los idiomas que no son claramente mejores que todos los demás idiomas en al menos un área importante desaparecen; es por eso que hay literalmente miles de idiomas, pero la cantidad de idiomas que realmente usa la mayoría de las personas se calcula en las decenas.
Para darle una idea de las fortalezas de algunos de los lenguajes más populares, voy a cortar y pegar de mi respuesta a “¿Qué lenguaje de programación debe aprender para el desarrollo de software?”
- ¿Cuáles son las últimas tecnologías para el desarrollo más rápido en el campo del software?
- Cómo sobrevivir (profesionalmente) como ingeniero de software
- ¿Cuenta la experiencia en administración de sistemas al solicitar el trabajo de desarrollador de software?
- ¿Cuál es la forma más rápida para que un programador de software de Japón migre a Canadá?
- ¿Por qué es tan costoso el software personalizado?
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á sujeto 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.
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 Java proporciona, 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).