“I’ve read that Java has just overtaken Cobol as the most popular language. As a standard, you couldn’t wish for more. But as a medium of expression, you could do a lot better. Of all the great programmers I can think of, I know of only one who would voluntarily program in Java. And of all the great programmers I can think of who don’t work for Sun, on Java, I know of zero.”
….
“If Microsoft used this approach, their software wouldn’t be so full of security holes, because the less smart people writing the actual applications wouldn’t be doing low-level stuff like allocating memory. Instead of writing Word directly in C, they’d be plugging together big Lego blocks of Word-language. (Duplo, I believe, is the technical term.)”
Ive had a link to that article sitting on my desktop for a week now and i still havn’t read it. It doesn’t surprise me that it would turn up here.
There’s just something about Java that isn’t quite right. Im not sure if its the Bean standard which encourages programmers to reduce OO design to properties and gibberish where methods have no meaning and objects have no state, or just the fact that you can write great code in C++ that works and looks like Java if you simply adhere to some decent naming standards.
I mean, what does Java really offer ? Garbage collection, speed reduction, byte code, reflection (cool but horribly abused), security, shared static memory (eek). The write once use anywhere mantra never fooled anyone (atleast no one whos ever tackled classpath issues or the xml configuration rot that infects every project called …4j).
Writing code in Java just makes my brain go to goo. I can’t think in an environemnt where everything feels bloated and Ctrl+Space are the only two key strokes you need to know to call yourself a programmer.
The fact is very few programmers care enough to write clean readable code all the time. Very few programmers care enough to establish consistent naming conventions and semantics for method calls and libraries. This is what Sun acomplished. Java can be credited with doing a lot for jargon and style but is there really anything revolutinary about it ?
C++ will be around for a long time yet, and even longer if people wake up and realise that there’s more to it than STL and MFC. It simply takes a much more disciplined, much wiser programmer to write good code in an unmanaged environment.
Unfortunately C++ attracts syntax geeks who care only for the latest in boost:: template metaprograms and worship STL like it were the collections library from god ( hopefully they know not to use List::size() ). Its hard for people to conceptualise writing readable code in C++ becuase there are very few decent examples out there. Java attracts the kindof people who wan’t to write easy, clean, testable, and readable code. People who can’t be trusted with a length of rope but have some inclination for asthetics and stability.
I think the middle ground is where i want to be.
Yes I agree.
What made java a success was the breadth of the class libraries.
You really notice that with .NET as well. All the basic building blocks are done for you in C# and you can concentrate on what really counts. Sometimes you are forced to go in a certain direction or with a certain storage type – but you quickly learn to go with the flow – in the end its better. You worry less about the fine grained problems of ‘what, where & how’ and start to worry about the more critical algorithmic issues of ‘when, where and why?’ 🙂
Of course the next move is libraries of ‘Patterns’ but thats the ultimate goal of the MetaWrap Project 🙂