En muchos medios circula el rumor o la versión casi oficial que no es posible programar en la actualidad sistemas o programas con lenguaje C. Muchas personas lo atribuyen a la falta del paradigma Orientado a Objetos en C, cómo si el único paradigma válido fuese este. Por otro lado, otros creen que al no ser orientado a objetos C no puede desplegar ventanas. Nada más falso que lo antes afirmado. C hoy en día se disputa directamente con Java la supremacía como el lenguaje más importante de nuestro tiempo.

¿Pero porqué se sigue usando C? C Es el lenguaje perfecto para muchos, entre los que me incluyo. Es minimalista y carente de una gran API. Esto pone en la mano de los programadores la decisión de incluir cualquier librería de terceros o el implementar uno mismo las funciones, el bajo nivel del lenguaje nos permite a su vez controlar todos cada ciclo del CPU, sin dejar nada a la interpretación del compilador, y por último tenemos todo el poder libre, pero con un gran poder viene una gran responsabilidad. Programar en C nos enseña responsabilidad sobre nuestras acciones, como lo es la reserva de memoria, su liberación, el aprovechamiento al óptimo de los recursos y por supuesto poner atención en los punteros. 

Lo antes mencionado puede sonar difícil y lo es. Pero esto no quiere decir que no sea la herramienta correcta para muchos proyectos. Algunos podrán decir: "C es bueno para nivel kernel, pero para nivel usuario no sirve". Nada mas falso que esto. A continuación presentaré diez programas que están escritos en C y que demuestran que se puede escribir cualquier tipo de aplicación con el. ¿El resultado? Un programa optimizado, estable y elegante en su código.

 

Kernel: Linux, Minix, Hurd, FreeBSD, OpenBSD, y Darwing, el kernel de Mac OS X.

El kernel de un sistema operativo es un espacio tan cercano al hardware que únicamente puede ser realizado mediante el uso de ensamblador y lenguaje C. En los proyectos de código libre es posible saber con exactitud que lenguaje se utiliza, por lo que no incluimos aquí ningún kernel de software propietario. El kernel de Mac OS X es de código abierto, a pesar de que el resto del sistema operativo no y también nos permite observar que está escrito en C. 

Pero también muchos críticos de C han planteado que este lenguaje únicamente será usado para la programación de sistemas, pero no para aplicaciones. En los siguientes ejemplos veremos cómo esta aseveración es completamente falsa. 

PostgreSQL

Este Gestor de Bases de datos es el más poderoso del mundo del Open Source, y es competencia directa de Oracle. El gestor cuenta con una comunidad muy activa y es predilecta para frameworks como Django. Está completamente escrito en C y es demostración de como un sistema grande y poderoso no necesita de programación orientada a objetos. 

GIMP

Muchos dirán que si bien se puede crear servidores con C, aunque sean aplicaciones muy grandes y complejas, es necesaria la Programación Orientada a Objetos para crear interfaces gráficas o aplicaciones para el usuario final. El poderoso editor de imágenes GIMP está escrito en su mayor parte en C utilizando la librería GTK, con lo que ofrece un increíble rendimiento y todo sin necesidad de C++ u otro lenguaje "idoneo" para esta tarea. Con C podemos programar perfectamente una interfaz gráfica sin necesidad de recurrir a POO.

Versionado: Git, Subversion

Los programas de versionados más famosos y usados que son Git y Subversion está escritos en C. Si bien en otro lenguaje puede ser perfectamente usado para este fin como Python en HG, la pregunta debería ser ¿Porqué no usar C? La gran ventaja de C es que puede ser usado para cualquier aplicación, sin importar el carácter de la misma. 

Servidores Web: Apache, Nginx

Los servidores Web más utilizados: Apache y Nginx utilizan C. En lo particular apache se ha decidido por una combinación entre C y C++, lo cual le ha costado un poco de rendimiento. Esta desventaja es neutralizada por Nginx que es mucho más veloz, en parte por usar el lenguaje más rápido en todo su código: C

Editores: Emacs, VIM, Geany

Muchos editores de texto que ofrecen gran  a la hora de editar textos, como son GNU EMACS y VIM han sido escritos en C. También IDE's/editores como Geany. 

Matemáticas: R, MATLAB, Octave

Una de las ramas de la computación que más velocidad de computación requiere además de exactitud y poder son las matemáticas y sus programas. En este caso vemos que los paquetes más importantes, como es R en estadística y MATLAB en cálculo han sido escritos en nuestro lenguaje preferido. ¿Entonces C ya no se usa? Sería difícil tener programas tan potentes sin una herramienta tan potente. 

Lenguajes de Programación: C, C++, Python, Perl, Ruby, etc...

Un campo donde C es campeón indiscutible además del Kernel es en la programación de compiladores o intérpretes. Los ejemplos antes descritos están hechos enteramente en C, pero lo que realmente es impresionante es que sus más cercanos como C++. Una excepción es Java que está hecho en C++, como una isla en el océano, 

Como vemos el lenguaje de programación C, a pesar de su edad, es central en el mundo actual. No podríamos entender internet, lo sistemas operativos, ni muchos lenguajes sin este poderoso lenguaje de programación. Su diseño minimalista, armónico y correcto se diferencia de otros que parecen parchados y obligados a adaptarse a ciertos paradigmas. Es por eso que C se encuentra en lucha directa con Java para tener el primer lugar entre los lenguajes modernos. Así que para el próximo proyecto, ¿por qué no pensar en C?

 (Imagen tomada de: https://duglasm.wordpress.com/tutoriales-de-progrmacion/tutorial-del-lenguaje-de-programacion-c/)

Share This