Una anécdota es de esta discusión [1] sobre Usenet en 1989.
Dennis Ritchie escribió:
Surgió la pregunta: ¿por qué C usa un carácter de terminación para cadenas en lugar de un recuento?
La discusión de la representación de las cadenas en C no es fructífera a menos que se comprenda que no hay cadenas en C. Hay matrices de caracteres, que tienen un propósito similar, pero no tienen cadenas.
- ¿Cuáles son los hechos menos conocidos sobre Gujarat?
- ¿Cuáles son los hechos más divertidos, más extraños, más sorprendentes y alucinantes sobre Malasia?
- Hemos escuchado y leído sobre el Primer Mundo y el Tercer Mundo. ¿Hay algo llamado un segundo mundo también?
- ¿Cuáles son algunos de los hechos más alucinantes sobre Vietnam?
- ¿Cuáles son los trucos más alucinantes utilizados durante una guerra?
Las cosas muy profundas en el diseño del lenguaje y en las costumbres de su uso hacen que las cadenas sean un desastre para agregar. La intención era que el comportamiento de las matrices de caracteres fuera exactamente igual a eso.
de otras matrices, y la esperanza era que las operaciones estrictas en estas matrices de caracteres fueran lo suficientemente convenientes. …Dado el uso explícito de matrices de caracteres y los punteros explícitos a secuencias de caracteres, el uso convencional de un marcador de terminación es difícil de evitar. La historia de esta convención y del esquema de arreglo general tuvo poco que ver con el PDP-11; Fue heredado de BCPL y B.
Robert Firth respondió:
Una corrección aquí: el esquema de C NO fue heredado de BCPL.
Las cadenas BCPL no se confunden con matrices de caracteres; su implementación normalmente no es visible para el programador, y su semántica es respetablemente robusta.
Eric S Raymond respondió a Firth:
He visto antes idioteces en la red, pero esto lo supera todo: esto hace que la espada de vidrio tallado salga disparada. Sr. Firth, ¿ lee lo que está respondiendo antes de pontificar? ¿No se registró el nombre ‘Dennis Ritchie’ en lo que sea?
¿Qué cantidad de excrementos empapados estás usando como sistema nervioso central? ¿Te das cuenta de que la persona que simplemente “corrigió” incorrectamente en un punto de los antecedentes intelectuales de C es el inventor de C ?Sheesh No es de extrañar que Dennis no publique más a menudo.
La próxima vez que dmr publique algo, te sugiero que te calles y escuches. Respetuosamente.
Mientras que Dennis Ritchie también respondió a Firth:
Robert Firth corrige justificadamente mi declaración errónea sobre las cuerdas BCPL; de hecho fueron contados. Evidentemente edité mi memoria.
Notas al pie
[1] Grupos de Google