In this video, DHH – author of Ruby on Rails, partner at 37signals, and one of the developers that I admire most – talks about the idea of a pure programmer and whether or not programming is going to get easier as time progresses.
In the past couple of years, I’ve begun to drastically narrow the focus of my efforts into a few select technologies and there are three things than Hansson says that really hit home with me both as someone who has worked in software for several years and as someone who is now working primarily with open source software.
Recently, someone asked me if a given theme was compatible with another popular WordPress framework. The short answer is that no, it was not, but it did get me thinking: If there’s one word that’s becoming all too common in the WordPress space, it’s “framework.”
If you were to ask a handful of people to define “framework,” you would probably hear one of two things:
Novice-to-experienced bloggers would say that it’s a theme with a variety of customization options
Developers would say that it’s a way to more easily build a theme
I’m sure there are a few other responses but, generally speaking, this is what I hear and read the most.
Instead, I think that “framework” is way over used in the WordPress world and the lack of understanding has the potential to negatively affect both bloggers and younger developers.
When using frameworks like .NET or Rails, it’s easy to demonstrate how said frameworks were used to build a piece of software. But because of the nature of WordPress, it’s far more likely that people are to treat any project as either a blog or a site powered by a CMS.
In some cases, that’s true; but it’s not a hard and fast rule. Blogs and sites are just two examples of things are can be built (and, honestly, are the most typically built) with WordPress but they aren’t the only things.
At this point, it’s relatively easy to find a generator to do almost anything you want with WordPress. In fact, you can assemble an entire theme with custom post types, taxonomies, and options all without actually writing any code.
But you know what I’m talking about – generators are small web-based tools that are used to, er, generate code for you based on a couple of inputs that you specify on an interface.
Off the top of my head, I can think of…
Generators for custom post types
Options frameworks for easily creating settings pages
Generators for taxonomies
Custom theme generators
Don’t get me wrong, I think that these tools have their place in the development space (in fact, my boilerplates have even been converted to generators!).
But as a profesional developer and someone who cares about writing quality code tailored exactly for the problem at hand and as someone who wants to create the highest-quality products that I can, I dislike WordPress generators.
As far as software is concerned, I’m particularly fond of working on web applications and have spent the majority of my career focused on exactly that.
Specifically, I spent the first few years of my career working on enterprise applications in .NET. Like any programmer, I spent a lot of my free time tinkering with various languages, frameworks, and tools partly because it was fun and partly because I wanted to stay current on newer technologies.
It’s funny, though: The longer you work on web applications the more you recognize that all of them – at some basic level – come back to the same thing: getting data into the database and getting data out of the database.
Sure, there’s a lot going on between the two and there are tons things to consider but, at the end of the day, that’s what’s happening and everything else is details.