Hasty Briefsbeta

Bilingual

A sufficiently comprehensive spec is not (necessarily) code

12 hours ago
  • #LLMs
  • #software_development
  • #specifications
  • A comprehensive specification describes a set of possible implementations, while code is a single implementation from that set, so they are distinct unless the set contains exactly one program.
  • A specification is sufficient if it requires no further refinement; it's acceptable as long as any implementation within reason satisfies the specifier, even if it isn't fully detailed.
  • Specifications are abstractions of code, and more precise specs correspond to fewer possible programs, with refinement meaning a spec narrows the set further.
  • Non-programmers often struggle to write formal specifications, as seen with tools like Cucumber, highlighting that creating good specs still requires programmer skills.
  • Even with LLMs generating code from specs, language vagueness and LLM non-determinism mean a spec might not consistently produce the desired program, underscoring the need for precise, code-like specifications.