java

Which part of simplicity don't they get?

May 24, 2005 17:37:42.694

I just love this quote from an SD Times story on Java platform evolution - Graham Hamilton writes:

We are resisting the temptation to make Java language changes in Mustang. We recognize that James Gosling achieved a genuine masterpiece with the simplicity of the Java language design, and we want to be very cautious in evolving the core language.
But at the same time, languages do need to evolve, and we are exploring a few key changes for the Dolphin release. We’re interested in introducing direct support for XML into the Java language. Many Java developers work with XML, and we’re interested in finding ways of smoothing that integration.

Simplicity? Of Java? Who are these people kidding? Compared to C++, perhaps. I'd guess that the author of this piece has never seen (possibly never even heard of) Smalltalk, Lisp, or Python. Simplicity my foot :)

And "direct support for XML" in the language? You have to love that - after telling us how "simple" Java is, he implicitly admits that it's lacking in power, since they have to extend the language in order to make XML easy to deal with. Hasn't been a problem in Smalltalk - I've had few XML issues in BottomFeeder or Silt. Then again, I wasn't dealing with a language designed by the sort of people who think "final" classes are a good idea, either.

I'm not sure whether this part should make me feel better, or worse:

The Java language is only one of many languages used with the Java platform. As part of Dolphin, we are planning to add a new Java Virtual Machine instruction, which is targeted at so-called “dynamic languages,” such as Groovy or Python. These languages need relatively elaborate mechanisms for executing method calls, and it seems that providing direct virtual machine support will both accelerate execution for these languages and provide final indisputable proof that the Java platform and the JVM are targeted at more than just the Java language.

Elaborate mechanisms? You mean things that VM teams have had in Smalltalk and Lisp VM's for - I don't know - about 2 decades now? It's nice to see that Sun is catching up with the latter part of the 20th century.

Comments

Obsessions...

[murphee ( http://www.jroller.com/page/murphee )] May 24, 2005 19:33:53.000

James, the one thing I'll never understand about Smalltalkers is their obsession with Javas "final". Why aren't there any rants about C++ or C# "virtual" (C++/C# methods are final by default, unlike Java where everything is virtual by default). "Final" is just an additional feature that allows you more control over the inheritance... so what's the big problem that this has to be brought up by you (or other Smalltalkers) whenever the name "Java" pops up? Wouldn't this time be better spent on... hmm... lets say getting more universities to teach Smalltalk so that the language might get some noticeable mindshare after 30 years of existence?

BTW: You ask if Graham has ever heard of Python... yet a couple of lines down you have quote where he mentions 'dynamic languages,' such as Groovy or Python'... hmm... I'm not good with conclusions, so you need to help me with that....

On "elaborate mechanisms": maintaining stuff like blocks/closures is different from simply pushing a stack frame and jumping to an adress; stuff like continuations (for Ruby,...) also need different handling from ordinary stack allocation of activation frames... So yes, the mechanisms for allowing dynamic languages to run with good performance on the JVM require mechanisms that are a tiny bit more "elaborate" than the existing ones;

Please keep in mind that Sun has never promoted the JVM as a platform for any language other than Java; the fact that it has become home to many other languages was not planned nor endorsed by Sun. It's Microsoft who claims that the CLR is perfect for all languages... (where "all languages" means "all languages with the semantics of C# or something close to that").

Actually,

[James Robertson] May 24, 2005 20:13:28.000

Sun made some noises about the JVM being the end all, be all VM early on, and then ignored the entire area until now. Color me unimpressed.

You say:

James, the one thing I'll never understand about Smalltalkers is their obsession with Javas "final". Why aren't there any rants about C++ or C# "virtual" (C++/C# methods are final by default, unlike Java where everything is virtual by default). "Final" is just an additional feature that allows you more control over the inheritance

Additional control? In the straightjacket sense of control, perhaps. Why don't I bring up C/C++? Well, they don't come up that often in the Blogosphere. I am of the opinion that no serious developer should be using C/C++ for application level work at this point).

As to "elaborate mechanisms" - Gosling and crew knew about that stuff when they did the VM, and ignored it. It's now going to be hard to add in without adding complexity, due to their utter failures of imagination...

Java + XML = Simple?

[Patrick Logan] May 24, 2005 22:34:36.756

Not just the simplicity of Java...

What does it mean to "integrate XML" into the language? And how could that be simple? I suspect like the work done at MSFT Research on integrating XML with C#, the result will be somewhat limited to a subset of XML. There will be compromises.

"Please keep in mind that Sun has never promoted the JVM as a platform for any language other than Java; the fact that it has become home to many other languages was not planned nor endorsed by Sun."

I cannot prove it, but I am 90% certain around 1995/1996 I had a quote from Gosling that the JVM would be extended in some ways to support other languages. That was just before the onslaught of "Java the Wedge Against Microsoft" as opposed to the earlier "Java the Applet Language". Once Java became a weapon rather than a technology I've seen no mention until the recent rise of the agile languages.

[] May 25, 2005 4:21:29.289

The fact that they need to EXTEND the language to provide simple support for XML shows that the language is not expressive enough. What next? Extend the language for relational data? Or RDF? Or the next industry fad, whatever that is when it comes along? The real question is: why won't they let me extend the language in the way that *I* want? Why not extend the language to let us define simple APIs, instead of extending the language to support the latest fads? That means: minimise the syntax, give us lightweight syntax for closures and/or hygienic macros.

[Adam Vandenberg] May 25, 2005 14:06:21.849

C++ programmers don't have much time to blog, they're too busy trying to get all their coding done.

 Share Tweet This
-->