En 1972 Dennis Ritchie estaba hasta el gorro de las limitaciones que imponía el lenguaje de programación B, derivado de BCPL y creado por Ken Thompson para poder desarrollar programas y utilidades para Unix en el mítico PDP-11. La necesidad agudiza el ingenio, dicen, y el ya de por sí ingenioso Ritchie decidió crearse un sistema operativo mucho más adecuado. Aquel esfuerzo se convirtió en el lenguaje de programación C.
Su utilización a lo largo de los años se ha consolidado de tal forma que casi cinco décadas después el lenguaje C sigue siendo uno de los más populares del mundo. El último índice de TIOBE asi lo confirma: solo Java le supera, y C incluso sigue estando por delante del lenguaje Python, que en los últimos tiempos se ha vuelto especialmente atractivo por su íntima relación con el ámbito de la inteligencia artificial.
Java, C y Python, los lenguajes de 2019 según TIOBE
Ese llamativo crecimiento de la popularidad de Python no es (de momento) suficiente para que supere al lenguaje C. Los analistas de TIOBE indicaban que una de las razones es el auge que C ha tenido en dispositivos inteligentes y en la Internet de las Cosas.

De hecho, hay otra gran ventaja de este lenguaje sobre el resto de opciones de mercado: está virtualmente soportado en todas las plataformas existentes hoy en día en el mundo de la computación. Como explicaban estos analistas, "C sobresale cuando se aplica a dispositivos pequeños que son críticos para el rendimiento. Es fácil de aprender, y hay un compilador de C disponible para cada procesador".
La relevancia del lenguaje C es espectacular según el índice TIOBE, aunque otras encuestas dejan claro que esta alternativa genera amor y odio a partes iguales: la encuesta que realizan en StackOverflow cada año mostraba cómo C estaba al final de la tabla entre los lenguajes más amados (un 42,5% de los encuestados lo adoran) pero estaba entre los más odiados (un 57,5% no lo soportaban), solo por detrás de VBA, Objective-C o ensamblador.

Curiosamente más o menos sucedía lo mismo con Java en esa encuesta. Mientras que TIOBE lo sitúa como el lenguaje más popular y utilizado del planeta durante 2019, la pasada encuesta de StackOverflow mostraba filias y fobias algo menos acentuadas que las que provoca C, pero que demuestran que estos lenguajes tan veteranos se han convertido en propuestas muy reconocibles y más propensas a polarizar a la comunidad de desarrolladores.
C gana la partida por ahora, pero Python está al acecho
Con Python eso no ocurre: la popularidad de este lenguaje sigue creciendo de forma notable —en TIOBE apuntaban a que 2020 sería el que llegara al trono de su particular índice- y en las encuestas de StackOverflow estaba entre los más amados (solo por detrás de Rust), no aparecía en la lista de los más odiados y era (de lejos) el más deseado y el que los desarrolladores más estaban esperando aprender.

Todo eso parece marcar un camino de futuro muy claro para Python, pero hoy por hoy el lenguaje C le gana la partida. De hecho fue el que más creció en popularidad según TIOBE, un 2,44%. Le siguieron C# (2,07%), el citado Python (1,4%) y Swift (0,61%). En el otro lado estaban los que más perdieron, con C++ a la cabeza (-2,58% frente al año pasado). Java apenas modificó su popularidad, y eso permitió que se mantuviera en primera posición un año más en este índice.
Sea como fuere, la prevalencia de C es espectacular, y parte de su éxito también se debe a su presencia en Linux y en multitud de proyectos Open Source que en muchos casos son componentes básicos de otras plataformas (como Android o el kernel de MacOS o incluso de Windows, ambos mayoritariamente desarrollados en C).

Es probable que Python y su popularidad en el ámbito de la inteligencia artificial acaben convirtiéndolo en el lenguaje más popular próximamente, pero lo sorprendente es que un lenguaje mucho más veterano como C logre haber estado en ese podio desde hace décadas. Según TIOBE, de hecho, no ha bajado del segundo lugar de popularidad desde 1985.
Que viva C, señores y señoras.
Ver 24 comentarios
24 comentarios
Luis
Mientras la electronica y los drivers se programen en c y c++ nunca morirán.
jlmartin
Como programador de C++ no le veo ninguna ventaja relevante a Python sobre C, tiene cosas que están bien, pero su principal problema es que es un lenguaje interpretado, C es compilado, los lenguajes compilados son mas rápidos, y generalmente tienen menos errores en tiempo de ejecución.
Si programas algo incorrecto en Python no te darás cuenta hasta que la ejecución llegue a ese punto, si programas algo incorrecto en C el compilador te avisara y no podrás ejecutar el programa hasta que corrijas el error.
jquare
Usando C++ moderno, evitas overflows y gestión manual de la memoria. Cierto que no tiene un máquina virtual para la portabilidad, pero es el coste de la eficiencia. En C sencillamente tienes que ser muy bueno, saber lo que haces.
Python es para tontos, perdón dummies, un wrapper de C, por eso es tan popular, un montón de dummies haciendo scriptting sin saber lo que hacen. Hay mucha diferencia entre un lenguaje con un compilador, con tipo estático, y que genere código máquina. Mucha diferencia, de tal modo que en Python nunca podrás gestionar un proyecto de millones de líneas de código. Los interpretados son viejas glorias del pasado, como Perl, Ruby, Python o JavaScript. Todo lenguaje nuevo tiene un compilador o por lo menos un JIT, Kotlin, Swift, Typescript, Go. Ningún lenguaje moderno o futuro renunciará a no tener un compilador (el interpretado será una pieza de museo).
Por cierto Go es tipo seguro, tiene un compilador, y genera directamente a código máquina y no es portable, como C/C++, por eso es más eficiente que JavaScript o Python. Por qué la gente de Google diseño un lenguaje tan joven, pero con características tan viejas?
buclefor
printf("Hola Caracola");
luismata1
Deseado o gratis, igual que PHP, que en el fondo es horoiroso..