One "new" viewpoint that's been around for a few years, but is just now gaining traction, is
in reply to Any interesting philosophy of programming articles to recommend?
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.