"El lado humano del software"

Ranking de lenguajes de programación

En la actualidad los programadores sufrimos de una explosión de los lenguajes de programación. Jamás en la historia habíamos tenido tanta cantidad de lenguajes distintos orientados a temas específicos y tantos sistemas y plataformas.

Es una auténtica locura. Tenemos aproximadamente 200. Muchos programadores ya no sabemos ni por donde tirar. Suele ser un tema recurrente intentar saber el futuro. Acertar es conveniente porque de lo contrario corremos el riesgo de quedarnos estancados.

Lejos de respuestas mágicas, el lenguaje más conveniente suele ser el más extendido para la plataforma en la que debemos desarrollar. Al menos eso a corto plazo.

Por otro lado, lo mejor es dominar un mínimo de dos lenguajes distintos de índole diferente. Diversifica el riesgo y permite una mejor cultura y conocimientos básicos de programación.

El futuro siempre es incierto. Cuando algo parece que va por un camino, luego cambian las previsiones dado que las compañías luchan en una feroz competencia.

La elección de los lenguajes debe mirarse por tanto desde varias perspectivas: diversidad, posibilidades de trabajo y si este se encuentra en el área que deseamos.

 

Previsiones futuras.

Suelo leer fuentes de todo tipo de fuentes. Estas son mis previsiones a largo plazo (ojo que esto es sólo un poco más que hacer las cartas de tarot):

JAVA.

Este lenguaje TOP nº 1 en el mundo sólo hace caer y caer. Además, es muy repudiado por una gran comunidad de programadores (también los hay que lo aman, pero los menos). Su uso es muy extendido en el software de parche tras parche y en los trabajos poco deseables de programación, al menos en España.

Lo único que lo podría potenciar en el futuro es que hay otros lenguajes que compilan a la máquina virtual de JAVA, pero esto realmente no potencia a JAVA sólo a su máquina virtual. En el fondo aun le restan más cuota.

En mi conclusión, JAVA no es un lenguaje idóneo para estudiar. Excepto para un presente inmediato. OJO, que esto no quita que siga siendo el top, pero ¿Por cuánto tiempo? Le queda en el top de la primera posición 3 ó 4 años antes de ser rebasado. Luego en 10 años seguramente esté en el top 10 por los pelos. El problema será una cantidad enorme de programadores JAVA sobrante de épocas pasadas, demasiada competencia.

¿Yo le dedicaría tiempo? No, sólo si es imprescindible por motivos de causa mayor.

 

C

Una vieja gloria pasada. Es un lenguaje rápido y el padre de los lenguajes. El problema es que las multinacionales no lo están patrocinando, su uso es de rebote de compiladores de C++ con lo cual le espera una lenta agonía.

¿Yo le dedicaría tiempo? Depende por causas académicas si (es el latín de los programadores), o si vas a C++, sin estos motivos, sólo si es imprescindible por motivos de causa mayor.

 

C++

Este lenguaje seguirá viviendo pese a su complejidad. Siempre es una buena opción.

C++ es C++ y punto.

¿Yo le dedicaría tiempo? Depende de la personalidad del programador. Este lenguaje no es apto para todo tipo de programadores, es más para personas puristas, minuciosas y que no buscan resultados rápidos. Las personas creativas y muy dinámicas no sienten que sea su lenguaje. C++ son para proyectos de largo plazo. Proyectos puros.

Cuando se hace una comparativa entre las líneas de código de Python y C++ la diferencia es sencillamente brutal. Python por su sencillez y C++ por ser un dolor de sintaxis. Cierto que C++ se ejecuta muchísimo más rápido, una diferencia brutal, pero no siempre es necesaria tanta velocidad.

Por tanto, una opinión neutra.

 

C#

Yo he programado mucho en este lenguaje. Tiene un problema. Microsoft ha llegado muy tarde a su evolución de .NET (con unas librerías pesadísimas) a .NET Core mucho más ligero y multiplataforma conforme a los nuevos tiempos. El gran problema es que .NET Core es incompatible hacia atrás. La disrupción supone un auténtico dolor a los programadores y a todo tipo de empresas de toda índole.  En ningún caso estoy diciendo que el lenguaje muera, C# es estupendo, pero no creo ni que suba ni baje en la lista.

