Happy Birthday World Wide Web

Today is the 25th anniversary of the birth of the World Wide Web, which is known today simply as “The Web,” or, even more generally, “The Internet.”  The “‘Net,” of course, is much more, encompassing email and communications other than HTML, but for most people, the Web is their main contact.

Tim Berner-Lee didn’t invent the Web out of thin air, though.   During the period of proliferation of personal computers in the early 1980s, the diversity of languages, applications, and data formats made it difficult to exchange data between different systems.  An early attempt to make a universally-readable data file was in the GEM (Graphical Environment Manager) system, which initially ran on top of CP/M, one of the first microcomputer operating systems.  GEM was based on research at the Xerox Palo Alto Research Center (PARC).

The “killer app” that resulted in GEM-like interfaces being ported to Apple and MS-DOS was Ventura Publisher, an early desktop-publishing software system that promoted WYSIWYG (What you see is what you get) editing.  The data files were plain text, “decorated” with markup language “tags” to identify elements like paragraphs, chapter and section headings, and all typographical marks that editors normally penciled in, hence “markup.”  The first standard in this was SGML, or Standard Generalized Markup Language, and style manuals, most notably the one from the Chicago Press, were published to promote standardized markup notation.   SGML really didn’t catch on, though, as popular word processors of the time, such as WordPerfect and Microsoft Word and desktop publishing software like Aldus Pagemaker (now owned by Adobe) retained their own binary document formats.  GEM and Ventura Publisher became buried in history with the demise of CP/M and the introduction of the GEM look-alike Apple Macintosh and the decidedly inferior Microsoft Windows graphical desktops that took center stage.

Meanwhile, in the Unix world, networking and inter-networking was the focus, along with a graphical desktop environment, the X Window System.  The X Window System was too cumbersome and tied to Unix to be used over the relatively slow inter-networks and with the now predominant IBM PC running MS-DOS and Microsoft Windows or the niche Apple environment.  Meanwhile, Berners-Lee was experimenting with a subset and extension of SGML called HyperText Markup Language (HTML).  Hypertext introduced not only markup for the appearance of rendered text, but the ability to cross-reference one section of text from another, even between documents.    Hyper-threaded text concepts were known at least since the 1940s, and used to create alternate endings or story lines in printed fiction, but computers made it possible to achieve smooth navigation between paths.

At the same time, networks were becoming mature, with the introduction of the Domain Name System and the TCP/IP network protocol in an internetworking scheme that provided unique names and addresses for every computer in the network, on a global scale.  Incorporation of DNS names and local paths in hypertext references made it possible to connect any document on any computer with references stored in different files on the same or any other computer in the network.  To implement these connections, a new network protocol, HyperText Transport Protocol (HTTP) was developed, and the World Wide Web was born in a flash of inspiration.

To complete the system required software that could speak HTTP and render HTML into formatted text and links on a computer screen, a server, and a client, which came to be known as a web browser.    The first web server was on a Next (Unix) machine, and early browsers were text-only, as the Internet was still largely based on dial-up modem access over ordinary phone lines.  But, with the increasing use of graphical displays, browsers also became graphics-capable, adding imaging and other visual effects to the HTML palette.

Today, 25 years later, most web servers are running some form of Unix or Unix-like operating system, mostly the open-source GNU/Linux system, though Microsoft Internet Information Service (IIS) runs many corporate internal services and public sites.  Browsers are now graphical, either Microsoft Internet Explorer or based on the Mozilla project, an open-source release of the original Netscape code derived from Mosaic, the first graphical browser.

The Web itself has evolved, with the addition of scripting capabilities on both the server and the client browser to create dynamic pages created at the moment, tailored to changing data, with the ability to refresh elements on a page as well as the whole page, and the ability to stream video and audio data as well as display text and images.   Indeed, HTML version 5 replaces many of the commonly-scripted constructs with simple markup tags that modern browsers know how to render.  The advent of social media sites to connect multiple people in real-time as well as  provide private messaging and real-time chat has largely replaced the spam-plagued email system for many people, and brought the promise of video-phone connections to reality.

The Web, in 25 years, has transformed society and our technology, nearly replacing newspapers, magazines, the telephone, and the television and video media player.  Even the personal computer has been transformed: the advent of software as a service (SAAS) means that users no longer have to purchase expensive applications to install on one computer, but can “rent” the use of an application on a distant server through the web browser, and rent storage space in “the cloud” that is available on any computer, even small hand-held devices like tablets or phones.  The web has also made possible the concept of wearable computers, such as Google Glass.  The World Wide Web not only covers the planet, but beyond (with live feed from the International Space Station and the Mars rovers), and has infused itself into our experience of reality.

I’ve evolved with the Web, starting with experimenting with SGML and HTML in the late 1980s, writing HTML in the mid-1990s, and in the late 1990s writing CGI (Common Gateway Interface) scripts in Perl, then server-side scripts in PHP,  progressing to Ruby CGI scripts and Javascript client-side scripting, some generated by the underlying server-side scripts to dynamically add images to slideshows.  Today, I still write CGI and server-side scripts, and create Cascading Style Sheets (CSS) for page layout and element design, but increasingly use content management systems like WordPress or CMSBuilder that make editing web sites no more difficult than writing an email or posting a status to Facebook.  Yet, I’d like to see the grandchildren and great-grandchildren–who have lived with the web either from the time they learned to read (for the older grandchildren)  or since they were born–learn to see “under the hood” and learn how the web works, so they can shape the future instead of being shaped by it.