cover

what makes a program elegant

## robin k. hill ### https://cacm.acm.org/blogs/blog-cacm/208547-what-makes-a-program-elegant/fulltext

the criterion of efficiency looms large in production programming (perrin, 2006)

brief, but not a slave to brevity and elegant design artifact is sleek and spare in its utility, minimally gratuitous

first requirement is minimality

programmers are looking for the opposite of tedious

simplicity alone isn’t enough brevity alone isn’t enough

“the C loop control: while(i++ < 10) is indeed brief, but its elegance is debatable. in architecture, this would be brutalism (wtf?) EXPLAIN WHY THIS MIGHT BE BRUTALISM

a pre-requirement is for the program to work, to be correct

second requirement is accomplishment

(it acutally need to do what it says it will do)

the constraints are the ones that do make us appreciate the elegance of a program (and expertise is indeed necessary – justify why? because beginners only see one way? is elegance always a reduction from a first step?)

elegance is work that does it all with graceful assurance and economy

elegance is “don’t repeat yourself”

modesty (don’t overdo it, to find a too elegant solution, sacrificing operability, and particularly inter-operability)

and then finally revelation: it should be self-explanatory