Simplicity, Clarity, Generality
From the introduction to The Practice of Programming by Brian W. Kernighan and Rob Pike
Have you ever…
wasted a lot of time coding the wrong algorithm? used a data structure that was too complicated? tested a program but missed an obvious problem? spent a day looking for a bug you should have found in five minutes? needed to make a program run three times faster and use less memory? struggled to move a program from a workstation to a PC, or vice versa?
The Perfect Language
I had some conversations recently about the “perfect language,” I found this great quote from Yukihiro Matsumoto, father of Ruby:
Language designers want to design the perfect language. They want to be able to say, "My language is perfect. It can do everything." But it's just plain impossible to design a perfect language, because there are two ways to look at a language. One way is by looking at what can be done with that language.
The Three Virtues
From http://threevirtues.com/
According to Larry Wall, the original author of the Perl programming language, there are three great virtues of a programmer; Laziness, Impatience and Hubris
Laziness: The quality that makes you go to great effort to reduce overall energy expenditure. It makes you write labor-saving programs that other people will find useful and document what you wrote so you don't have to answer so many questions about it.
Impatience: The anger you feel when the computer is being lazy.
The Twelve-Factor App
I was talking to a friend of mine this week and he pointed me to something I'd never heard of before. The Twelve-Factor App from Heroku. I will share the core of the philosophy and the 12 factors, but I encourage you to read them in detail at http://12factor.net/. Lots of great takeaways here.
From The Introduction:
In the modern era, software is commonly delivered as a service: called web apps, or software-as-a-service.