La regla de cero uno infinito (ZOI) es una regla empírica en el diseño de software propuesta por el pionero de la computación Willem van der Poel . [1] Argumenta que no se deberían permitir límites arbitrarios en la cantidad de instancias de un tipo particular de datos o estructura. En cambio, una entidad debería prohibirse por completo, solo se debería permitir una o se debería permitir cualquier cantidad de ellas. [2] Aunque varios factores externos a ese software en particular podrían limitar este número en la práctica, no debería ser el software en sí el que establezca un límite estricto en la cantidad de instancias de la entidad.
Se pueden encontrar ejemplos de esta regla en la estructura de los directorios de muchos sistemas de archivos (también conocidos como carpetas):
Van der Poel confirmó que él fue el creador de la regla, pero Bruce MacLennan también reivindicó su autoría (en la forma "Los únicos números razonables son cero, uno e infinito"), escribiendo en 2015 que:
Por supuesto, el Principio Cero-Uno-Infinito fue pensado como un principio de diseño para lenguajes de programación y cosas similares, con el fin de mantenerlos cognitivamente manejables. Lo formulé a principios de los años 70, cuando estaba trabajando en el diseño de lenguajes de programación y me molestaban todos los números arbitrarios que aparecían en algunos de los lenguajes de la época. ¡Ciertamente no tengo argumentos en contra de las estimaciones, los límites o los números en general! Como dijiste, el problema está en los números arbitrarios. No creo que lo haya usado en forma impresa antes de escribir mi libro de PL de 1983 [ Principios de lenguajes de programación: diseño, evaluación e implementación ]. Dick Hamming me animó a organizarlo en torno a principios (a la Kernighan & Plauger y Strunk & White ), y el Principio Cero-Uno-Infinito fue uno de los primeros. (Por cierto, el nombre “Principio Cero-Uno-Infinito” se inspiró en el libro de George Gamow , “Uno, dos, tres… Infinito”, que leí en la escuela primaria.) [3]