Por cierto, es un lenguaje líder en la industria de los videojuegos, y eso que dicen que es lento no lo es, Unity ya está haciendo mejoras para que se ejecute más rápido en nativo + multihilo. Una auténtica gozada.

También en soluciones de negocios es muy potente. Integra bien con Office y otras muchas soluciones de Microsoft.

Si Microsoft hubiera reaccionado mucho antes C# hubiera alcanzado la gloria, pero ya no.

¿Yo le dedicaría tiempo? Sí, al menos si el programador no sabe C++ o Java. Si es conocedor de los otros no es tan importante.  Por tanto, otra opinión positiva pero no en exceso.

 

Visual Basic.NET

Para mí es increíble que en estos tiempos aún se encuentre tan bien situado, imagino porque su uso no requiere un entendimiento profundo de la programación orientada a objetos como en otros lenguajes. Creo que poco a poco irá “agonizando” (en cualquier caso, mientras se encuentre entre los 20 primeros de agonía nada). ¿Yo le dedicaría tiempo? En el pasado era imprescindible (yo he programado en BASIC), ya no. No lo veo como lenguaje para aprender de futuro. Es un lenguaje que se encuentra en tierra de nadie, pues es profesional pero no muy profesional. Quizás por eso mismo sobrevive, porque les sirve a un determinado tipo de programadores descafeinados. Por tanto, mi opinión es moderadamente negativa.

 

JavaScript

Rey de los reyes en la web pues no hay otra cosa para la misma, se va ir viendo reemplazado poco a poco por webassembly. Dicen oficialmente que webassembly no es “un mata JavaScript”, pero tiempo al tiempo, sólo es cuestión de que otros lenguajes compilen directamente a web con recolección de basura.

¿Yo le dedicaría tiempo? Faltan años (muchos) para que webassembly mate a JavaScript. En cualquier caso, la web hoy día es JavaScript. Por otro lado, debemos recordar la gran evolución que supone TypeScript que está marcando el futuro de JavaScript. En conclusión, si haces web imprescindible y sus conocimientos siempre vendrán bien.

JavaScript contrariamente a lo que la gente se cree es mucho más difícil de lo que aparenta por muchos motivos: inconsistencias de la lengua, diversidad de navegadores, sistemas en los que se encuentra implementado, miles de librerías de todo tipo, etc. Yo personalmente odio y amo a la vez este lenguaje y su ecosistema. He programado mucho con JavaScript/TypeScript. Tiene cosas que me encantan y otras que repelo.

Contrariamente a lo que la gente piensa, hoy día JavaScript es compilado. Los motores modernos como el V8 (Chrome) hace una compilación antes de ejecutar. Por ello JavaScript no es para nada lento. Alcanza una velocidad aproximada del 50% de C++.

JavaScript tiene una sintaxis más enredosa que Python, pero es muy potente al soportar también diccionarios dinámicos nativamente. En sus primeras versiones era porquería, pero ya está bastante bien.

JavaScript se ejecuta en todos lados, incluido servidores (nodejs). Para la web es lo que hay, por tanto, es indiferente si se tiene una opinión positiva o negativa. Le daré un voto moderadamente positivo.

 

Pitón

Es excelente, pero lo siento, lo veo para profesionales light o descafeinados, su rendimiento tan pobre me mata. Otro problema: por su naturaleza es extremadamente difícil de que compile a webassembly (el futuro web). Python acabará matando al BASIC aunque ciertamente son ecosistemas diferentes.

¿Yo le dedicaría tiempo? Sí, si quieres un lenguaje rápido de programar, pero lento de ejecutar o si esto te es indiferente. Tiene problemas futuros de adaptación a las nuevas tecnologías. Lo siento, lo veo como un lenguaje secundario para un profesional. En cualquier caso, no es muy difícil y está bien aprenderlo. Está teniendo mucho éxito porque su sintaxis es muy agradable y fácil de aprender. Es un lenguaje lento al ser interpretado, pero escala bien. Voto moderadamente positivo.

 

