- Related Stories
-
Partnerships light up Sun's Java show
June 30, 2005 -
Sun taps Java for RFID
June 29, 2005 -
Sun cools down Linux desktop plan
June 28, 2005 -
Sun makes case for open-source schooling
June 28, 2005 -
Sun outlines future Java standards
June 28, 2005
(continued from previous page)
in is there shouldn't be an unsafe mode.
What do you mean by unsafe?
Gosling: They have a notion of managed code and unmanaged code. Managed code is the kind you can make security and reliability statements about. (But with unmanaged code), you can't depend on anything anymore. Memory corruption is indistinguishable from correct behavior. It's pretty difficult to analyze what a program is doing. C programs (a type of unmanaged code) tend to fail in mysterious ways. It ends up having deep implications about how security mechanisms work. In C, you have to be able to lie about the identity of things, and in Java, you're absolutely forbidden from lying about the identity of things.
What would it take to get Microsoft to join the Java Community Process (JCP)?
Gosling: I don't have a clue. Ask (Sun Chief Technology Officer) Greg Papadopoulos.
Would you like to see things back like they were in that six-month honeymoon period?
Gosling: I would love to see them collaborate with the rest of the community of the JCP.
You just released Sun's Java application server as open-source software through the GlassFish project. Are there lessons you hope to learn there that might apply to the possibility of releasing Java Standard Edition (the foundation of Java) as open-source software?
Gosling: Maybe. Just about everything we do about the way Java SE is run is very much like an open-source project. The major dividing line is our license has this testing requirement. When we've done surveys of places that use Java really heavily, the whole testing thing turns out to be a really big issue. There's all the folks in the open-source community who on the one hand say, yes, we're going to test, we just don't want to agree to test. It's conceivable we could some day (release Java SE as open-source software). A lot depends on how comfortable the community gets.
There are a lot of negative examples that make us really nervous. If you look at people's experience with JavaScript (a language for advanced Web pages that's not related to Java). There are interoperability issues there between all the different flavors of JavaScript that are nightmarish for people doing Web page authoring. If you want to make it run on this browser, make it this way. If you want to make it run on that browser, do it that way. People in the Java world look at the JavaScript manuals and go, that's a horrible thing.
But with Java, companies like BEA Systems would add special features that would be available only if you ran the software on their Java application servers. So Java code wasn't so portable after all.
Gosling: Yes, that's a problem. But at least the way it's always been done is that at least these special features are special features. There's a facility in Java about package naming. When you use an API (application programming interface), you have to explicitly use what's a public standard API--java.something-or-other--or are you using one of the corporate proprietary ones--com.bea.something-or-other. It forces you as a developer to be explicitly aware. The developers really cared about portability. Every time they have to write com.bea, they feel the claws biting into their skins. One thing difficult in the JavaScript world is that you can't really tell that you're using a feature specific to this browser or that browser.
Also, the way things have tended to evolve is you get one application server vendor who will come up with some idea, there will be general acknowledgement that it was a good idea, and often that would turn into a JSR (Java specification request). The company's second or third version of that would be within the standard Java framework.
Can't you release Java as open-source software and control compatibility through branding? You could require software to be certified before it's allowed to use the Java name.
Gosling: There's been a lot of discussion about that. Sun is a democracy, and some believe it could work and some people don't. Right now there are more nays than yeas.
Are you in the nay category?
Gosling: More often than not I'm in the yea category. But I have to admit I go back and forth.
Compare working on Java five years ago to today.
Gosling: The big difference in the last five years vs. the first five years is that Java has become a central part of many gigantic, mission-critical systems. That requires a paranoid conservatism. When you've got large banks clearing hundreds of billions of financial transaction every night, small bugs have big consequences. Early on, we could do all kinds of crazy stuff, but now we have to worry hard about who we actually affect. Every bug we fix causes problems for somebody who had done a weird workaround. It becomes a very meticulous discipline.
Through projects such as Groovy, Sun is talking about moving the worlds of Java and scripting languages closer together. But I confess I'm not sure how exactly programming languages are different from scripting languages such as PHP, Perl or Python.
Gosling: Your confusion is well founded. There's an awful lot of loose language. The terms tend to mean different things to different people.
When people talk about scripting languages, they often talk about things that are more toward having a developer be able to slap something together really quickly and get a demo out the door in minutes. How fast the thing runs or how well the thing scales or how large a system you can build tend to be secondary considerations. In the design of Java, we didn't care so much about how quickly you could get the demo out the door, we cared about how quickly we could get a large, scalable system out the door. We ended up making difficult decisions. In general, scripting languages are a lot easier to design than the real programming languages.
The Java design is at two levels: the Java virtual machine and the Java language. All the hard stuff is at the JVM and below. If you can build a scripting language that targets the JVM, you get a certain amount of both properties.
So you're executing script in a JVM?
Gosling: Yeah. All the Java libraries are available to things written in Groovy. And Java applications can use Groovy. They can incorporate Groovy scriptlets.
See more CNET content tagged:
James Gosling, JavaOne, Java, Sun Microsystems Inc., trade show






- Shave.
- by katamari June 29, 2005 7:49 PM PDT
- Shave your face, you look like a bear.
- Like this Reply to this comment
-
(6 Comments)