Alan Perlis was the first winner of the Turing Award in 1966. In 1982 he published  a set of 130 epigrams on programming. His aim, he explained, was to capture—in metaphors—something of the relationship between classical human endeavours and software development work. "Epigrams," he wrote, "are interfaces across which appreciation and insight flow." This post offers a few aphorisms. My dictionary tells me that an epigram is 'a pointed or antithetical saying', while an aphorism is 'a short pithy maxim'. Whatever they may be called, I hope that these remarks will evoke some appreciation and insight.31. Premature design commitment sows the seeds of crippling technical debt.
32. Lord Kelvin said that knowledge without numbers is meagre and unsatisfactory: without clearly named concepts knowledge is fugitive.
33. The axe of Murphy's law is poised, ready to sever any causal link of a cyber-physical system.
34. At software engineering scales, the only certain property of the physical world is that nothing is certain.
35. Sensors and actuators give the machine its API for governed world behaviour; the axiomatic model of causal links gives the API its semantics.
36. The map is not the terrain, but many administrative systems try to make it so.
37. Every use case must explore how a human user might behave differently, for what reasons and with what consequences.
38. Always welcome criticism. The boy who said the Emperor was naked was not a qualified member of the tailors' guild—but he was right.
39. Counting correctly is a valuable skill; but not everything is reducible to numbers.
40. You can't outsource understanding of the governed world to the physical engineers: your understanding must be your own.
 A J Perlis; Epigrams on Programming; ACM SIGPLAN Notices 17,9 September 1982.
Links to other posts:
↑ Triplets: Triplets are system behaviour elements: (Machine+World=Behaviour)
← Ten Aphorisms: Ten short remarks
← Ten More Aphorisms: Ten more short remarks
← Yet More Aphorisms: Ten more short remarks
Post a Comment