It was all a lie — Part 2

A comment on Javalobby caught my eye and expresses the root of what It was all a lie was all about:

In this day and age I should be profiting from two decades of code written by brilliant and talented programmers who came before me. I should be able to take advantage of the billions of line of code written to do everything I could possibly think of doing. That was the promise of object oriented programming right? Code reuse remember that?

Instead I have to re-invent the wheel in every language I use for every project I start.

I want a better language and better tools. Being a programmer has nothing to do with useless mind numbing work that passes for programming these days. I want my language to enable me to express myself freely and not get in my way, not punish me for making the wrong decision too early….

(From Javalobby)



  1. To some degree, I agree. on the other hand, I am frequently rather happy that the sizes of the things I can reuse continue to grow. I cannot imagine generating a pdf from cobol, java, c#… however I do know of several libraries that do the job just fine. I would rather not reimplement a handler for the smtp protocol – good thing I don’t have to. the list goes on. Sure there could probably be more reusability, but that is up to us to create. When I am working on a project and come up on one of those things that should a simple call to a component, I take the time in my spiffy IDE to create a new project, define the API that I need then, and use that library. later, as the need arises (and as you note it nearly always does), I end up reusing the library again…. reusability is my responsibility – I’m sorry others don’t always feel that way.
    another good example – the commons code from jakarta. as they wrote more and more systems, they realized they were reinventing wheels – and started to create a library of common components….
    We can do this to.

  2. I will also agree that there is a growing pool of useful objects out there. And this pool certainly makes my life as a developer much easier.
    Bah … I just don’t know ….
    As I’m embarking on my latest project (as it seems with all of my projects) I have an *enormous* barrier of “crap code” that I have to write first before I can get to the crux of what differentiates what I’m doing from other projects. I know for a fact that this “crap code” has been written dozens of times before but because of licensing, differences in languages, narrow sightedness of the original developers, language contraints, different standards, etc, I have to burn a significant amount of time. Boils the blood it does!
    Thanks for your comment!

  3. I share your frustration at how much “wasted time” there is out there, but a different way to look at it is biologically. The same exact wheel isn’t really being reinvented…they’re all very slight mutations. When the “perfect wheel” is found for all cases, people will probably re-use it happily (assuming that: 1- It’s made available and 2- people think to look for it first…a common problem).
    Somewhat related, my brother and I (Thought River) have started our own commons package available under the LGPL:
    Perhaps it’s something to file into your personal toolkit.

  4. Hiya Brandon! I will certainly agree that there are some aspects that are evolutionary. But the amount of “crap code” (the boring, mostly repetitive, necessary infrastructure code that one has to write) that you need to get to the point of being evolutionary is really what I’m talking about.
    I’ve used generators in the past for some this “crap code” (and I’ll have to take a good look at your offerings). The problem always seems to be handling these mutations that you’re talking about. I’m going to have to give this some more thought to be able to articulate my concerns better. You have certainly given me something to noodle over.
    Take care!

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 )

Twitter picture

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

Facebook photo

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

Google+ photo

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

Connecting to %s