Prime Mover of Java's Port to Linux Interviewed 28
jg21 writes "After Java 5, what will become of Calvin Austin now that he's lead engineer - and spec lead - in charge of J2SE on Linux? This interview shows him to be Sun's most personable developer asset after James Gosling. (Gosling BTW, who famously uses Mac OS rather than a PC, has a Linux box and uses the X support on OS X to run Java 5.) Asked what feature in the new Java edition he considered coolest of all, Austin without hesitation replied "Metadata" - the spec lead for that particular feature, Austin's former colleague at Sun Joshua Bloch, was headhunted recently by Google. Now Java, Linux, and Google would be quite a combo. Maybe that's what's fueling all the recent speculation that a Google browser would probably be a browser, feed reader, blog tool, desktop search, online search, gmail, news reader, photo editing, and online photo publishing all rolled into one."
Slashdotters actually like Java! (Score:1)
Maybe this is a sign that the slashdot community has a large volume of closet Java Geeks.
Or, it could be because the powers that be accept Java related posts over posts on how the Moller sky car is going to be released next week along with Duke Nukem Forever.
Re:Slashdotters actually like Java! (Score:2)
Text of the story (Score:5, Informative)
Here is is, in case any of you actually read.
Yakov Fain writes: I was able to catch Calvin right before the plane from San Francisco to New York where he'll be presenting the new features of the Java language to the New York Java Users Group this week.
YF: Please tell us about yourself and your role in the Tiger project
Calvin Austin: I'm the J2SE 5.0 Specification Lead, JSR 176 in the Java Community Process. The J2SE 5.0 expert group consists of 18 members including all the major industry partners and JVM porters.
YF: What are the main new features of the language being introduced in J2SE 5.0?
Austin: Four main themes ran through the release.
1. Ease of Development. These are the first significant updates to the Java language since 1.0 was released. The main ease of development features are generics, metadata, enhanced for Loop, enums, and autoboxing.
2. Monitoring and Manageability Monitoring a JVM using JMX and SNMP protocols, enhanced diagnostics, a low memory detector.
3. Performance and scalability. Faster startup time using class data sharing and automatically tuned server configurations, something we call "performance ergonomics."
4. Desktop Client. A refreshed new cross-platform look-and-feel called Ocean. OpenGL hardware acceleration for intensive graphics apps.
YF: You probably have received lots of different suggestions from the developers community about the "missing" features of the Java language. How did you make a decision?
Austin: Generics received the popular vote, it was one of the top 20 "Requests For Enhancements" (RFE) on the Java developer connection site. All 20 RFEs were added as potential features. For the other language features the final decision was made in the respective JSRs, like JSR 201 and JSR 14. Sun was the spec lead for both those JSRs and so also involved James Gosling and others in the initial reviews.
YF: Large corporations usually switch to newer version of any programming language with substantial delays. What do you think is a major selling point of the new version Java?
Austin: One of the major selling points of this release is that you'll be able to slot in a 5.0 JRE to your application and benefit from the improved performance, monitoring, diagnostic tools, and reliability without changing a line of code. However there are also benefits in also recompiling and updating your source code. Using Generics, the compiler can alert you to runtime class cast exceptions, the concurrency API gives you the flexibility to re-write code to have improved thread safety.
YF: Did you run into any compatibility issues between Java 1.4 and Java 5.0?
Austin: Running applications should be fine. The one thing developers need to watch for is that enum is now a keyword as the javac compiler language is 5.0 by default. This applies to the assert keyword that was added in 1.4
YF: Are there any performance improvements in the new version?
Austin: Startup time is improved even though Tiger is a bigger release, server side benchmarks with performance ergonomics are greatly improved on machines with two or more CPUs.
YF: What are the benefits for fat client Java applications?
Austin: Improved startup time, skinnable API (synth), reduced jar file sizes for downloading when using the pack API.
YF: Let's forget about the corporate world for a minute. What do you think is the coolest new feature of the language?
Austin: If I just restrict myself to the language it would be metadata (JSR 175). We've only scratched the surface of its potential. For the platform, it's a bytecode insertion for profiling (JSR 163).
YF: In some cases new features of a programming language not only improve the language, but also may change the style of programming in general. If you were a college professor or a Java trainer, would you teach your students using some new concepts of programmi
Java on Linux -- Ugly step child... (Score:5, Interesting)
Complaints;
While these are minor annoyances, they prevent me from relying on Java being there on client systems or other servers, so I don't even put Java on unless it is necessary.
Re:Java on Linux -- Ugly step child... (Score:5, Interesting)
I agree that some of the defaults on the command line are questionable decisions (requiring -source 1.4 instead of the other way round, -ea being off by default), but these are hidden from the end user in distributed applications.
Or to put it more succinctly: which is quicker to install, Apache or Tomcat?
Re:Java on Linux -- Ugly step child... (Score:2, Interesting)
The last one that tried the script-setup-thing was a major pain. It used InstallNoWhere (InstallAnyWhere it is called by its makers) which needed Java 1.3 to run and brought its own JRE 1.3 with it. At first it did not run at all because the script that called it (the Java-Part of the Installer) had a workaround for some Linux-Glibc-Bug som
Re:Java on Linux -- Ugly step child... (Score:2)
Compare the oracle installer with Eclipse....
one sucks
one rocks
shrug.
Re:Java on Linux -- Ugly step child... (Score:2)
Google Browser (Score:2)
Of course it might end up windows specific, in which case it will have a tough fight against MS providing the same capabilities. If it is truly multi-platform and uses a shared d
Rube Goldberg (Score:2, Offtopic)
"speculation that a Google browser would probably be a browser, feed reader, blog tool, desktop search, online search, gmail, news reader, photo editing, and online photo publishing all rolled into one"...
which, if true, would show that Google is being sucked into the Dark Side, becoming another msft.
After all, it probably wouldn't be an OSS effort, and the hyper-integration is reminiscent of the Win/IE integration trick.
OTOH, if it WERE oss, how does this swi
Re:Rube Goldberg (Score:2)
There's nothing wrong with close integration on its own, just that there is less room for error in each of the parts.
Intel EM64T support!! (Score:3, Interesting)
It's been filed on Sun's bug parade more than once and never resolved. The JVM throws a SIGILL immediately because it's calling the 3DNow! Prefetch instructions. Doesn't do this on Windows, just on Linux.
Come on, I'm willing to bet most people with EM64T and Opteron/AMD64 machines are running Linux, NOT Windows!
Re:Intel EM64T support!! (Score:2, Informative)
SUN claim support on AMD64 in Linux as noted on their website [sun.com].
Re:Intel EM64T support!! (Score:3, Informative)
Re:Intel EM64T support!! (Score:2)
Re:Intel EM64T support!! (Score:5, Funny)
having trouble with jdk 1.5 generics (Score:5, Interesting)
The problem is with Arrays.. you know old fashioned String[] bob = new String[13];
For testing purposed I created my own MyQueue class which supports generics:
public class MyQueue {
Now, I need to use something to contain my queue elements, so naturally I want an array like:
protected Element[] myelements;
However as soon as I try and do this in my constructor: myelements = new Element[size]; I get a compile-time error claiming I can't use generics and arrays this way.
So I'm forced to either use Object[] myelements and cast everything back to (Element) when I return things, or I can use Element[] myelements, but in the constructor I need to initialize it like this: myelements (Element[]) new Object[size];
Fucking retarted.. not to mention I need to javac with the -Xlint to avoid all the warnings about casting in this way. Just to double check I wanted to see how they impletement ArrayList in java 1.5 and sure enough they were doing it the same way I was... with all the warnings and everything.
WHY?! Yes I realise I could use an ArrayList to store my queue data, but I kinda want to use lower level stuff like an array, the way java.lang api is.
Re:having trouble with jdk 1.5 generics (Score:2)
my class declartion above should read:
public class MyQueue<Element> {
and the way I had to initialize my container array in the constructor was:
myelements (Element[]) = new Object[size];
(it cut out my equals sign for some reason).
Re:having trouble with jdk 1.5 generics (Score:2, Informative)
BTW, have a look at java.util.Queue, and its implementing classes. Sun finally got around to providing a queue.
Meta-data is only the beginning of the story (Score:4, Interesting)
Sun losing top engineers (Score:1, Insightful)