Archive of UserLand's first discussion group, started October 5, 1998.

Re: Xanadu--some initial reactions

Author:Don Hopkins
Posted:8/27/1999; 9:59:16 PM
Topic:Xanadu--some initial reactions
Msg #:10167 (In response to 10166)
Prev/Next:10166 / 10168

[Continued from previous message...]

Anyway, my take on all this hyper-crap is that it's useless without a good scripting language. I think that's why Emacs was so successful, why HyperCard was so important, what made NeWS so interesting, why HyperLook was so powerful, why Director has been so successful, how it's possible for you to read this discussion board served by Frontier, and what made the World Wide Web what it is today: they all had extension languages built into them.

So what's Xanadu's scripting language story? Later on, in the second version, they obviously recognized the need for an interactive programming language like Smalltalk, for development.

But a real-world system like the World Wide Web is CONSTANTLY in development (witness all the stupid "under construction" icons), so the Xanadu back and front end developers aren't the only people who need the flexibility that only an extension language can provide. As JavaScript and the World Wide Web have proven, authors (the many people writing web pages) need extension languages at least as much as developers (the few people writing browsers and servers).

Ideally, an extension language should be designed into the system from day one. JavaScript kind of fits the bill, but was really just nailed onto the side of HTML as an afterthought, and is pretty kludgey compared to how it could have been.

Even better, is the ability to dynamically plug-in any scripting language, without recompiling. I'm pretty impressed by some of the COM interfaces that Microsoft has developed (like IScriptingEngine), that make it possible to plug scripting language engines into the web browser and other applications, and program them in any language like VBScript, JScript, Perl, TCL, etc.

Plug-in extension languages are a great idea, because there is no such thing as the "One True Language" that solves all problems for all people, so systems should be designed from the ground up to support many different languages at once, and to smoothly integrate new languages as they are invented.

Integrating different languages together is exactly what COM (aka ActiveX) is all about. A lot of people reflexively criticize it, because they know nothing about it, other than the fact that it's from Microsoft, and the hysterical myths that Sun promotes by trying to compare it with Java. But the problem with Java, is that it was specifically DESIGNED to be the "One True Language", and NOT to integrate with other languages. Rewrite all your other languages and software in "100% Pure Java", they'll tell you. Ha.

That's Xanadu's problem too -- it tries to explain the entire universe from creation to collapse in terms of one grand unified theory, when all we need now are some practical techniques for rubbing sticks together to make fire, building shelters over our heads to keep the rain out, and convincing people to be nice and stop killing each other. The grandiose theories of Xanadu were certainly ahead of their time.

It's the same old story of gross practicality winning out over pure idealism.

It's ironic how Microsoft's COM-based Java VM subverted Sun's unwholesome intentions of making Java hard to integrate with any other language. Sun still has bees in their bonnet about that, and they have totally cut off their nose to spite their face, refusing to admit that there's anything useful about COM. (My opinion of Bill Gates is like Al Franken's opinion of Arianna Huffington: Totally evil, but very clever, practical and funny. While Scott McNealy's like Rush Limbaugh: a loud airbag Bill Clinton/Gates hater and jealous wanna-be.)

In the mean time, Netscape and almost every other company doing plug-ins has adopted COM in one form or another (Netscape XP/COM, Macromedia MOA, mFactory MOM, the list goes on and on), simply because it doesn't suck, and it solves the problems it was designed to solve well.

COM made it possible for Microsoft to develop Internet Explorer so quickly to where it is today, with all its support for scripting languages, dynamic html, and script-accessable properties and methods.

Even though Netscape loudly announced their official plans to boycot COM/OLE/ActiveX, and instead support OpenDoc, CORBA, IFC, Java Beans, rewrite the browser in "100% Pure Java", and all that other "Anti-Microsoft" stuff, they eventually gave up on all the impractical untested vapour-ware, and bought into COM (or XP/COM as they call it), for good practical reasons.

There's no use in comparing ActiveX to Java, since they were designed to solve very different (almost complementary) problems.

COM is a tool for software developers. Java is a weapon in the war against Microsoft. They were designed for different purposes. If your business plan calls for vanquishing Microsoft before you produce any deliverable software, then by all means, use Java!

Anyway, my point, as it relates to Xanadu, and is illustrated by COM (which has its own, more down-to-earth set of ideals), is that it's the interfaces, and the ideas and protocols behind them, that are important. Not the implementation. Code is (and should be) throw-away.

There's nothing wrong with publishing old code for educational purposes, to learn from its successes and mistakes, but don't waste your time trying to make it into something it's not.


[Finally, I've gotten sick of watching myself type! Condolences in retreat.]

There are responses to this message:

This page was archived on 6/13/2001; 4:52:13 PM.

© Copyright 1998-2001 UserLand Software, Inc.