Re: Re: Not quite a Swell FLOOP?
- To: mathgroup at smc.vnet.net
- Subject: [mg37484] Re: [mg37456] Re: [mg37430] Not quite a Swell FLOOP?
- From: Sseziwa Mukasa <mukasa at jeol.com>
- Date: Fri, 1 Nov 2002 01:43:08 -0500 (EST)
- Sender: owner-wri-mathgroup at wolfram.com
On Thursday, October 31, 2002, at 04:40 AM, Andrzej Kozlowski wrote: >> >> A place I believe OOP would naturally benefit Mathematica is in the >> area of >> XML and particularly implementing the DOM IDL. There seem to be some >> problems with Mathematica's XML implementation. I suspect a good OOP >> approach might help in preventing some of these problems in the >> future. As >> regards implementing the Document Object Model IDL, 'Object' is it's >> middle >> name. > > Since I know absolutely nothing about this I will diplomatically agree. > But I am now sure if this XML business is really related to the > Mathematica programming language? In its purest form an XML DTD is essentially a set of S-expressions. Mathematica expressions are simply M-expressions which can easily be converted to equivalent S-expressions. Since the Mathematica kernel is obviously very adept at the manipulation of M-expressions there is little reason to suspect it would be difficult to work with XML. In fact if you add downvalues for the heads of the S-expressions given in a DTD you immediately have an XML document processor. The XML DOM then is a specification for an engine for navigating the S-expressions in a DTD using an imperative language, ie. the read-eval loop used in LISP and Mathematica is implicit in the DOM. Sounds like it's time to restate Greenspun's tenth rule of programming "Any sufficiently complicated C or Fortran program contains an ad-hoc, informally-specified bug-ridden slow implementation of half of Common Lisp." I also suggest Paul Graham's take on the utility of object orientation in LISP like languages http://www.paulgraham.com/noop.html. If you follow the link at the bottom of that page and the next you will reach an email exchange that is a near copy of this current thread. Incidentally, my personal preference in programming languages is not LISP, I prefer strong typing and lazy evaluation a la Haskell (haskell.org for the curious) but am trapped using imperative OO languages to put food on my table. Regards, Ssezi