Seeking Perfection

I find myself always seeking for the perfect code, the perfect library, the perfect system. Is it healthy? My employer might rather a code monkey which will mass produce web applications. Sure, the code would be a pain to maintain, but we would make more money. Or would we?

I was contracted by my company for awhile to one of their clients. While I was there I started making my own JavaScript tree menu in my spare time. The developers I worked with asked why I would do something like that. There are already a handful of tree menus free for download on the web. I was doing it because, one, I thought it would be fun (they thought I was crazy), and two, none of the tree menus gave the functionality I sought. I ended up making a tree menu that is really nice, has a context menu, and works well with Ajax. I have used it in several projects.

I also started building a PHP framework around that time. Pherret was created in my spare time (another “painful” project my coworkers said) because I thought it would be fun and because I didn’t like what was already out there? Arras Template, which became part of Pherret, is a unique and fun templating system. And finally I put together my own JavaScript Ajax library, borrowing some from others like Prototype.

Not being content to use others’ code, others’ frameworks, and others’ hard work is my downfall.

Or is it? I am now the expert at my company in JavaScript. I know the inner workings of what a framework needs to deal with. I know what a template system needs to be able to do, and some of how to do it. I have gone from knowing very little about programming (just 2 years ago) to being a well-versed and well-rounded developer. The drive that has me writing things that have already been done, or even just the drive that has me developing in my spare time instead of just in the workplace is what has made me valuable as a developer (credit andrew). I suppose we call the type a “hacker”. The person who loves to get their hands into code as a hobby.

I’m glad I’m a hacker. I program in a way that my code becomes better and better, day after day. My applications become better layed out. Better organized. Easier to maintain.

5 Responses to “Seeking Perfection”

  1. Derek Says:

    I think your would be rich if you didnt just program frameworks all day you framework to application ration is like 3 to 1 :)… Frameworks are fun but sometimes its better to use other peoples code and get to work on the actual product faster. and alot of times other people take care of alot of stuff that you would skip over on little for fun projects “testing, documentation, testing, documentation, testing”.

  2. Linus Says:

    I am in the exact same boat. I think well-organised source code is like poetry, if that’s not too much of a stretch. :) For a while a couple of years ago, I tried to completely convert myself into object-oriented PHP (in version 4 of course, which I am still using), but I am the only developer for a certain very sizable website and had to relinquish that drive in order to get projects done! Have you heard the term “analysis paralysis”? It explains itself. Lately though, I have been working with some scripts, some have been developed over the entire 2 years, and as I caved more and more to the “just get it working” approach, the amount of code duplication has become horrendous. I would love to organise the site’s scripts into classes but am just looking for the time and energy. Great website and congrats on being a hacker!

  3. Raphael Says:

    Hi Jacob,

    I’ve used your javascript date formatter in a google module of mine.

    I’ve credited you in comments in the code, but I just wanted to make sure that was ok with you as well.


  4. Gilciana Says:

    Hi, i’m from brazil and I really liked your blog. Congratulations.
    Nice job…
    We are in different areas of business, but I enjoy learn new things …

    best wishes for you

    Gilciana/iguassu falls/ brazil/ 09:53 am

  5. Karen Says:

    It’s great that you are striving for perfection. It’s much better than sitting and waiting for the things to change themselves.