OOP promotes modular based development; has a universally understood language, design patterns; and faciliates distributed programming. For seasoned programmers OOP is a godsend; but it’s becoming ever more difficult for newbies to get a foot in the door. The learning curve continues to increase as the Web development world becomes more sophisticated and converges into full OOP.
In contrast this sophistication has lead to more frameworks and open source libraries coming to life; making life much easier for those who use them. Ruby on Rails (RoR) for example employs the MVC design pattern framework. The inner workings of RoR have been encapsulated so well developers do not think twice about concepts such as Data Mappers, Business objects, Presentation layer, Inheritance, Factories, Adapters, etc etc! It no longer matters for those using the framework because all the complexity has been thought through and handled by the clever people who created that framework.
It seems most developers are veering towards framework based application development. PHP alone has a ton of frameworks: CakePHP, Symfony, CodeIgniter, the Zend framework are but just a few. The good old days of inline spaggetti code and “one man built from scratch” sites are numbered; the spaggetti code days weren’t even good anyway! Soon enough we’d all be using a framework or open source library of some sort to build all our websites.
Finally I should mention; the real reason I think frameworks are thriving is not because it dumbs things down for the rest of us but because clients are becoming more and more in tune with what’s possible these days and want more for their money; yet continue to demand quick turnarounds. So a framework is good for reducing stress; and of course, easing the heavy leg work involved in building kick-ass web applications.