Re: [hackers-il] Why XML caught on where LISP and Scheme failed to?
- "Nadav Har'El" <nyh@...> writes:
> On Fri, May 28, 2004, Omer Zak wrote about "[hackers-il] Why XMLObligatory disclaimer: I know Lisp pretty well, but my understanding
> caught on where LISP and Scheme failed to?":
> > As I read "Extensible Programming for the 21st Century"
> > (URL:http://pyre.third-bit.com/~gvwilson/xmlprog.html), I pondered the
> > secret of success of XML.
> I think you're misunderstanding XML. XML is was not supposed to be a
> programming language, but rather a data representation (markup) language.
> Lisp and XML are only related by the fact that both use "0" and "1" bits ;)
of XML is rudimentary. You've been warned.
Well, from the Lisp (shall I say, abstract CS?) point of view there is
no difference between program and data. If you have a lisp-like
interpreter for Omer's (or similar) XML representation you can write
code. For all intents and purposes it will be Lisp. I don't think that
anyone here will argue that the actual tokens matter.
On the other hand, representing structured data in Lisp is also
possible and frequently done. I did it myself a few times, including
writing custom tools to "lispify" and "delispify" independently
I seriously doubt though that there is a "secret" to XML's success on
the technical level. It's not the first or the last markup
language. It's not the first or the last extensible language. I would
guess ("assert without proof," borrowing an expression from Wilson)
that big business support + some familiarity of syntax to those who
had been using HTML "forever" (on the Internet timescale) were the key
factors. I also suspect that XML is successful as a structured data
representation, with custom tools written in every programming
language known to mankind, including, significantly, Lisp. Since
anybody can write their own tools one can live with structured data
representation and a small (a.k.a. limited) tool, and without a
full-blown Lisp interpreter (but maybe a JVM :).
Of course, there is Greenspun's 10th Rule of Programming:
"Any sufficiently complicated <insert your favourite language here -
OG> program contains an ad hoc informally-specified bug-ridden slow
implementation of half of Common Lisp."
All the rest is likely to be religious wars. ;-)
 One can argue that XML tags afford you some additional capabilities
w.r.t. error checking, since the closing tag echoes the type of the
opening one. Any decent editor will match parentheses in Lisp code
though, making such checking very easy.
 IMH(umble)O the same is true, to a significant extent, for Java.
 The original said, "C or Fortran" - OG ;-).
Oleg Goldshmidt | pub@...