Main Contents

Java: It’s better than you think, for reasons you haven’t realized you already know.

William Grosso @ April 28, 2006

I recently went to a thought-provoking talk on how languages influence software architecture. And, while I wouldn't claim to understand the deep subtleties of programming languages and architecture better than Peter Seibel, I'm mostly convinced he's absolutely wrong when he claims LISP is a better programming language than Java.

I've run into a lot of people who've claimed this over the years. And while I respect their arguments (with the exception of the "Blub paradox", which isn't a paradox and, at its core, is an attempt to marginalize people by pointing out that "Blub programmers" are inherently incapable of understanding the reason they're wrong), I've never fully articulated why I find their arguments unconvincing.

In a nutshell: most people who argue about programming languages are dead wrong because they're discussing the impact on a single (expert) programmer or (complex) architecture, and the most important aspects of programming language design are mostly about the social aspects of programming.

Anyway. Some of that thinking can be found in these slides I gave 2003 as a CSU Sonoma Colloquium talk. I think it holds up well and is an interesting talk (though there are quite a few things I'd change if I gave it today).

Java: It's better than you think, for reasons you haven't realized you already know.

Filed under: Java, Oldies but Goodies, Talks | Share on Facebook

1 Comment

  1. Andreas Manessinger August 24, 2006 @ 2:24 pm

    The claim that Java has outstanding community support is riduculous, at least if you are used to Perl and CPAN. Whatever you need, there is one place to get it. The solution will be simple and easy to learn. OK, sometimes it will not work at all, but you’ll have figured that out in minutes.

    Compared to that, Java software is hard to find, because it is hosted by different communities, much is commercial or suffers from the “My HelloWorld is better, so I’ll make it shareware”-virus that plagues platforms supporting binary distributions. Never ever have I searched an answer to a Perl problem and found a website that wanted me to register for a fee before they show me the answer. In the Java world that’s commonplace. Add the silly naming conventions for Java projects (a “tomcat” is a servlet container, a “hibernate” is a database framework, an “axis” is for SOAP, etc.) and you have big chances to miss out on one or the other software that would have helped you. And, have I mentioned that all those pieces of Java, once you have found them, turn out to be rather complex frameworks?

    Sure, Java has Eclipse, the arguably best IDE in the world. I use it daily and I could not be happier. It’s the best tool I could wish for, because it makes writing all that code, that I wouldn’t need to write in a higher-level language in the first place, much less painful. Doh! I am addicted to Eclipse, because Java is not managable without such a beast. For Perl I’ve never needed anything fancier than Emacs in its basic functionality as a text editor with syntax highlighting.

    In my view Java is much better than C/C++, but almost anything would be better. It’s on the same level as C# and much inferior to Perl/Python/Ruby for everyday programming. Sure, not for writing database engines, but I probably wouldn’t write them in Java either.

    Anyway, just my two cents :)

Leave a comment