Laziness is a good quality for a programmer to have. Code reuse is smart, it’s fast and efficient, and leads to less bugs (depending on how popular the code you use is).
I know this.
I’ve known this since university. Do I do it? I’m starting to, I’m slowly learning it. This is relevant, because prior to setting up Wordpress on my server, I developed roughly 4 version of my own PHP blogging platform. Two of them were relatively usable though still buggy, and 2 of them never made it past the full execution stack stage.
Now, when I phrase it like this, it doesn’t seem so bad, but I was constantly referencing Wordpress admin screen shots and had installs of Wordpress, Joomla and Drupal to pick and choose interface elements and functionality that I liked from these software applications.
I had planned to start from scratch and slowly build up the featureset of my application to match those of the more popular open source applications. And to get experience I planned to use these applications… but only in a sandbox, which was not publicly accessible.
At the same time as trying to develop, in my own time, my own blogging/CMS solution, I’m upgrading the CMS we use at work. This upgrade is a complete rewrite, migrating the funcitonality from ASP Classic to ASP.NET. This involves designing and developing, on my own, a fully functioning CMS system with support for page editing and a news section.
So I was spending all time at work during the day creating an ASP.NET CMS, then coming home at the end of the day to fire up Zend Studio and do the exact same thing in PHP. I was reluctant to program, and the application was stalling, and I wasn’t blogging.
And the worst, I wasn’t aware of why I was stalling, and why I didn’t want to work on it. I would spend my time at home goofing off, watching movies and chatting to friends. At least I had the intelligence to sit down and design a theme for my blog, once the code was finished. But I still wasn’t developing the blog engine, and the whole process became this big elephant in the room that I was trying to ignore, blocking the doorway to me finally starting to do something I’ve been wanting to do for a while.
I didn’t realise the lunacy of what I was doing until I stepped back and started programming something else entirely unrelated to both PHP and blogs. Once I had done so I realised a shocking truth: I don’t even like programming websites.
At least, not in my own time.
Programming blog engines and CMSes isn’t something I want to spend all my time doing. I want to work on other projects, push the boundaries of my own knowledge – but the blog/CMS thing is a rut that I’ve fallen into. Been there, done that, I know the problem well and I know the solution well.
So, something to take away from my experience is this:
Unless your business/hobby/passion is writing blog engines, just use an off the shelf one. Your time is better spent actually blogging than writing a blog engine. You learn more, it’s generally more interesting, and you’re creating content sooner.
And isn’t content what it’s all about in the end?