Hey, I'm Luke Siedle maker of things technical and creative. I'm a full stack developer by day. Musician and writer by night.

← Home

Using the right tools for the job

There's an incredible open source community out there, building incredible tools that make developing websites or applications faster, and easier. It's awesome that there's so much to choose from, but this can start to become a little overwhelming, especially if you fall into the trap of thinking you need to use all of it.

The truth is, the right tools for the job depend on the job. If you're using five tools for a job that only requires two, then you're probably wasting time, instead of optimising your time. There's also something to be said for simplicity, and code maintenance. If you're building a simple Wordpress integration, and you're using Coffeescript to write your jQuery, you're going to make the next guy's life a bit more difficult. If you're building an app where Coffeescript contributes to an elegant codebase, then it's a better idea.

I'd even advocate against using libraries like KnockoutJS for simple websites, unless the component in question is tough to develop without the aid of some heavy-duty DOM manipulation. The truth is, not everyone is versed in all of these libraries, and it's actually going to make the project more difficult to maintain in the long run. I once heard of a guy using AngularJS just to hook up some form validation. Angular is an incredible tool, but you don't use jet fuel in your car to get from A to B.

In a sense, I think that's where PHP also fell a bit short, since it tried to be the tool to rule all tools, and has since been compared to a double-clawed hammer. Wordpress has also come to be the supreme overlord of CMSes. People are using it for everything except blogging these days. I can't really complain too much about it, because it's such a large part of our business (integrating Wordpress sites), but it does make you wonder. Isn't there a way for us to get back to something simpler, or are we going to keep adding on to all the bulk until one day every website can read mail (see Zawinski's law of software envelopment). I know that one day I'm going to get a spec from a client that involves selling products online, and imitating a social network, and reading mail, and that's the day I'll seriously consider hanging up the old keyboard.