## 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
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
(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