An Alternate Browser War

I have no plans to make a full timeline out of this. I was just thinking about a small idea the other day, and the next thing I know, this came out. I had nothing better to do with it, so why not put it up here? Consider it a proof of concept, or a request for comments.

Anyway, I've seen cultural timelines on alternate car companies, alternate video game consoles, lots of alternate sports franchises, and of course alternate war machines. So, since this is where the majority of my limited expertise is, I thought, why not alternate programming languages?

And so here comes a wall of text:

From an internal e-mail at Netscape Communications Corporation, dated sometime in May 1995:
> > Any way we can push the deadline off about a week? Brendan caught a really
> > bad case of flu Tuesday [0] and has been unable to work on this thing for three
> > days now. We've pushed it off to a couple of other guys here, but they're
> > running into technical issues, and even over the phone with Brendan they
> > can't work them out.

> Sorry, no can do, the powers-that-be need this done on time or we're going

> to have to pull the plug on this project and go with Plan B.



Netscape Corporation Press Release:
Netscape Announces WebScript, the Open, Cross-Platform Scripting Language for Enterprise Networks and the Internet

MOUNTAIN VIEW, Calif. (December 4, 1995) -- Netscape Communications Corporation (NASDAQ: NSCP), today announced WebScript, an open, cross-platform dynamic scripting language for the creation and customization of applications on enterprise networks and the Internet. The initial version of WebScript is available now as part of the beta version of Netscape Navigator 2.0, which is currently available for downloading from Netscape's web site.

...

WebScript is an easy-to-use dynamic scripting language designed for creating live online applications that link together functionality and resources on both clients and servers. While languages like C are used by programmers to create new objects and applets, WebScript is designed for use by HTML page authors and enterprise application developers to integrate directly into the HTML code and script the generation and behavior of content on either the client or the server. WebScript is analogous to Visual Basic in that it can be used by people with little or no programming experience to quickly construct complex applications. WebScript's design represents the next generation of software designed specifically for the Internet and is:

  • designed for creating network-centric applications
  • complementary to and integrated with HTML
  • open and cross-platform.
...
Excerpts from various messages on [NOPARSE]comp.infosystems.www.authoring.html[/NOPARSE], in a thread entitled "Anyone done anything with WebScript?" dated between February and March 1996:

...

> > I've had a chance to play around with it a little bit,
> > and in my esteemed and heartfelt opinion, it sucks.
> > What was Netscape thinking when they let this through?
> > It looks like the CGI-scripting thing that Danish guy
> > came out with.


> You mean Rasmus Lerdorf's PHP Tools?[1]
Actually, he's
> Canadian.

Yes. No offense meant to Lerdorf, a scripting language
like that is probably perfect for personal web pages
running off of a server. But, does Net$cape really think
that this type of thing should be used in enterprise
applications?


> > They made some really bad choices in its design. Did
> > they seriously think that was a good way to mark
> > off scripts? I know they need to make it
> > backwards-compatible, but there must be an easier
> > way than extending the comment syntax. [2]


...


> > ... It barely fits into
> > the structure of the HTML, it looks like a bunch of
> > squiggly snakes got into my page and ate up all of
> > the decent code. I can't keep my tags indented
> > properly! Admittedly, I'm a little anal about that
> > stuff, but IMHO, reading code like this is like
> > trying to read a word document from the command line.[2]


> So, why do you use it then?


Like I said, if it weren't for my boss making us try to jump
on this bandwagon, I wouldn't even have bothered to learn this
crap.


> I don't see what the big deal is. The way I see it, it adds
> a whole new dimension to the web. No more static pages,
> you can make them behave. Just because it isn't an
> object-oriented (read: "overly complicated"), dynamically
> typed (read: "full of dangerous potential syntax errors")
> language full of curly brackets doesn't mean it's not
> modern.


Even if they didn't make it fully OO, they could have at
least gone partway: add in some structs, keep the API in
methods that could be accessed off of objects, so you can
group them according to what they do. I mean, every
language out there is going OO. C++, Java, even VB sort of,
what's going to happen when they want to talk
to these languages?

Just looking at the function names in their API reminds
me of Windows programming (er, um, so I have heard...
cough, cough)


