Saltar al contenido

Lo que deja de ser posible

El balance de la fase III: los cuatro fallos que desaparecen, los tres que siguen ahí, y lo que se gana además de la corrección. Cierre del bloque del puente.

Los cuatro que desaparecen

Los tres que siguen ahí

Y esto importa igual, porque un sistema que crea una falsa sensación de cobertura es peor que ninguno:

El permiso. Un comando puede estar generado, tipado y llamado correctamente, y estar cerrado para esa ventana. Es el tramo 4 del recorrido y no tiene nada que ver con los tipos: lo cubre la fase V, y sigue siendo un fallo que solo aparece al ejecutar. La prueba de humo del nivel 13.3 sigue haciendo falta exactamente por esto.

La semántica. Los tipos dicen que un campo es un número; no dicen si son segundos o milisegundos, ni si un identificador es de proyecto o de problema. El fallo silencioso del nivel 17.4 sigue siendo posible con bindings perfectos. Lo cubre la disciplina de nombres —la unidad en el nombre— y los tipos propios en vez de primitivos: un ProyectoId que se genera como un tipo distinto de ProblemaId sí impide confundirlos.

El fichero viejo. Si nadie regenera, el binding describe el contrato de la semana pasada y miente con apariencia de garantía, que es peor que no tenerlo. Lo cubre el paso de integración continua del nivel 19.3, y por eso ese paso no es opcional.

Las tres ventajas que no son de corrección

Se descubren usándolo y pesan más de lo esperado:

El autocompletado como documentación. Escribir commands. y ver la lista de todo lo que el core ofrece, con sus firmas, hace que la superficie sea explorable sin abrir Rust. Es la mejora de ergonomía más grande de la fase.

El coste del cambio baja. Añadir un campo pasa de tocar dos ficheros en dos lenguajes con riesgo de fallo silencioso, a tocar uno y regenerar. Eso es lo que quita el desincentivo del nivel 19.1, y lo que hace barato el diseño de un tipo por pantalla que el nivel 15.3 pedía.

El diff cuenta la verdad. Un cambio en la frontera aparece en el fichero generado, con su forma completa, en la revisión de código. Alguien que revise un cambio ve exactamente qué se abrió, se cerró o cambió de forma en el contrato. Eso, combinado con la lista de comandos del nivel 14.2 y con las capabilities de la fase V, hace que la superficie sea auditable con un diff.