Iván Canosa (https://ivancanosa.net/ )

C++, el lenguaje más versátil

Desde siempre han habido y habrá discusiones sobre qué lenguaje es mejor que otro y, en cierto sentido, todos tienen razón. Hay lenguajes de programación que tienen características que facilitan su uso en ciertas aplicaciones. Como por ejemplo python: tiene polimorfismo total de tipos y no es necesario preocuparse de crear o liberar memoria, lo que lo hace fácil de usar para principiantes o realizar prototipados rápidos. O el lenguaje erlang, el cual es un lenguaje de programación funcional con poco coste en la creación y destrucción de processes (un concepto similar a thread), lo que lo hace muy eficaz para programar aplicaciones masivamente paralelas.

C++ es diferente en el sentido de que incorpora estructuras que permite muchos tipos de estilos de programación distintas. Lleva varias décadas en el que le han ido añadiendo características según la demanda y algunos conceptos que solo existen en él. Para algunas personas esto puede interpretarse como que es un lenguaje caótico en el que es necesario nivel de gurú para poder entenderlo, y no les falta razón. Template metaprogramming, SFINAE, STL, CRTP, smart pointers, policy based design… Son solo algunas de las características o estilos de programación en el lenguaje. Aunque sea un caos de conceptos, tienen una razón de existir. Los programadores en ese lenguaje necesitan control de bajo nivel sobre los recursos para hacer programas lo más eficientes posibles, pero a la vez tienen abstracciones que permiten aumentar la productividad, reducir duplicidad y hacer código más conciso. Si a eso se suma la enorme comunidad y cantidad de librerías disponibles, hace a C++ un lenguaje apropiado casi para cualquier aplicación. Incluso es posible compilarlo a javascript para usarlo de front-end.

Por todo ello, C++ me parece el mejor lenguaje y siempre lo prefiero como primera elección. A pesar de que también sea uno de los lenguajes más difícil de aprender a usar.