Jeremy has a great quote here:
I think you can almost break coding philosophies into two general camps.
- Camp #1: Coding is too hard, so let's not write code anymore. Model Driven Architecture, Executable UML, Business Rules engines, Rapid Application Development
- Camp #2: Coding is too hard, so let's make coding easier and more productive. Refactoring tools, dynamic languages, TDD, Continuous Integration, Ruby on Rails, etc.
I really like the way he puts it, I'll take door #2 as well. Except that I think that coding does have to be hard, you just have to put yourself in the right level of abstraction.