Friday, September 24, 2010

 

How Oracle lost James Gosling, father of Java

Java is a famous programming language.  It is probably the most popular language in the United States today and maybe the world.  So it is kind of a surprise than when Oracle, bought Sun - it got Java which is one of its best known assets - but lost Gosling, who invented it.

It is kind of like they got a fish but lost the fisherman.

Gosling invented much, much more.  He wrote Gosling Emacs, and while at Sun some other programming languages - plus a neat graphics subsystem.

People will argue whether Oracle made a mistake or not but for most of us, the answer is meaningless.  The heavy fact is he is not working where Java is and so Java has lost its daddy.  Gosling was deft at a lot more than just designing a new language and throwing cool feature in it.  He knew what to leave out.


Everyone knows that throwing the wrong features or too many features into a programming language is what kills it.

Look at PL/1; does everything you can imagine and stuff you would never dream of and gives you shocking unexpected bugs as a consequence.  Look at Ada, the programming language that sank under its own weight.  Pascal killed it by being simpler and cleaner.

Last but least, look at C++.  It wound up being bloated, complex, and difficult to impossible to write reliable, stable, long-running programs in it.  If you do not believe me, and you probably do not - go look up exception handling, memory management, constructors, and initializers in the spec and see if you can figure out how to handle an exception being filled off in the initializer of a constructor without leaving dangling pointers or references, partly uninitialized objects, or leaking any memory!

The fingerprints on the dagger in C++'s back, by the way, are Java.  Java handles exceptions going of in constructors just fine.  It had a clean design by a man who knew and could think about all those issues and a raft load more at once.  In C++ and a lot of other complex or messy languages, when you are struggling to do something the "right" way, and realize there is not one in the language you wish the inventor had been more like Wirth or Gosling.

The disappointment that came from reading the interview is that Gosling did not say what he would be doing next.  I think it would be pretty exciting to see him at IBM or Google.  Both companies are using Java very heavily to make billions of dollars every year.  Gosling's handiwork has been good to them.  Perhaps he could do some more for them.

Apple is another popular roost with language inventors.  If memory serves, Niklaus Wirth and/or Alan Kay worked there for a while.

At one point years ago, Gosling said Apple did not get Java.  But Gosling got an Apple PowerBook, and Apple made some of the best stability improvements in Java JDK 1.4, leading to the very robust JDK 1.4.2 release.

I have programmed a little in Objective-C and based on the software Gosling has done in the past, I imagine there are things he would really like about it as it is now and some things he would like to change about it.  I imagine there are some things Apple would like to have him figure out news ways to do things more elegantly in Objective-C too.

If you look at only the concrete things in programming languages, Apple and Gosling have done things differently in the 1990's. However, recently, Apple has added some very Java-like features to Objective-C.  And in the past, Gosling did things that are more similar to Objective-C than Java.

If you take a couple of steps back and regard something a little less tangible but perhaps even more potent, engineering philosophy - I think Apple's OS engineers and Gosling are very, very simpatico.

They like stuff that by design is hard to make fail on purpose and not fool you into doing something you think is safe when it is not, even when you are not the biggest genius on the planet with nothing else on your mind that day.

Google has a brain trust of programming language engineers right now that includes the inventors of Python and C.  Apple has lead engineers from FreeBSD and Konqueror but so far no well known, highly skilled and educated programming language inventors.

In a way, Gosling would do a very good job of providing parity between Apple and Google. And I think in a lot of ways, that is something that Google really likes.  Google seems to seek out a form of equilibrium with Apple.

I think Apple hiring Gosling would validate Google's current forays into programming language development, and also help the two companies work shoulder to shoulder each knowing the other company had peers that could understand each other.  Because they would.  Peer-to-peer matters in technology companies working together. Helps things go better and a lot faster.

The planet is pretty Gosling-compatible right now.

Labels: , , ,


This page is powered by Blogger. Isn't yours?