The title of this session's description is, "Gosling, the Father of Java." What a title! Imagine going to a party and introducing yourself like this: "Hi, I'm James Gosling, the father of Java." I suppose that would work better as some parties than others, like maybe a LAN party, but I digress. (I should point out that Gosling's own title of his presentation was different.) It's always interesting to hear the CTO of Sun's Developer Products group speak.
Here's how the session went:
Gosling was also introduced by Larry Tesler. A little-known fact about Gosling: He was the first to integrate Emacs on UNIX.
There was an article in the Economist last year that James first talked about (The Bubble? What Bubble?). Basically, the dot-com bubble burst was more of a Darwinian experience than the end of technology. We're on the road to ubiquitous computing. Your average Mercedes may have 150 CPUs. He said, somewhat jokingly, "The guys at Volvo do theorem proving for the code...the guys at Ford just sort of try it out."
Java's role is as a conceptual framework that spans the network. It enables a homogeneous view of a heterogeneous reality. Your average cell phone has the average computing power of a PC from only a few years ago. The US is a kind of a technological backwater for cell phones, where you see a lot of innovation in Europe and Asia. Someone in Hong Kong might have 20 cell phones to match different outfits.
Gosling has been working on issues like complexity. Also from the Economist, "Make it simple..." There are battles against complexity everywhere we go. The lines of code, sizes of teams, sizes of APIs. The number of Java users is huge. The largest application he can think of is a popular online auction company that has 3 million lines of code. A lesser-known IT company has 10 million lines of code in one of its banking applications.
Complexity. Complexity has the Peter Principle. Basically, in an organizational hierarchy, people are promoted to their level of incompetence: someone who can do his or her job well is promoted until he or she can't do it well anymore. Gosling noted similarities between Java and other technological advances. Technology can enable people to do more, but it may not make life easier, they just end up doing more things.
To combat complexity, you build tools and establish standards. Think of "block box" interoperability. Sometimes Sun hears, "You're so [darn] inflexible," but standard mostly boil down to a matter of opinion.
Gosling trivia break: The first release of GNU Emacs was actually "GosEmacs", with an altered copyright notice.
Security matters. The JavaSmart card went through an NSA review meeting. Not one of the high points in Gosling's memory, but the JavaSmart passed the review. They opened up their source so people would attack the software, so it could be fixed. Eight or nine years ago, a Swiss bank used to reboot it's C++ software because of a memory leak that couldn't be tracked down. Now the bank is 100% Java.
Tools. They cover the whole development process. They edit, compile, and debug. One of his favorites is something called BlueJ. It's an IDE for teaching people how to program who have never programmed before. There's the Java Studio Creator; a powerful tool, but it's difficult to learn. A big goal in tools today is trying to make the complexity go away.
What's going on in the Java world? JDK 5.0 was just released. The Java Community Process handles the progression of Java technology. There's a great resurgence of a rich UI experience. Go to jcp.org and check out the cell phone 3D discussions (Writer's note: it could be at http://jcp.org/en/jsr/detail?id=184, but post a comment to the blog if you find it).
Ever try to balance a pencil to stand straight-up on your palm? Gosling showed an example of a computer that does it. You can even blow on or poke at the rod and the computer will re-balance it. Apparently, the timing on that computer was better than that on the F-16 fighter jet.
The BMW iDrive system, aka "the sexiest Java code around," is an interesting use of Java (http://www.bmw.com/e65/id14/3_a91_idrive.jsp). It uses a tactile-based control mechanism (http://www.immersion.com/). An interesting note about Java in cars: the software for all of a car's options is pre-installed.
That was the main presentation. Now comes the questions. Here they are, very paraphrased:
Q: Have you been involved with the talks with Microsoft and interoperability between C# and Java?
A: There are no plans in interoperability.
Q: If you look at Java, it's another object-oriented language, right?
A: The advancements are in networking and security. The really interesting things that drive shifts are environmental. Java was driven by the network where you have to learn about security and reliability. We're learning things about scaling that may be above the level of the Java language. A lot of the progress is in tools and ways to refactor code. There's data to suggest that Moore's Law is stalling. Is it flattening out or stopping?
Q and A: There was some talk about the latest case between Kodak and Sun.