typestar

Lenguajes

C

Cincuenta años y sigue siendo la capa sobre la que se apoya todo lo demás.

Primera versión
1972
Creado por
Dennis Ritchie, at Bell Labs
Tipado
Estático y débil, con conversión libre a través de punteros
Extensiones de archivo
.c, .h

Para qué sirve

C vive en el fondo del stack. Kernels de sistemas operativos, drivers de dispositivos, firmware embebido, runtimes de lenguajes y las bibliotecas estándar de casi todos los demás lenguajes. Cuando un lenguaje presume de poder llamar código nativo, la interfaz de la que habla es la de C.

Sobrevive porque es pequeño y porque se proyecta sobre el hardware casi sin nada en medio. Sin runtime, sin recolector de basura, con pocas abstracciones que cuesten algo que no pediste. Eso es exactamente lo que quieres en un microcontrolador con kilobytes de RAM. Y es exactamente lo que lo vuelve peligroso en todos los demás lugares: la memoria manual y los búferes sin verificar han aportado una parte notable de las vulnerabilidades de seguridad de las últimas tres décadas.

Por eso los lenguajes de sistemas más nuevos se definen en parte por oposición a él, y hoy hay un esfuerzo serio por reemplazarlo donde la seguridad importa. Nada de eso hace mella en la base instalada. Hoy corre más C que nunca, y va a sobrevivir a todos los que leen esto.

De dónde viene

Dennis Ritchie construyó C en Bell Labs entre 1969 y 1973, a partir del B de Ken Thompson, para que Unix pudiera reescribirse en algo que no fuera ensamblador. Eso hizo a Unix portable, y esa sola decisión difundió el sistema operativo y el lenguaje más lejos de lo que cualquier campaña de promoción habría podido.

The C Programming Language, de Kernighan y Ritchie, definió el lenguaje durante una década a partir de 1978 y se convirtió en uno de los libros de programación más influyentes jamás escritos. La estandarización formal llegó después: ANSI C en 1989, ISO en 1990, y luego C99, C11, C17 y C23, cada uno agregando con cuidado y rompiendo casi nada.

El conservadurismo del comité es justamente el punto. El código escrito en 1990 todavía compila, y un ABI de C es la lengua franca que todos los lenguajes pueden hablar. C ha cambiado menos en cincuenta años de lo que la mayoría de los lenguajes cambia en cinco.

Cómo se siente teclearlo

C es llaves, puntos y comas y asteriscos. Cada sentencia termina en punto y coma, cada bloque es un par de llaves, y el trabajo con punteros suelta * y & en medio de declaraciones y expresiones donde tus dedos no los esperan. Las guardas de inclusión y las líneas #include vuelven la tecla de numeral algo ordinario en vez de exótico.

Practica C

165 pasos en 10 tours, desde lo básico hasta programas completos.

Los tours

Documentación oficial

Otros lenguajes