Learn a PHP framework? Damn right you should!

by jon on August 9, 2008

We must face the fact that we are on the brink of times when man may be able to magnify his intellectual and inventive capability, just as in the nineteenth century he used machines to magnify his physical capacity. Again, as then, our innocence is lost. And again, of course, the innocence, once lost, cannot be regained. The loss demands attention, not denial.
–Christopher Alexander

This week, Ian Christian’s entitled “Should you learn a framework?” ended up on PHPDeveloper. The article is excellent, however it seems like such a non-issue in other web development circles. Would a Python developer write an application without Plone or some equivalent? What about Ruby developers?

The Java and .NET communities have moved far past such questions. Not only have frameworks been design requirement, they’ve also affected where businesses position their software development. For example, a .NET shop might specialize in traditional ASP.NET, CastleProject’s full stack, the “Guidance Packages” from the Patterns & Practices group or the upcoming Microsoft MVC framework. Within Microsoft itself, you can still pick a framework geared towards the kind of development is required.

All frameworks encourage thinking of subsystems and the development of patterns. Christopher Alexander, the building architect who inadvertently gave birth to object-oriented programming, would be proud to see people using object-orientation to solve the ever increasing complexities of software development.

Will it be possible then, for people to say stonily, that poems are not real, and that patterns are nothing but images: when in fact, the world of images controls the world of matter.
–Christopher Alexander

Writing code without a framework is like building a building without specifications for the height of baseboards and door handles and then asking the architect to design a custom tubing, air conditioning, fire and burglary standards. While Alexander was talking about patterns in visual language, I think the same can be said about software development.

Patterns exist in software and every time we write from scratch, we lose the opportunity of refining an existing pattern. Accepting that software patterns exist "demands attention, not denial."

Leave a Comment

Previous post:

Next post: