Languages: Can other languages run on top of the Java Virtual Machine?
Roger Sessions comments in a recent ObjectWatch Newsletter article that Java is clearly not language neutral. The introduction to the article follows. Check the link for the whole picture.
"Is Java language neutral? This may seem like a silly question. Java IS a language. Isn't it? Maybe. And maybe not. It depends on what you mean by "Java". Some of us think of Java as being a specific programming language with an associated syntax and a set of language features (such as automatic garbage collection). Sun, however, has traditionally used the term "Java" to mean both the language and the platform (including the extensive Java platform API). In other words, Java is both what you program with and what you program to.
"I have no problem with either the language or the platform. Java is a great language, one which I have advocated since 1996 (in my book, "COM and DCOM; Microsoft's Vision for Distributed Objects"). The Java platform is very complete, and, with a few notable exceptions (such as entity beans), well thought out.
"One might argue that a platform and a language are closely related. But of the two forerunner technologies to the J2EE part of the Java platform, CORBA and the Microsoft Transaction Server, both took considerable pains to distance themselves from any particular language. The only serious competitor to the Java platform, Microsoft's .NET platform, has also been very careful to maintain language neutrality. It is hard to think of any successful platform (other than Java) that has tied itself to a specific language. Smalltalk tried something similar, and for a while appeared to be headed for real success, but eventually faded into obscurity."
Nik Boyd has built a Smalltalk environment called Bistro that runs on top of the Java Virtual Machine. He has an alternative point of view:
Language Neutrality and the Java Platform May 25, 2002 - Nik Boyd - A Somewhat Belated Response to the Assessment by Roger Sessions
Through web links, I recently found the ObjectWatch Newsletter from Roger Sessions dated June 5, 2001, which includes an article titled: Is Java Language Neutral? This article raised several questions for me, including the following. What constitutes language neutrality? What criteria should we use to judge the neutrality of a platform? Does it necessarily include complete language interoperability, or merely the ability to develop and integrate components written in multiple programming languages? Even if certain kinds of language interoperability can be achieved, what benefits does such interoperability confer? What are the natural limits of such interoperability?