Skip to content
13 January 32009 / Robin Wellner

Reduntant tools and libraries

When you are a programmer, everywhere you look is a possible project. No tool, application or library is perfect, and suits our needs completely. When using open source tools (I’m going to use the word “tool”, instead of “tool, application or library”, so I don’t have to type all that), you can always tweak them, but that is not what I (and many others) do. We create a completely new tool. From scratch. In this post, I am going to explain why this is harmless — and even useful.

First point

This one is simple: practice. You can’t expect someone to become a good or even decent programmer if he or she has had no practice. Whether you are payed or do it as a hobby, you need experience. And if you need experience with programming, why don’t you practice programming something you need? I think I personally think I got more experience from recreating tools that weren’t exactly the way I wanted to be them (the Windows Start menu, music players, text editors…) than from everything else.

Second point

Another argument for making “redundant” tools is diversity. The more tools there are around, the higher the change somebody else finds what he or she needs. When I boot Windows, I use Notepad2 as a text editor, when I boot Linux, I use Mousepad, nano or KWrite. Some people use SciTE, some people use vi or emacs. Each of those came to existence because the makers felt they could make a better alternative to other text editors. And none of them is necessarily better than the other. Diversity is good.

Third point

You (or someone else) also might actually want to use the tool you’re creating. It will not always be good quality, but sometimes, the new tool might be really good. Where would we be now if Linus Torvalds had thought back in 1991: “Well, I suppose I could just use MINIX.”?

Final point

Why writing from scratch sometimes is better than tweaking: source code is a pattern. If you try and change that pattern (by editing the code), you can’t change much. Without a complete rewrite, source code is stuck in a certain shape, and many dramatic improvement on, for example, memory usage, speed and features can not be achieved.

That is pretty much it.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: