3 ms·
> If not, what makes software special? There is no ASCII representation of a bridge which is actually a bridge. Other engineering disciplines are in the busine
by superuser2 12y ago
> If not, what makes software special?
There is no ASCII representation of a bridge which is actually a bridge. Other engineering disciplines are in the business of producing matter with certain properties; the description of the properties is fundamentally distinct from the matter itself.
There is an ASCII representation of every piece of software which is actually that software: its source code.
This would also explain why "code as spec" goes hand in hand with modern, expressive languages: a sufficiently large C program is not human-readable as a description of its own behavior. If you want to create the program you intend to create, it is necessary to write a specification at a higher level of abstraction, then hand-translate that into C, and attempt to keep the two in sync.
Whereas one can read/write business logic in Ruby, Python, or whatever about as well as they can read/write a description of the same logic in English.
- mtVessel 12y agoA sufficiently large program in [any language] is not readable as a description of its own behavior. I think it's easy to fall into the trap of thinking this is not true for expressive languages like Ruby or Python, because there are precious few projects of sufficient complexity written in those languages. If you think I'm wrong, please show me the Ruby equivalent of an os kernel or Photoshop, and I'll reevaluate my thinking. More importantly, every program can be seen as, at some level, a description of its own behavior. But none contain a description of the system's intent. That's what specs are for.