Q&A With James Gosling, Father of Java
Minaloush writes to tell us that in a recent Q&A with Sun's James Gosling, the father of Java fielded questions on the GPL, security, the role of Java in the enterprise. "If you come up with a good software development tool, that makes life easier for the developers and they can get their job done quicker, then the first thing the manager says is 'oh you've got free time on your hands. Do this extra thing'."
I thought he was also the father of Java? Whatever happened to that guy? Pretty unjust to not give him credit, right?
Isn't the old license quite a bit more restrictive than just passing a test suite? I mean, many Linux distros have either been requiring that the J2RE and so forth be downloaded from sun.java.com or they've been requiring that you download 3rd party implementations based on the Sun source like blackdown. It doesn't sound to me like the license was ever as laisez-faire as Gosling seems to be implying here.
My blog
Declining popularity? I remember recent studies showing that Swing is the most used UI toolkit, I believe Java is the most used language for corporate and commercial web applications, and Java programmers are in higher demand than ever. What makes you think it's declining in popularity? Maybe it's lost its "cool" factor to Ruby and Python, but not popularity.
Here's a couple of links from this year to back me up:
http://www.jasonkolb.com/weblog/2007/02/programmi
http://www.tiobe.com/tpci.htm
http://www.mhall119.com
I've read TFA, it's always interesting to see was Gosling has to say on Java...
Java is such a huge success, my favorite quote from TFA:
"...you can't send a parcel through FedEx without a bunch of Java code being involved. It's almost impossible to execute a financial transaction without a piece of Java code being involved."
So true... And GMail, and eBay. Read the enlightening paper on how Java / Spring is used at Voca (in the UK) to process real-world money, scaling at insane levels.
That said, to me, the best Gosling quote I ever read was in an Artima interview. Basically, Gosling said that he regretted not having gone "pure interface" in Java. Java could have been a much cleaner language if Gosling had gone this way: remove the "abstract" keyword/construct from the language (and hence remove the "protected" keyword too, which makes no sense once the "abstract" keywork is gone). And prevent concrete inheritance. So Java would have been a more OO language, where only inheritance of interface would have been possible. Some people (a tiny minority) program in Java in this way. Most people do not get that concept: that OO is all about ADT (Abstract Data Types) and that a concrete implementation should be a detail. To most people this is heresy, because "you've got to type more characters, you've got to create 'needless' interfaces,..." (in modern IDEs most of these problems are non-existent for you can delegate/compose using a single shortcut). Remove the abstract keyword today from the language, and you can millions of Java developers screaming and whining endlessly. It is sooo sad Gosling didn't do it before releasing Java to the public. Every single program out there today in Java would be more OO-ish and more testable.
It is interesting to note that Bjarne Stroustrup, on that very subject, has explained a great many times that "people simply don't get it". Here's a quote on the same subject by Bjarne Stroustrup:
"Since then I have consistently pointed out that one of the major ways of writing classes in C++ is without any state, that is, just an interface."
This is OO 101. And yet hardly anyone can understand this. I'm into OOA(nalysis) / OOD(esign) and it is not always trivial to do OOP using a 3GL (third generation language, like C++ or Java) but with some thinking and discipline it's possible to get close to "real OOP" using Java. Sadly this is not what 99% of the Java programming world is doing.
It has been said that democracy is the worst form of government except all the others that have been tried.
-- Winston Churchill
Unix is the worst operating system; except for all others.
-- Berry Kercheval
Those who cannot remember the past are condemned to repeat it without a sense of ironic futility.
-- Errol Morris
Those who do not understand Unix are condemned to reinvent it, poorly.
-- Henry Spencer
Those people who think they know everything are a great annoyance to those of us who do. (Isaac Asimov)
If the Java plugin didn't freeze the browser while downloading and run at glacier-speed, it would be decent for a browser. Java is a nice language, especially with frameworks like Echo2 (try the demos, it rocks). What hurts Java is that Swing and the plugin suck rather hard.
That 1/3 is predominantly the MS shops that already were using VB, etc. .NET adoption has become stagnate proportionally over the last 18 months. People just are not moving to .NET from other platforms, just upgrading from VB....
Website Hosting
if(suspect.equals("Patrick Naughton")){ //nothing }
//nothing }
That is of course assuming suspect was initialized.
Try this:
if("Patrick Naughton".equals(suspect)){
That'll avoid the possibility of a NullPointerException.