Delphi Object pascal.

Puedo opinar poco porque nunca he programado para este lenguaje. Yo creo que con el tiempo perderá un poco su posición.

 

F#

Magnífico lenguaje, me encanta. Creo que conceptualmente es mi preferido. Lástima que sólo conceptualmente. Con esto no le estoy criticando, pero vive del ecosistema C# y siempre será su dependiente (lo sé, los puristas de F# me criticarán por decir eso porque no es correcto del todo). No es lento, tampoco el más rápido.

¿Yo le dedicaría tiempo? Depende de la personalidad del programador. No le veo tanta salida como a otros lenguajes, aunque los que trabajan en el mismo no lo ganan mal. Mi opinión es que a nivel teórico es excelente, pero en la práctica (no por culpa del propio lenguaje) no tanto. Yo lo he dejado de estudiar.

 

Moho

Magnifico lenguaje, muy moderno. Es otro que a nivel conceptual me encanta. Pero es muy complicado de aprender. Y es incipiente. Rust es competencia pura de C++.

¿Yo le dedicaría tiempo? Sólo si vas en el camino de C++ y sabes C++ y quieres aprender algo fresco. Yo he tonteado con este lenguaje, pero lo he dejado, lo veo ahora mismo poco práctico. Sin duda un lenguaje para estar pendiente en el futuro.

 

PHP

Super usado en WordPress, y en tantas webs… que lo hacen un líder. Conceptualmente hablado no me gusta nada y no es un lenguaje de programación consistente y de calidad lógica.

¿Yo le dedicaría tiempo? Sólo si tienes que programar en uno de tantos sistemas que lo usan, en caso contrario no, nunca.

 

Rápido

No lo conozco, no opino. Pero si programas para Apple imprescindible.

 

Ir (Golang)

Este lenguaje es rápido, relativamente fácil de aprender (no tanto como presumen). Soporta multihilo de manera nativa, crea unos compilados ligeros. La web oficial parece de juguete, pero el lenguaje es realmente de calidad. Este lenguaje es competencia de C pero se siente parecido a Python. Le veo un buen futuro.

¿Yo le dedicaría tiempo? Sí, es un aire fresco. Es cierto que aún necesita de algunas mejoras que saldrán en la 2.0. Su principal crítica es que ahora mismo no tiene genéricos ni dinámicos, lo cual es muy desmoralizante. Aunque en el tiempo ya están diciendo que lo van a incorporar, con la ventaja de ser el último que lo haga y por tanto copiará las mejores ideas.

Go debería estar en la lista de todo programador, al menos de tontear con él. Opinión moderadamente positiva. Ya veremos en el futuro.

 

En resumen, recomendaría…

Uno de estos del grupo de estos 3: C++, C# o JAVA.

Si tocas web, no hay otro que JavaScript pero empleando TypeScript de Visual Studio. o Visual Studio Code.

Un lenguaje poderoso funcionalmente aunque muy lento: Python. Ideal para aficionados o dónde hay que programar reduciendo costes.

El más práctico y que le veo más futuro de todos: Go (Golang) y C#. Pero esto a medio largo plazo.

 

En resumen, si es por gusto aprendiendo:

En el momento presente recomiendo C#, y más adelante Go. Y si es web JavaScript + TypeScript.

Si es por trabajo: el lenguaje que tenga salida laboral y que siga tu trayectoria profesional, pues al final es lo que importa.

He visto estos y muchos otros. Actualmente no hay ninguno que me termine de gustar. Lo ideal sería un lenguaje tipo Python, dinámico, que también se pudiera compilar. Al compilar creara -excepto para las instrucciones más complejas- un compilado rápido al estilo al menos de GO. Este lenguaje debería además soportar programación a más bajo nivel (tipo C++) y compilación en WebAssembly. Sencillamente no existe.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.