C y C++
Dos lenguajes veteranos y rápidos debajo de sistemas operativos, navegadores y juegos.
C es un lenguaje de programación que creó Dennis Ritchie en los Bell Labs a principios de los años 70 para escribir el sistema operativo Unix. C++ vino después: Bjarne Stroustrup lo empezó en 1979 como "C con clases" y le sumó programación orientada a objetos y muchas otras cosas encima de C. Son lenguajes distintos, pero C++ puede usar código C directamente, así que suelen nombrarse juntos.
Los dos se compilan directo a código de máquina y le dan al programador control directo sobre la memoria: pedís un pedazo de memoria, lo usás y lo devolvés. Ese control es lo que los hace rápidos y lo que les permite correr donde casi nada más entra, desde microcontroladores hasta el kernel de Linux. El núcleo de Windows, macOS y Linux, navegadores como Chrome y Firefox, muchas bases de datos y la mayoría de los grandes motores de juegos están escritos en buena parte en C o C++.
El precio de ese control es el riesgo. Si te olvidás de devolver memoria, o leés más allá del final de una lista, el programa se puede colgar o, peor, abrir un agujero de seguridad. Una parte grande de los bugs de seguridad graves en proyectos grandes de C y C++ viene justamente de esos errores, y por eso lenguajes más nuevos como Rust buscan la misma velocidad con la seguridad de memoria incorporada. Igual, décadas de código que funciona hacen que C y C++ no se vayan a ningún lado.
Para quedarse
- C es de principios de los 70; C++ se construyó encima a partir de 1979.
- Los dos se compilan a código de máquina y manejan la memoria a mano.
- Sistemas operativos, navegadores, bases de datos y motores de juegos están escritos en buena parte en ellos.
- El manejo manual de la memoria es la fuente principal de sus cuelgues y bugs de seguridad.