Friday, February 1, 2013

Solved Problems

Recently, I read an interview with Tim O'Reilly, founder and CEO of O'Reilly Media, Inc., the company that puts out the ubiquitous tech books with the animals on the front (and, oddly enough, a great cookbook). O'Reilly facilitated the open-source movement, as well as the "maker" movement, through publishing technical manuals, and through hosting conferences and summits. In short, he gave us a way to talk about community engineering, programming, and creating in general. A banner under which "makers" can unite.

I consider myself a maker. I enjoy problem solving, especially in concrete ways. When I come up with a website, a service, or even just some snippet of code that people can use (even if they don't), it's a rush. I've written about this "superhero" feeling before.



So, when I am presented with a problem, I want to make something to solve it. It's just the way I am. And the fact that "Not Invented Here" is a highly recognized phrase in the programming community is a testament to the probability that a lot of us have the same proclivities.

But there are certain problems that have so many complexities and nuances that it's just not feasible within a reasonable time frame.

I think it's time for me to admit that, for me, Object Relational Mapping (ORM) is one of these problems. I've written a simple ORM library in PHP, but as SlickText expands, the data structures become more complex, and I just don't have the time to implement the features I need. These are solved problems. There are people who dedicated their time to improving ORM, and making good tools that I can take advantage of. The fact that I don't have the time is moot; The tools already exist, and people are actively improving them.

So, I'm looking into PHP frameworks, like Zend, Yii, and CodeIgniter (as well as Node.js frameworks liek Express). These have far more functionality than just ORM, but they're popular, and I should probably learn something about them anyway.

Maybe I'll enjoy them. Maybe I'll like the abstractions they provide. Maybe they will enable me to make more things, and quicker.

I have my doubts, but I can't do everything.

At least, not in a reasonable amount of time.

No comments:

Post a Comment