> You have to understand that the simplicity is in
> the complexity. WebScript essentially creates a new
> paradigm in the world of web page design, nay,
> programming. In fact, it's probably a new paradigm
> for scripting in general.


Now you really sound like you've tasted the koolaid.


...


> As for it being usable by people with no programming
> experience, it took me a week to get it to where I could
> do something actually useful with it beyond just writing
> text on the screen. Looking up API references, variable
> syntax, trying to figure out the type schemes and all of
> those shortcut symbols, it was almost as bad as when I
> first learned regular expressions! I tried to get my
> business partner to look at it, he's only ever done
> HTML, and he gave it the old college try, but he
> couldn't make anything out of it.


Hah! Well, there you go.

From "Pipeline", PC Magazine, June, 1996:

A New Contender on the Server Side of the Browser Wars:

Unless you program web servers, you probably haven't heard of Cocoa, IBM's server-side page design language. Released earlier this year, it has already found a widespread audience among early adopting web designers using CGI capable servers, such as Apache. Up until this month, though, it cost a small license fee for non-commercial use.

The big news is that Big Blue has now removed the licensing fees, which previously ran about $100 per server instance. The Cocoa CGI program is now available for free from IBM. In addition, they have also announced that they are working on an NSAPI version for Netscape Corporation Web Server. There's no indication on whether they will be giving refunds to those who've already paid the fees.

The Cocoa scripting language is essentially a very simplified version of C, with object-based capabilities, an unusual notion of making functions first class objects, and garbage collection ala Java. Proponents of it on UseNet refer to it as "simplicity from simplicity", in paraphrase of Netscape's motto for WebScript, "complexity from simplicity". One contributor to another discussion said that "this is what Netscape should have come up with for the client side."

In a slight twist of fate, Cocoa is the brainchild of former Netscape Corporation employee Brendan Eich. Eich was originally part of the project that evolved into WebScript, although he left soon after that project was given the green light. [3]

If that's not enough, though, the Cocoa scripting language itself has had an open license since it was first released, which means you can write your own interpreter for use in any environment. One suggestion mentioned in their literature: scripting corporate desktop applications. Could Cocoa become the language of the next Visual Basic, Delphi or PowerBuilder?
From "The New (Dynamic) Side of the Web", InfoWorld, July 10, 1996:

As the world awaits the release of the 3.0 browsers next month, this upcoming stage of the browser wars appears to be about scripting...



While Netscape's WebScript language is getting lined up alongside such ideas as New Coke, Smell-o-Vision and even the Ford Pinto, Netscape continues to push it in Netscape Navigator 3, insisting that it's potential has yet to be fully realized. They are still using the phrase "complexity from simplicity" in their publicity. Netscape Navigator 3 beta adds a number of new features to WebScript, including an API for communicating with applets and plugins using LiveConnect.

...

But the real "game-changer" for the browser wars is the upcoming release of Internet Explorer 3. Among the features which are reported to be included in it are support for Netscape's plugin technology -- although it's not clear if LiveConnect will be supported -- as well as their own plugin API, using Microsoft's ActiveX technology.

Microsoft will be adopting WebScript as well, although an insider says "there may be variations in how it works due to the differences in architecture between the browsers and varying specifications, since WebScript is a work in progress."

More importantly, however, Internet Explorer will also include support for a dialect of Visual Basic known as VBScript. They are also promising a plugin for Netscape.

The VBScript language and some of Microsoft's web document API has already been reviewed in numerous UseNet threads, mostly because Microsoft's own web site is already making full use of it despite the fact that no one outside of the company and its beta testers can even see the results. The general consensus appears to be that, "well, it's better than WebScript". [3]
From a message on [NOPARSE]comp.infosystems.www.misc[/NOPARSE], in a message entitled "Client-side Cocoa?; was, ANNOUNCE: Java Cocoa Engine" dated December 1996:

> > > > I've just finished writing an interpreter for
> > > > Cocoa in Java, as a side project. Yes, I know, why
> > > > would anyone want to run an interpreted language
> > > > through another interpreted language? Well,
> > > > they're right. I have no idea what to use it for
> > > > now [NOPARSE]:)[/NOPARSE]. But, in any case, if anyone wants to try it
> > > > out, let me know.

