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 algunas buenas tecnologías de diseño web receptivas para sitios web complejos? Bootstrap no es la combinación perfecta para mi sitio web.
- ¿Por qué es Javascript un lenguaje tan poderoso y popular para crear aplicaciones web?
- ¿Son accesibles los iframes así como su contenido?
- ¿Existe una buena plataforma para implementar la aplicación nodeJs con la base de datos MySql de forma gratuita?
- ¿Cuál es la diferencia entre el código JavaScript colocado dentro de una etiqueta de encabezado y el código colocado fuera de una etiqueta de cuerpo?
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).