W3C home > Mailing lists > Public > www-html@w3.org > December 1999

Re: Tag Soup (was: FW: XHTML)

From: Arjun Ray <aray@q2.net>
Date: Sun, 5 Dec 1999 12:12:26 -0500 (EST)
To: www-html@w3.org
Message-ID: <Pine.LNX.4.10.9912051135200.27929-100000@mail.q2.net>


On Sun, 5 Dec 1999, Frank Boumphrey wrote:

> <arjun>In fact, this is precisely what Mosaic did, and precisely why
> Mosaic seemed so "robust".  It was too *stupid* to get into trouble.  
> </arjun>
> 
> And this is exactly why it's successor netscape got into trouble!! 

Not really.  Time ran out for Netscape.  They never got the chance to take
their scripting engine where they wanted.

> This paradigm of NOT building a parse tree 

Well, Mosaic/Netscape did have a parse tree of sorts (it was a list.)  
The trouble was a tight coupling of tags with streamed formatting
primitives.  This forced any true tree-like processing to be done via
explicit recursion.  Thus the two-pass parsing of tables, e.g., was
accomplished by embedding the entire table as a (sub)window context - to
keep track of which, again, made it sensitive to the absence of end-tags: 
no tag, no "action", after all.  

The killer, though, could have been the synchronous loading of Mocha,
thanks to moronic ideas like document.write(), where the script-parser
would have to recursively call back into the tag-parser.  There was a
rat's nest of recursion levels to keep track of that the programmers never
really managed to sort out.  (Remember how JS wouldn't "work" inside
tables?)  But that's probably getting ahead of the story we never saw: the
point of document.write() was precisely to enable an eventual dynamic
styling facility - by writing another whole bunch of tags.  It's important
to remember that "we gotta do it all with just tags" is an integral
component of the Tag Soup paradigm ("Need something done? Use a tag!")

The problem was that the 2.0 series went through a prolonged beta cycle
shaking out the basic bugs (long before they could implement what they
would have wanted to document.write() back in), in turn forced by the
arrival of Explorer in Fall 95 (with goodies like <MARQUEE> and <FONT
FACE>)

> makes it incredibly difficult to applydynamic style, reflow etc.

No.  All Netscape needed was "insertion points" into the basic lists (the
way that "tagging" works in Tk, for example.)  I think they ran out of
time - dynamic styling was probably not high on their priority list, but
Microsoft making that a bullet-on-the-box marketing issue turned that into
a misprioritization.
 
Arguably, Explorer's championing of CSS (and more importantly, that MS's
marketing machine made an issue out of it) was probably the single most
grevious factor in Netscape's demise.  When Netscape came out with things
like <FONT> and <CENTER> in their 0.9 beta, this was an affirmation of Tag
Soup *against* what they though were sillinesses like stylesheets.  (For
the history buffs:  0.9 beta was announced to the Internet on Oct 13 1994.  
Three days before, on Oct 10, was the announcement of the first draft of
the CSS spec.  Yes, folks, CSS is *older* than Netscape.)  In other words,
Netscape's whole "philosophy" was to implement an *alternative* to
stylesheeting, and unfortunately for them, Explorer won that battle.

If Explorer had continued with its Fall 95 espousal of Tag Soup, Netscape
might have been able to compete for much longer.

> Netscape have had to rebuild from the ground up!

Only to support things like CSS which are *alien* to the Tag Soup
paradigm.

> (Now Mozilla looks like a really good browser.)

I'll have to take a look.  The project started in Apr 98.  A year and a
half to alpha says that they're still trying to square as many circles as
Explorer seems to have done.

Tag Soup is still alive.


> ----- Original Message -----
> [followed by comprehensive quote]

Please don't do this.  Thanks.

[Getting even minimally competent reader software will help.]  


Arjun
Received on Sunday, 5 December 1999 11:50:14 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 27 March 2012 18:15:40 GMT