> > > Cocoa in Java? Heh. Actually, I do have an idea... can
> > > the code be put into an applet? The project I've been
> > > on at work has me trying to move some form elements
> > > and update their values from a database, using
> > > WebScript and an Applet, and I've been thinking...
> > > wouldn't it be cool if I could use Cocoa instead?
Just
> > > hide it in custom tags, like M$ does with "<vbscript>"

> > Hmmm... that's not a bad idea. Of course, IE doesn't
> > allow applets to talk to their pages, so it'll only work
> > on Navigator.


> Well, IBM's WebExplorer 1.2 also supports LiveConnect,
> although that's only on OS/2 right now. But, I saw
> somebody out there who was trying to recreate the API
> for IE, using an ActiveX control. I'll have to look
> for that link and get it back to you, but it looked
> pretty good.


Holy !--$$? If so, this could work! Send me an e-mail. Let's talk.

Excerpt from a pamphlet distributed to a session on web scripting at Microsoft's TechEd Orlando, dated May 7th, 1997[5]:

...how to implement the three most popular web scripting technologies:

Netscape Corporation's WebScript:

WebScript is supported natively in Internet Explorer and Netscape Navigator.

Code:
<!--$$ !$ url: navGetURL() $$-->
<!--$$ !$ name: strGetSub(10,5) $$-->
<!--$$ ? (name = 'Gates') $$--> 
<p>Hello, Mr. Gates!</p> 
<!--$$:$$-->
<p>Hello, World.</p>
<!--$$.$$-->
Yes, we can't understand it either.

Big Ten Software's Client-side Cocoa:

In order to support multiple browsers, you need to drop in an applet and an activex control into each web page on which you want to use Cocoa.

Code:
<applet mayscript 
code="http://www.big10.example.com/applet/com.bigten.cocoa.class" 
width="1" height="1"></applet>
<OBJECT ID="cocoa-activex" CLASSID="CLSID:00000000-0000-0000-0000-000000000000" 
CODEBASE="http://www.big10.example.com/activex/cocoa.cab"> 
</OBJECT>
<script type="Cocoa" flavor="Big10"><!--
  var name = document.location.href.substring(10,5);
  if (name == "Gates") {
     document.add("P","Hello, Mr. Gates!");
  } else {
     document.add("P","Hello, World!");
  }
--></script>
Wow! That's a lot of code. But, if you want to use Cocoa, that's what you've got to do.

Microsoft's VBScript:

Code:
<vbscript><!--
  Dim Name 
  Name = Mid(Location.Href,10,5)
  If Name = "Gates" Then
     Document.Write("Hello, Mr. Gates!")
  Else
     Document.Write("Hello, World!")
  End If
--></vbscript>
Now doesn't that look much nicer?
==========

[0] Yes, I know, this is a rather lame POD, but I think it is plausible.

[1] Source:
http://www.jwz.org/blog/2010/10/every-day-i-learn-something-new-and-stupid/#comment-1021

Q: "What would we be stuck with if JS hadn't happened?"
A: "Something like PHP only worse…"

I'm assuming that this would still have been a client-side script, and being 'like PHP' probably means it resembles a template language.

It's possible that in the conversation in the above source, Eich is referring to a server-side language as being "something like PHP". In this case WebScript is just an alternative client-side scripting language that was never even thought up in OTL.

Other than this, I have absolutely no idea what scripting would look like in Navigator without JavaScript.

[2] As I said, I'm assuming something that looks like a template language, with script code interspersed throughout the page (i.e. "if"…"end" type structures littering the HTML). Since it would have to be backward-compatible with non-scripting browsers, while at the same time needing code to appear in many, many places, they'd have to come up with something a little easier than <script type="WebScript">. Thus, my thoughts is that they would simply extend the comment syntax, perhaps something like this: <!--$$ $$-->. Very possibly with numerous additional shortcut characters (like '?' for print in ye olde BASIC) to make it even more fun.

[3] Yes, Cocoa is OTL JavaScript, but with Eich getting more help, and more than 10 days to finish it.

[4] Another quote from Eich on this same source:

"JavaScript...saved you from VBScript."

[5] Keep in mind, this is propaganda.
 
Last edited:
Top