Re: hello mailing list

Martin Klang <[email protected]> Tue, 14 Dec 2004 02:03:01 +0000
Newsgroups gmane.text.xml.o-xml
Message-ID <[email protected]>
Hi Alex,

sorry for not replying in more detail sooner - there were many 
interesting points in your mail that I want to reply to.

> I wonder if the MLML discussion has gotten into Microsoft'S
> Common Runtime Language/Language Interface. I'm not
> particularly familiar with it myself, but it seems they've
> spent enormous amounts of money and time researching
> aspects that must intersect MLML concerns.

To be honest I have daydreams of a complete MLML toolset - compiler 
(with multiple backends), debugger, interactive visual interpretor - as 
a real .Net killer. I agree that there is or should be overlap, but I 
have no idea what Microsofts take on XML languages currently is. There 
has been talk and rumours about X#, an object-oriented XML language, 
but I've not seen anything concrete.
I think that the .Net CRL is probably the closest thing currently 
available to an abstract, language agnostic code representation. Java 
Bytecode doesn't really do it - you can produce byte code for the JVM 
from other languages but the code and VM purpose is very specifically 
Java.
The potential of a neutral intermediary format is huge: if you can 
allow components written in various languages to operate seamlessly and 
with no penalty or overhead, then the choice of language (Java, o:XML, 
Haskell...) can be made based entirely on development - not deployment 
- requirements. For some purposes you might use a domain-specific or 
bespoke programming language, or create a dialect of an existing one. 
Then the entire project - with parts and library code written by 
different teams in different languages - can either run interpreted on 
an MLML engine, be compiled to Java bytecode, or assembled by a GCC 
backend for any number of platforms...
This might sound far-flung, but the o:XML tools are already moving in 
this direction, and I have great plans for the future...!

> While I find o:xml quite interesting, and I will
> certainly follow its development, it is the XML
> sytax that most interests me. XML processing aside,
> I'm not particularly convinced about internal method
> implementation in XML. However, I've found projects
> like srcXML, cppXML, and JavaML not generalized enough.
> There really should be a standard OOP XML schema
> considering but not dependant on a particular language.

I'm hoping that MLML can be that, and that o:XML + Java (two quite 
different languages) will provide a working example to prove the design 
and implementation.
Currently I'm undecided about the most useful level of abstraction for 
MLML. Specifically for constructs like 'if', 'for' etc. It seems that 
trying to settle on common constructs that are general enough, and 
still capture subtle differences in semantics between eg Java and C, 
seems impossible. It might be more useful to treat them as abstract 
constructs just like with operators, and let each language define their 
own.
Eg define/use construct as such:
<mlml:construct name="o:for-each">
  <mlml:param name="select" type="Expression"/>
...
</mlml:construct>

It seems natural and provides the means for dealing with similarities 
and differences between languages - for example when writing language 
translations. Verbose, of course, but for something like MLML that is 
not an issue.

> Imagine tiny web servers that delegate web service
> requests. Drop an o:xml XMLet in a director and instantly
> have persistance, multithreaded, multiplatform, mulidelicious,
> objects flying around. Is a potential use of o:xml?

One of many (could we call the o:XMLets 'omelettes'?)!
I like the way you think Alex - big!

regards,

/m