Re: Java and Other Languages: What Gosling Really Said
Posted: Mar 24, 2006 6:38 AM
> I think that Goslings comments are really quite moderate
> and don't boil down to "Java is better."
Quite politically correct interpretation, but we should look between those lines for once. Gosling's baby is Java, he is defending it, he is going to say Java is better after all.
> This attitude seems to pervade the minds of die hard
> ruby/php supporters. I can think of no statement as
> blatantly simplistic and wrong as the following:
> "when Java JVMs got better, no one needs to invoke C++"
> No one. Not one single person? Look, my bread and butter
> is Java/C# coding and I much prefer coding in those
> languages than C++. But even I have found places where
> C++ is the right solution. This all or nothing attitude
> towards software development is really very silly and is
> to the detriment of the developers who espouses it.
"No one" was a figure of speech, meaning "the majority", easily understandable for those not in the nitpick business(!).
My bread and butter is Java/C++ too, but I never ever had to write even a single line of code of C++ for the Java programs I have worked on. In our company we have even done real-time applications with Java (Radar console with real-time video image!) without writing anything in C/C++.
The point of my post is that as a language matures and gets better, the need to interface with lower-level languages decreases. Right now Java is in the state that it does not really need interfacing with C++ for performance reasons, because Java's computation model is just as fast as C++'s.
The same goes with Ruby: when it matures, its computational speed will be the same as Java's and C++'s.
The real reason for using Ruby now is not performance of the code, but performance of the developers.
> Whoever coined the phrase "the right tool for the right
> job" deserves a medal (or something...). More people
> should wrap their minds around that advice.
Generally the idea "the right tool for the right job" is a good one, not quite applicable in programming though; programming is much more complicated than any other business. The time it takes to bridge two languages together could easily be spent in implementing customer's requirements, provided that the language provides the needed tools. In other words, it is better to use "one tool for everything" in programming, if this tool can do everything: it saves time, it raises productivity, it reduces cost and frustration. And in programming languages, IT IS possible for a programming language to do everything, provided it is structured properly.