This was written for a possible book in around 1993/4. Written in Microsoft word, copied to HTML and salvaged by hand. ..Tim BL
A frequent question is how the web came into existence in the first place, so for those readers who are interested in the history and the initial intent, I take the liberty of including a history of the initial stages from a personal point of view It is independent of the other chapters and so can be skipped..
Toward the end of the twentieth century, a number of ideas and technologies matured to the point at which a whole new world was ready to be born. The world was the world of networked information, at once an abstract space for Man's ideas and an opportunity to make concrete the dreams of knowledge handling with computers which had been frustrated since computers had been invented.
It would have been possible to write all the programs which are needed for a world-wide web thirty years ago. Indeed, most of the ideas were thought of around this time. However, for the web to work, computing technology had to advance to the point where, firstly, most of the people in a work group would have a computer and, secondly, that all those computers would be connected together by a network.
One technology which had been around for some time but whose maturity signalled the start of the information revolution was the development of graphical user interfaces which real people could use fairly intuitively. The idea of "windows" on the screen, and the imaging of familiar objects such as desk tops and filing cabinets onto the screen opened computing very many more people. Automatic teller machines educated anyone with a bank account in the use of menus and a keyboard.
Just as the computer literacy was becoming sufficient for groups to start abandoning paper mail for electronic mail, so the Internet was reaching out to the point where computer literate people could be connected together more intimately and effectively to share their knowledge. The second component technology essential for the web was the deployment of computer networks to the extent that, within certain privileged communities of people (such as, for example, scientists in the western world) a significant proportion of people had access to a computer which was connected to the "Internet", a vast conglomeration of interconnected computer networks. Whereas communication had been a question of dialling up another computer using a telephone line, or sending an "electronic mail" message for delivery in some unspecified time via a series of computer sorting offices, now small packets of information could be sent from one end of the world to the other with little prior arrangements and a delay of a few tenths of a second.
It is important to realise the difference between having a computer connected to the Internet and a computer which is connected in other ways. (See the "How to" section) The essential aspect of the Internet is that small packets may be sent from any computer to any other computer very quickly. By small, I mean a few hundred characters, and by quickly, I mean to the other side of the world and back within a second. Other networks apart from the Internet could do this but none had grown with such staggering speed to global proportions . Before these "packet switched wide-area networks" were available, computers had to communicate by dialling each other up, or over a dedicated cable between two specific computers. Messages were larger and longer, being stored on disk for some time before it was convenient to send them on.
Fig. A packet switched network allows two computers A and B to communicate as though they had an instant direct connection.
Another practical facility which has boosted the networked information world is that disk space became sufficiently cheap for interested system managers to keep fairly large quantities of information on their machines, and provide it to the world. In the beginnings of the web, much of the data has been picked up from one source or other, chopped about into a usable form, and left on a server somewhere. Examples of this were the "hacker's dictionary" which surfaced as hypertext in a number of forms, and various out of copyright works, such as old dictionaries and Roget's Thesaurus. This created a body of information sufficiently large and diverse to indicate what could be done. Soon the serious information followed.
The fact that the web first appeared at CERN, the European Particle Physics Laboratory, is not surprising in the light of these factors. The smaller the particles which physicists investigate, the larger the accelerators they have to build. In order to afford the accelerator and the detectors, groups combine from all over the world. The physicists form a widely dispersed computer-literate group. They also happen to have good networking facilities between their institutes for the exchange of physics data. The particle physics community therefore formed an ideal substrate for the growth of the web.
Fred Brooks, in "The Mythical Man Month", suggests that systems end up with a similar structure to the organizations which design them (rather as dogs seem to some times look like their owners!). CERN's mixture of people from many different institutes was echoed by a diversity in the programming languages, styles of design, and brands of hardware which were in use. Most of the subsystems had been designed by physicists rather than software engineers, using a wealth of ingenious, if unconventional, techniques.
Of the (aproximately) 10,000 people in the CERN phonebook, only around 3,000 were actually salaried CERN staff. [@@ check] Many of the others have a desk at CERN and also one in their home institute, and they visit every now and again. These people report to and are paid by their home institute. Whilst at CERN, collaboration occurs by peer-peer agreement and academic mutual respect. This makes it imposible for anyone to make (or enforce) global decisions on types of hardware and software to be used. People bring with them machines and customs from their home universities. You just have to do your best to accomodate them. This had already led to a lot of work on mail and file interchange between different types of computer system and different networks.
When I first arrived at CERN in 1980 as a consultant, I found its structure fascinating. I wrote a small rather simple hypertext program ("Enquire") with which to note down all the dependencies between people, programs, and hardware. It was a bit like a card index, but with links between cards. It ran on a plain 24x80 terminal. The links had meanings like "A is part of B", or "A made B". The idea was that when one had put in everything one knew, one could trace through implications, answering questions such as "If I remove this module, what stops working?"
A surprising fact was that Enquire only needed a dozen or so different link relationships.
|made||was made by|
|includes||is part of|
|uses||is used by|
The links were bidirectional, in that having added it once, the reverse link automatically showed up. The relationships applied not, of course, to the cards, but to the people, things, documents and groups described by the cards.
I kept the program with me (porting it from Nosk Data Nord 10 to PC to VAX/VMS and rewriting it once) as I found its associative model seemed to match my need. It was a useful tool, but never got very far with the tracing and analysis engine.
When I later (in 1884) came back to CERN as a fellow, I worked on real-time systems. I developed a general tool for making distributed systems (real time remote procedure call). That project, as later W3, was developped and supported by people who needed it rather than by the limited CERN staff. These people came and went, and often worked away from CERN. I used Enquire to keep track of the modules, the users, the documents and everything I needed to note down about the project. I pretty soon realised that most of the coordination of the project boiled down to keeping this information up to date, and keeping everyone aware of changes. At the same time I realised that I spent another considerable part of my time trying to find out similar details of other people's systems.
There was clearly a need for something like Enquire but accessable to everyone. I wanted it to scale so that if two people started to use it independently, and later started to work together, they could start linking together their information without making any other changes. This was the concept of the web.
Looking around CERN, it was clear that if I needed the web, then others, especially the experimental teams, must be desparate for it. In 1989, CERN was in a lull between two large pushes: one, the LEP (Large Elecron Positron) accelerator, was running, and the LHC (Lage Hadron Collider) was a few years off. I suggested an as yet unnamed hypertext project and, after a year of writing memos and proposals which largely fell on stony ground, my boss at the time, Mike Sendall, indicated he wouldn't complain if I worked on it for a while.
At the same time, NeXT Inc was producing the first NeXT cubes, which provided an ideal prototyping platform. Again, Mike Sendall said if I wanted to buy one it was OK by him. When you are trying out the user interface to a hypertext system, the last thing you want is to be involved in great depth with details of writing characters onto screens, font metrics, and window exposure events. The NeXTStep programming environment came with a multifont editable text object which could be fairly simply converted into a hypertext object. The prototype was working as a browser after about a month, and as an editor after another month. This takes us to Christmas 1990. (For comparison, most of the X browsers took around year to be developed. More recently (1993?), Omni corp. decided to put together a new W3 browser "OmniWeb" using NeXTStep, and starting from scratch it likewise took them them a month.)
CERN always, being full of creative people, had trouble persuading itsel;f to buy software rather than make it better. With my background in the Software engineering industry rather than Physics, I felt myself a strong advocate of the "buy don't build" camp. During the time between the first proposal and starting work, I did make a concerted efort to find what I wanted as a commercial product. Robert Cailliau, a colleage working a
Efficient though it was as a development platform, the NeXT was not installed in any quantity, so any real use needed versions for the PC, Mac, X workstations, and "dumb" terminals. However, to attract any resources I also needed a good visible reason to be doing this at CERN.
CERN had seen many in-house documentation systems rise and fall. It would clearly be a mistake to design the ultimate system and then hawk it around suitable users. No one wiould put any information into it, simply because no one else uses it. Similarly, no one will look into it for data because there isn't any. The hope was that once the ball was rolling, increasing data would bring a wider user base, which would in turn encourage new information, but an empty system had no appeal for anyone.
Fortunately there was a way to bootstrap the web by making gateways into existing systems. Making gateways into virtual worlds is still a very interesting and useful technique in its own right, but at that stage it was the seed of the web's existence. The first target data was the CERN phone book, a database sitting on the ageing mainframe and whose maintainer, Bernd Pollermann, was charged with providing to users on their favorite systems. Bernd helped set the old VM machine up as a server to a simple hypertext version of the data. Nicola Pellow, a visiting student, tackled the client side by providing the line mode interface. This was so basic in its assuptions about the terminal type so that no one could claim that there was no client interface available on their system. Unlike the NeXTStep application, the line mode browser (never given any other name) could not edit hypertext: it could only read . It was good enough for the phone book and for the hypertext documentation which we generated for the project. Robert Cailliau, a great enthisiast for accessable no-nonsense technology, joined me and looked at providing a program for his favorite, the Macintosh.
So this was the way the the web was first presented at CERN: as a rather simple user interface which allowed one to look up (mainly) telephone numbers. It was to be two years before it would shed that image. Accepted as a rather quirky information system by people who didn't see why a simple ad hoc program for getting the phone numbers wouldn't have done just as well, the W3 may have stayed confined to that role, had it not been for the Internet.
In the summer of 1991, I made the basic server and the NeXTStep and line-mode clients , available on the Internet (by FTP) and mentioned this rather limited software on a usenet newsgroup, alt.hypertext. There was not much to show (unless you had a NeXT), but the great thing about usenet is that there are so many bright and weird people out there, that if you put any idea the right way and in the right place, the chances are fairly high that somone to whom it makes sense will pick it up. The project started getting feedback from people who saw it as a rather simple version of Hypercard(TM), an over complex information system, a frustratingly inconsistent database, or an idea which appealed to some latent excitement about how things could be. From then on, interested people on the Internet provided the feedback, the stimulation, the ideas, source code contributions, and the moral support which it would have been hard to find locally. The people of the internet built the web.
Just as W3 "rescued" the CERN phone book from the prison of a mainframe, Louise Addis, the librarian at the Stanford Linear Accelerator (SLAC) saw it as a godsend for their rather sophisticated but mainframe-bound library system. Under Louise's encourgement, SLAC became a model site, using interesting W3 techniques, and providing information of real value to physicists.
The next year or two required a certain amount of selling of the idea of the web to the High Energy Physics (HEP) community. Even given that, Robert and I were taunted with the fact that W3's use in CERN itself was very low. We trod a fine line between dedicating our resources to local user support but neglecting the project as a whole, and pursuing the web's goal of an interactive seamless information world but being balled out for producing nothing useful.
At conferences on networking, hypertext, and software for HEP, we would point out that we really needed clients for the PC, Macintosh, and X, and that these would make useful student projects. At CERN, I was under a lot of pressure to make an X client but had no additional resources.
In the end, our strategy of finding volunteers paid off. A team of students at Helsinki University of Technology made a browser for Xwindows called "Erwise" [[I think the name of their group was "OTH" and so the project was OTH-erwise]]. Pei Wei, a very inventive student at Berkley had an interpretive language called "Viola" which had display objects and was designed for just this sort of thing. He wrote "ViolaWWW" as a demonstration of the power of Viola. In fact, we was ahead of of his time. Viola you could compare in some ways with the later Java, and ViolaWWW with HotJava. ViolaWWW had downloadable applets and cute rotating icons. Pei's interest was in the Viola language. To install ViolaWWW, you had to install Viola and then install WWW as a Viola application. This all took some time, and you had to have system administrator ("root") access to do it.
While Erwise and ViolaWWW competed as browsers for X-windows, Tom Bruce, a stage manager turned system administrator turned programmer now half of the "Legal Information Institute" at Cornell decided that the Web was just what the LII needed to distribute legal information to the legal community. He started work on "Cello" (after "Viola"), a native Microsoft Windows based browser. At CERN, Robert Cailliau 's ardent enthusiasm for human interface done right and invisible computering had made him an early Mac advocate long before he became the first ardent Web convert. He started work on a client for the Mac.
ViolaWWW started to spread. At CERN, the computing department started to point people toward it. At the National Center for Supercomputing Applications (NCSA) at the University of Illinois at Urbana Champain (UIUC), David Thompson downloaded it and got it running. He thought the WWW would be a good project for NCSA. He showed it to the rest of Software Design Group, and Marc Andreessen, a student , decided to make an X-windows client his project. Working with Eric Bina, Marc put in the work of three men, driven by a vision of what could be done and nourished by large quantities of expresso. Driven by a desire to have his product in wide use, he returned bug reports rapidly and turned out new versions hour by hour. The result was "Mosaic", an X application which one could pick up and execute, and which would give an immediate point and click access to the web. NCSA soon started other projects to get the PCs running Windows and Macintoshes onto the web. In September 1993, Mosaic was available on all three platforms. The vision of W3 as a rather crude line mode program was gone, and the world started to know W3 as Mosaic.
While Marc is rightly credited with having brought W3 out into the light, in fact many others produced equally exciting, if not so easy to install nor well deployed, programs. "Viola" rivalled "Erwise" from for the prize as the first X browser, both very crediable programs. "Midas" from Tony Johnson at the Standford Liner Accelerator Laboratory (SLAC) was a later product which came into common use in SLAC and collaborating labs as an alternative to Mosaic, with a similarly user-friendly interface, and a different set of features. Marc's talent was marketting the idea to the Internet comunity by making Mosaic (unlike Viola) simple to install, and by responding rapidly to feedback and ideas from his rapidly growing user community.
There are a number of ways to measure the growth of the web, none of them definitive. The earliest figures available to us was the load on our server at CERN, expressed in documents fetched per day. For three years from July '91 to July '94, this showed a steady exponential increase, doubling faster than every four months -- in fact, each time I counted the log for a month, it was roughly 10 times the size of the same month last year. This server, info.cern.ch, held mainly information about the web itself, so the rise in interest in it may have been an indicator of future developments.
If the total use of the web can be expressed as the usage of a average server multiplied by the number of servers, then some statistics on the number of server would clearly be useful. However, one of the factors enabling the growth was the lack of mandatory central registy of servers. Though we do keep an optional list of servers, I do not unfortunately have acuurate history of it. Here are a few points we noted down:
Occasionally I would run a program which would trace two levels of links down from each registered server. The program would typically find just as many unregistered servers as there were registered servers.
When the global traffic began to become significant, another interesting figure was the port 80 TCP traffic across the NSF backbone. Merit Inc keep such statistics by sampling the traffic through routers. Port 80 is the port number for HTTP servers. Not all servers run on this port, and of course WWW clinets also use other protocols, but the port 80 traffic is some indication of the growth of the web. Rising from 0.1% of the total traffic in March 1993 to 1.0% in September and 2.5% in December, the web was growing at a rate unprecedented even in Internet circles.
As @@@ put it in an article in March 1994, <quote>.