A Portrait of the Programmer as a Young Man

For me, Java reads kind of like James Joyce (yes, THAT'S where the title of this post came from). Most serious programmers have at least dabbled in Java just like most avid readers have quit reading at least one of Joyce's novels halfway through. But then there are those whack-jobs that really just can't get enough of Java or Joyce and have all but written their own JVM (or read Ulysses, including the dozens of pages without punctuation)-- and it turns out that most of those guys are actually geniuses. For some reason Java and Joyce appeal to some deep place in the recesses of brilliant minds, but to the rest of us, it's just too abstract (and AbstractImpl).

Enter thegoldenmule. Yes, another literary reference (click on the "About" link to find out about that one). I'm one of those on the outside looking in. I read books and pretend to understand, I program and act like I really know what a monad is; but in reality Java and Joyce escape me. I know they exist and I know how to uneasily wield their power, but I have no idea how they actually came about or what's going on just under the skin.

It's one of those things I pray comes with experience. I'll read more books, I'll learn more languages and platforms and someday-- probably after I grow the requisite computer-science beard, I hope to understand the Why of Java and Joyce.

2 Comments

  1. Alan Klement

    This thing with Java is, that it's a mature language and has had many, many features added to it. Some people abuse these features and so you end up with APIs and libraries that are gnarly.

    I suppose that was the motivation of 'Java: The Good Parts'.

    Speaking on that, the other thing is that there are SOOOO many libraries out that that I wonder who does 'pure' Java work anymore. I see many Java developers who really just tie together libraries together, cross their fingers and hope their program works.

    Compare this to C - AFAIK, it's barely changed since it was created and it's complexity threshold makes it necessary to program well - keeping simple 'hackers' out.

    Hence, Linus' rants on such a mentality and 'high level' languages:

    http://lwn.net/Articles/249460/
    http://article.gmane.org/gmane.comp.version-control.git/57961

  2. thegoldenmule

    Those are great links you posted, thanks!

    You're totally right. The reason I think I can't see the brilliance of a language like Java is because of the mentality. If you sit around a table with Java guys they will talk about gigantic problems that can be abstracted and solved using gigantic, off the shelf solutions. It's like layer after layer of libraries and abstractions and sitting on top is your application.

    Really I'm expressing my amazement at how Java people can do that. I don't understand the Why of it, I just can't get into that mindset.

Leave a Reply to Alan Klement Cancel reply