Dependable C es un proyecto que documenta un subconjunto del lenguaje C orientado a quienes necesitan escribir bibliotecas portables, estables y mantenibles a largo plazo. La guía parte de una premisa clara: cuando se necesita una biblioteca de bajo nivel para complementar lenguajes como Python, Java o C#, C sigue siendo la opción más adecuada por su velocidad, simplicidad, ubicuidad y legibilidad. Sin embargo, no todo el código en C es portable ni compila igual en todos los compiladores.
El documento defiende un C neutro, cercano al «C clásico» basado en C89, evitando extensiones, ajustes específicos de compilador o pasos de compilación especiales. Argumenta que los estándares más recientes, como C23 y el próximo C2Y, son demasiado complejos y solo los implementan dos de los cientos de compiladores existentes, lo que los hace una guía poco fiable para software ampliamente portable. También señala que la distancia entre ANSI C y C2Y es comparable a la que hay entre ANSI C y las primeras versiones de C++.
Dependable C no es un dialecto ni una guía de estilo: no prescribe formato ni indentación, sino que documenta qué funcionalidades del lenguaje pueden considerarse fiables en implementaciones reales. Prioriza la compatibilidad frente a la ergonomía del programador y puede combinarse con estándares como MISRA, que se centra en la seguridad. En casos puntuales, la guía admite usos técnicamente indefinidos cuando en la práctica son dependientes.
El enfoque reconoce que muchos lenguajes derivados de C (C++, Java, C#, D, JavaScript, Objective-C) heredan su sintaxis de C89 y no incorporan las novedades de C99 en adelante, lo que refuerza la utilidad de un subconjunto clásico y ampliamente soportado.
