4 ms·
And yet, we say that “programs are written for people to read.” Writing for people to read is not “very logical and very precise.” It’s “very expressive,” and
by a4isms 5y ago
And yet, we say that “programs are written for people to read.”
Writing for people to read is not “very logical and very precise.” It’s “very expressive,” and sometimes, although the part the compiler reads is correct, the thing the human infers from the program is imprecise and expressive.
Working with code teaches that code is experienced, too. We read a thing, go hunting for its downstream dependencies, learn other things… Coding is an experience as much as walking through a building is an experience.
Architects of buildings work with precise engineering, but they also craft experiences for humans. I am cautious about drawing parallels between code architecture and physical architecture, but the parallel between the work a code architect performs—creating a precise thing for the compiler and simultaneously creating an imprecise experience for the programmer—and the work a physical architect performs is much more sound.
My thesis, therefore, is that programming is the art of doing a precise thing for one audience—the machine—and a creative, imprecise thing for another audience—the human who experiences the code.
- robotresearcher 5y ago> Writing for people to read is not “very logical and very precise.” It’s “very expressive,” There’s a continuum between writing technical manuals and ‘Ulysses’, with airport-bookstand thrillers somewhere in between.
- a4isms 5y agoHey, late reply. I agree with your general point, and would add that the highest logical/precise human-readable text is more likely to be specs, e.g. RFCs, ISOs. A Technical Manual would need more attention to the human experience than a spec, IMO.