Starting in the late 90's, PHP (the language) has made staggering advancements toward offering a respectable Object-Oriented model. The general PHP user community has slowly embraced the changes, but have not necessarily been motivated to conduct cross-paradigm migrations of existing code. So the procedural frameworks have lived on... and gotten bigger. But just when it seems that PHP users really have the hang of this MVC thing, SOA may breathe new life into a drooping Dupal or a tongue-tied WordPress.
To be fair, there is more to survival of CMS platforms like WordPress and Drupal than the PHP user community's stubborn commitment to procedural programming. Both are useful and widely supported software. Their shortcomings are in the underlying abstractions. For example, an application development framework, like Zend, has a more useful tool set for developers to quickly solve problems in a reusable way. While it is the nature of websites to become more complex over time, developers who have started a project in a procedural framework rarely have an opportunity to revisit that decision. The result is an accumulation of customizations with comprised abstraction choices on top of the original procedural CMS. Usually this is accompanied by a bunch of devs saying "If only we knew it would get this complex!" and "Man, this is tough to upgrade!".
What a shame that Wordpress and Drupal have provided such a user-friendly content management solution that cannot sustain growth. Seems to be the fabled shiny apple. I say think again! Have you ever seen a Drupal site hooked up to a twitter feed? Or how about a WordPress blog integrated with Facebook comments? These solutions simply wreak of OOP! But whether the objects are in the JavaScript , or in the third-party services responsible for those friendly JSON arrays, they mostly will not be found in the procedural CMS module. This trend will continue as SaaS providers become more prevalent. Beyond simply providing data result sets, there are also configurations where services provide messages already formatted for end-user consumption, a good example being
reCATPCHA. In these ways, and many more, SOA may be a saving grace for development firms that have a refined business process built around highly optimized, procedural rendering software. While Drupal and WordPress do not seem like the high-performance candidates for this job, a little clever caching in both cases and you're flyin'!
All of that being said, do I recommend starting a new PHP project with a procedural framework? Only if you do not need anything but content and theme work -- ever. But for those of you dreading massive migrations from procedural spider webs, you may have hope, brothers and sisters. SOA can provide an incremental way to stabilize the most complex, important, and risky components of your web landscape first, while maintaining the momentum of your existing business processes for everything else. This is the Agile way to do a project anyway #bonuspoints.
Comments
There are no comments