Hello there!100 2 42accounts[Exchange].firstname accounts[Exchange].lastname accounts[Exchange].firstname 0 1 accounts[Exchange].lastname
XML is a fantastic tool, but trying to beat all problems into submission with it is simply ridiculous. What on earth is Sun trying to solve with XPRESS (with they describe as a "scripting language") that requires the verbosity of XML?
The (false) laziest language designers and implementers in the world? "Grammar? Parser? Eh, just use XML." To paraphrase Matt Robinson, whenever a programmer thinks 'I'll just use XML' their computer's speakers should create some sort of cock-shaped soundwave and plunge it repeatedly through their skulls.
Patrick quoted Larry Wall in his Perl 6 talk to the effect that language designers torment language implementers to the benefit of the users. This would appear to be the opposite.
This week I'm on a SAP training course learning their XI/PI middleware application. It's built on a mixture of their legacy ABAP (COBOL like) technology and all new Java code. Internally the whole middleware engine uses a proprietary form of SOAP to send messages along their system. It's little more than XSLT with bells on but it's horribly slow and bloated.
In the class, a colleague mistyped a parameter instead of raising a sensible error message, Java dumped and he got a Java stack dump thing. I don't like the idea that a standard SAP provided JAR just falls to pieces if you send something in it didn't expect.
One thing I found interesting on the course so far has been that the other technical people all have a low opinion of Java - it's not just me. The instructor likes Java but he isn't a programmer... The more functional types seem to be more positive about Java, strange as they don't use it or see it.
Even ignoring SAP's Java bloat, they do their own XML which isn't real XML - though I've not been able to pin them down on exactly what part of the XML standard they don't support.
block{
s{Hello there!}
add{ i{100} i{2} }
i{42}
}
cond{
and{
notnull{ref{accounts\[Exchange\].firstname}}
notnull{ref{accounts\[Exchange\].lastname}}
}
concat{
substr{ ref{accounts\[Exchange\].firstname} i{0} i{1}}
ref{accounts\[Exchange\].lastname}
}
}
Yeah, still ridiculous, but compactly so! Too bad about the square brackets... though I guess you could use the {{{ }}} quoting braces.