It's Like Déjà Vu All Over Again
"You could probably waste an entire day on the preceding links alone. But why take chances? We also give you Paul Snively..." — John Wiseman, lemonodor
andyed posted some thoughtful commentary on my reponse to his comment suggesting Mozilla as a testbed environment for prototyping some core set of Xanadu's algorithms and data structures. I'll try to take this point by point.
Alas, the disconnect begins. PaulS discounts Mozilla for not providing a solid foundation for GUI, scripting, and persistence. It does, in fact, do all 3 of these things reasonably well. The persistent storage API may not be as developed as tclKit (I'm not sure) but it works. In addition to the transparent RDF profile based persistence, the fileLib has one of the most refined APIs on top of Mozilla XPCOM.
Thanks for the feedback! There's an excellent overview of MetaKit (the "Kit" portion of TclKit) at http://www.equi4.com/metakit. The things that make MetaKit most attractive to me are the transactional integrity, the memory-mapped file support, the automatic schema evolution, the cross-platform data file architecture, the multiple language bindings, and the small footprint, in roughly descending order of appeal. I'd be interested in getting a sense as to how Mozilla's persistence framework compares. I should mention, in all honesty, that "fileLib has one of the most refined APIs on top of Mozilla XPCOM" already sounds like it's going to be kludgey and too heavyweight for the purposes of rapid prototyping of persistent data structures. But I'm willing to be corrected.
What if I don't want to use JavaScript? I mentioned TclKit as a single point of entry, but if folks didn't like the idea of hacking TCL (as I don't), there are also Python and Lua bindings. There's even an analogue to TclKit called "Lux" that uses Lua instead of TCL. Once again, I have a concern that Mozilla isn't nearly loosely-coupled enough to serve in the capacity that I have in mind.
The beauty to me is the GUI. As a UI guy, a W3C standards oriented rendering engine on top of XUL is great. There are other points in this discusion well worth merit, but this post is simply to suggest that the richness of Mozilla as a client is not yet fully appreciated. [Surf*Mind*Musings]
On the contrary, I think the richness of Mozilla as a client is quite well appreciated, at least by me; see my ruminations about an open reimplementation of Groove where I mention Standalone XPCOM and XPToolkit. The issue isn't whether Mozilla or, more accurately, some of Mozilla's technologies, couldn't be used to good effect in making web-friendly software; I'm quite sure that they could. The question in my mind is whether Mozilla would be a good broad-spectrum (that is, from rapid prototyping to deployment) development platform for wholly new data structures and algorithms derived from the Xanadu work. In this context, support of W3C standards, the use of HTTP, HTML, XML, etc. are not only not goals, but are anti-goals.
It's perhaps also worth pointing out that the gzip-compressed tar archive of TclKit for Mac OS X weighs in at 925K. The StuffIt Compressed disk image file for Mozilla 1.0 for Mac OS X is 14.9M, a difference well in excess of an order of magnitude. Such an enormous difference would require quite a bit of justification in and of itself, before even delving into the issues that the various subsystem interdependencies would inevitably introduce.
The bottom line remains that while I'm sure that Mozilla is a fine web browser, and quite possibly even a good development platform upon which to experiment with web technology, what I'm suggesting prototyping is emphatically not web technology, and therefore I see a great deal of cost and very little value to attempting to prototype it with Mozilla.
7:53:54 PM