[E-Lang] Draft Kernel-E DTD & Sketch of translation to debuggable Java

Mark S. Miller markm@caplet.com
Tue, 26 Sep 2000 21:23:56 -0700


At 01:49 PM 9/26/00 , Dan Moniz wrote:
>Perhaps, but JOSS is Java specific at one end, at least. Userland made XML-RPC
>because they were dealing with a Java-less world powered primarily C and Perl,
>if memory serves. 

"Language specific" is a funny thing.  JOSS & RMI make no bones about being 
Java specific.  CORBA and SOAP claim to be language neutral.  What do these 
claims mean?  It is certainly the case that Java programs have an easier 
time with JOSS and RMI than Smalltalk or C++ programs would.  For the 
"language neutral" systems, the relative amounts of pain for clients in 
various languages may be better balanced, giving real meaning to the claim 
of neutrality.  However, this compares relative pain along the wrong 
dimension. Notice that a "language specific" system designed for an obscure 
language no one uses of might appear language neutral by this standard, 
since the pain imposed on the non-obscure languages may be balanced.

This is essentially the situation with CORBA -- even though there was no 
obscure language, there may as well have been.  CORBA has as much of its own 
idiosyncratic semantics for each language to adapt to as any 
language-specific system would have.  Indeed, I don't see how it could be 
otherwise, if the standard has enough semantics to enable inter-operability 
among objects in different languages.  So, without knowing SOAP or XML-RPC 
well enough to say this with confidence, I'd guess either
1) it's true for them as well, or
2) they haven't specified enough semantics to enable cross-language 
interoperability, or 
3) they've discovered a new principle of protocol design that they haven't 
called anyone's attention to.

Comparing pain the other way, we may say that standard X imposes strictly 
less pain than standard Y across languages A, B, and C, iff for at least one 
of these languages X is less painful than Y and for no languages is Y less 
painful than X.  It may be the case that X is designed around the semantics 
of language A while Y is designed to be language neutral.  However, if X is 
strictly less painful, there's no reason for B and C programmers to prefer Y 
to X.  I believe this to be true for the substitutions:

X = JOSS/RMI
Y = CORBA
A = Java
B = C++
C = Smalltalk

I don't know if this is true when Y = SOAP or XML-RPC, but I suspect so, 
except for the one advantage of these XML systems: a standard human-readable 
textual format.  Once I build a XML <-> JOSS converter, the 
human-readability should no longer be an issue, and we'll be in a better 
position to compare it to these other proposals.

We should expect an advantage across languages for well designed language 
specific system which are specific to well designed languages: They already 
have a well thought out semantics to start from, and good language designers 
have in general designed much better semantics than good protocol designers. 
For purposes of these points, Java counts as a good language design.  CORBA 
has a semantics that could have come from being language specific for a bad 
language.

In any case, I'm not advocating JOSS/RMI of course, but JOSS/Pluribus 
http://www.erights.org/elib/object-pluribus/index.html , which is E-specific 
in the above sense.  My immediate need for the converter is simply to help 
me debug. But to accommodate current tastes, I may eventually allow the 
connect-time protocol negotiation to negotiate to use the textual protocol.  
Given the converter, it should be painless to support this. 

Strange isn't it? Using the massive MIPS the hardware guys give us to enable 
programs to speak to programs in human-readable notations.  If a readable 
tree calls in the network and no one reads it, ... ?


>SOAP was a collaboration between Documentor, Userland, and
>Microsoft (at least in the beginning), and I don't see MS pushing anything Java
>these days, not even J++ or MSJVM.

Yup.  By winning their lawsuit, Sun may have come out behind.  Microsoft's 
C# and .NET initiatives also look like interesting challenges to Java.  If 
Microsoft plays their cards right, I can imagine a someday working on a 
compiler from E to the C#.NET virtual machine instruction set.  It some ways 
it looks like it could be a better target than the JVM for compiling E.

Thanks to Ken Kahn for drawing my attention to these.


>... The presenter
>quickly backpedeled and said he meant that the ROPE tool didn't support large
>data sets, although the SOAP standard does.

Well, at least he did backpedal ;)


         Cheers,
         --MarkM