Wednesday, December 17, 2008

Java Programmers Are Idiots?

My brother just sent me a funny quote. I don't know if it is true or not:
entwickeln Sie lieber überzeugende Lösungen anstatt viele Stunden mit Coding zu verbringen? Ist Ihnen die Produktivität Ihres Teams wichtig?

Mark Driver, *VP Research von Gartner*, kommentierte kürzlich:

"Here’s a simple equation. In terms of mental fortitude...*
1 Smalltalk developer = 2.5 C++ developers
1 C++ developer = 1.5 Java developers*"
You don't need german to understand. Of course it can not be true. How can anyone measure mental fortitude? And how does it related with productivity is another issue.

There is a famous email exchange from Linux Torvald claiming the advantages of C versus C++, here is a quote:
If you want a VCS that is written in C++, go play with Monotone. Really.They use a "real database". They use "nice object-oriented libraries". They use "nice C++ abstractions". And quite frankly, as a result of all these design decisions that sound so appealing to some CS people, the end result is a horrible and unmaintainable mess.

This however is quite interesting since I am probably not the only one to have seen the disastrous effects of too enthusiastic abstraction professionals in Java. This is why many Java projects are utter crap. But again, not everybody makes this mistake. Some people know how to build good things. As the result of Java being popular, we have many crap programmers with pseudo genius theories you don't find in C or Haskell.

On another subject, I seriously wonder why we don't have more distributed compilation in Java as in C/C++. I am tired of seing those core doing nothing while compiling.

1 comment :

  1. This below might sound a bit (quite?) strange. I've been programming since I was a kid - more than 25 years now. Maybe I'm getting a bit crazy after going through Basic, COBOL, 6582 assembly language, Pascal, C, C++, Perl, LISP, whatnot, and a few _really_ weird languages (say, consisting mostly of % and * signs).

    As a developer myself, I completely agree with you about Java. I work mainly in Java from about 8 years. Not because I like it, but because I have to - the company I work for has products exclusively in Java. Makes me sick sometimes. As a cure, for various hobby projects I intensively code in Perl, C, and assembly for PIC microcontrollers.

    Pearl I use because of the feeling of complete freedom. Sorry for getting poetic, but for me writing in Perl feels like flying - effortless, precise, you can have go fast here if you want, make a little pirouette just for fun there. It feels smooth. No comparison with the concrete-building-blocks feeling of Java.

    C and assembly I use because they feel clean and pure. The cleanliness of an assembly program for example, is something that cannot be appreciated by a person who only knows Java. I had tried explaining to my Java colleagues that to me a complex but clean assembly subroutine feels a lot like a Bach fugue. Everything is precisely where it should be, it has that cascading free-flowing feeling. Feels good from purely aesthetic point of view. They just look at me like I'm crazy. Maybe I am.

    On top of not being a pretty language, in my opinion Java is getting severely bloated. There is rarely something so ugly as an overarchitectured application - using factories where you don't have to, accessor hierarchies just for the heck of it, and nested interface hierarchies, because they make you look smarter. The end result looks and feels horrible. I don't care if it works or not - it it just absolutely ugly.