There is a point to be made that programming is fundamentally not an artistic but an engineering endeavor. Finding an optimal (or at least satisfactory) solution given a goal function and some constraints.<p>But if we take the view that code is to be read by humans as much as to be executed by computers, then the expression of an algorithm and the broader architecture of a program becomes a lot like creative writing.<p>Constraints are still present. Depending on the problem domain, this can be low latency, good time complexity, good space complexity, provable correctness. But readability by humans is another important constraint added to this list.<p>Hence Python has become so popular as to be completely unprecedented and Perl has vanished into the fog of history.[1]<p>[1] Notably, in a 2000 talk Rob Pike listed Perl, Java, C, and C++ as the technologies used on “high-end workstations”: <a href="http://doc.cat-v.org/bell_labs/utah2000/utah2000.html" rel="nofollow">http://doc.cat-v.org/bell_labs/utah2000/utah2000.html</a>