in reply to Any interesting philosophy of programming articles to recommend?
One "new" viewpoint that's been around for a few years, but is just now gaining traction, is
Aspect-Oriented Programming.
Sayeth the FAQ:
An aspect-oriented language is a programming language that provides constructs for capturing units that crosscut the system modularity in a principled way. These units are called aspects, and are a new unit of software modularity that encapsulate crosscutting concerns.Some good stop-and-think material.
In Section
Meditations