The World Wide Web (commonly shortened to the Web) is a system of interlinked hypertext documents accessed via the Internet.
Indeed, this is how the Web started out. But now, people run Photoshop on it. It is staggering to think that such a feat is possible, through so many layers of abstraction.
The Web is not about hypertext anymore; it is now an architecture of thin clients, accessing a plethora of applications that anyone can develop and host. It is a truly open environment, and we can see that this is good.
All its means, protocols and standards are well documented. How is it possible then, that the "user end" of it, the Web browser, exists in only a handful of usable implementations?
Would have the original developers of Mosaic and Mozilla thought that in 2008, on a dual core, 64 bit computer, with gigabytes of memory, executing a simple text search in a couple tens of kilobytes of text could take measurable and visible tenths of a second? That displaying and formatting a single page could take long, long seconds of 100% CPU usage?
The personal computer is now ubiquitous, in schools and homes. Everybody and their mom can program them. One would expect that an enterprising, young programmer could sit down, and write a client that finally gets it right. But this has not happened; and when one looks into the reasons, it turns out:
It is impossible to get it right. The Web Client is unimplementable.
The widespread, most "complete" browsers today are possibly the most complex pieces of software an everyday user encounters. To display a recent web page with any reasonable fidelity, you need a multi-million lines long program. Even following the standards is not enough: it has to know and support all the older versions of all the standards, and all the idiosyncrasies of their old, faulty implementations.
Developing such a system is a monstrous undertaking. Even when it is functional, full compliance with the standards, such as they are, is only a far-away dream that no one has fully reached.
We propose that the cause of these difficulties is the misunderstanding of the nature of the Web (even on the part of its main developers, the W3C). We see that the main direction of usage and progress of the Web is in information sharing and processing; in innovative applications, such as social networks and user content propagation; or even the older, plain business usage, such as banking and web shops. However, almost all development of standards went into a different direction: hijacking the Web to be a vessel of "multimedia", fancy formatting, and mimicking functionality that ordinary desktop applications did and still do better.
An enormous amount of miscellaneous features got implemented over time; and most of them because many people thought it was desirable to give the end users a busy, complicated, TV-like presentation of the interface they were still using for their simple task.
Take CSS itself. It is a powerful tool, all geared towards the pixel-perfect representation of any interface a graphic designer could think up. Even though the commonly voiced consensus is that it should not be used this way, in reality everyone is doing it. On the client side, a multitude of resolutions, font sets, rendering and graphics toolkits are used; yet the desired result is always a 800 pixels wide block of professional-looking material, in which the text touches the side of the corporate logo in exactly one graceful way.
To make this more or less possible, years of work went and still go into a system of thousands of complicated implementation rules. Yet, the purported goal of separating content from presentation is not at all accomplished: the most that switching a style sheet can change on a web page is mostly the background color, the font size, and mouseover tricks, if you're lucky. A big part of presentation is the physical structure of text; and HTML specifies a physical, not logical, structure.
Yes, you can display an absolutely positioned
div, with a
half-transparent background; you can make your application look like an
old-fashioned GUI with roll-down menus and buttons. But is this truly necessary?
Not for the reason everyone is using the Web.
And if you absolutely want something that's all about multimedia, interactive pictures and movies, or games; what if there was a technology that was from the beginning designed for displaying exactly that, pictures you can click on? Oh right, it's called Flash.
So, in short:
This is what we envision: a friendly and comfortable web, that runs your blog and Facebook and LiveJournal, on every page just the information and the interface you want; with your fonts and display sizes, the text laid out as it is laid out. All content immediately and automatically portable to telephones and PDAs (even though nobody actually wants to use those for surfing the web).
Yes, it might not be possible to port Word, Excel or Powerpoint; but those applications are slow and bloated enough as they are, running locally. Why would anyone want to make them running even slower, and as a bonus give all their information to the current Evil hosting the service, is a mistery to us.
Another thing to be considered is whether you even need the Web. If you have just a hierarchy of documents you want to share with no need for interactivity (such as for homepages, company web pages, blogs), you might want to consider Gopher. It is a venerable and presently little-used protocol that does just that. It is trivially simple to implement and to serve, and presents an easy interface for automated processing (such as search engine indexing or RSS feed generation). It is used by a small, but growing number of people all over the world.
Off topic: not strongly related to the Web, but a serious and perhaps relevant grievance. Stop using PDF as a documentation format!
We want our software documentation in an on-screen, hierarchic, searchable format. We don't want to print it. This is the age of ridiculously big monitors and tiling window managers; we can display our source code and documentation side by side. (Also, PDFs are not easily displayable on a text terminal.)
Written by k-zed. Mail: mnagy AT port70.net
See the Webless Initiative