Jump to page content

World Wide Web

Caveats

Most if not all pages are just rough notes, and these pages as a whole are far from complete. More notes will be added in time, eventually, maybe.

If, from reading these notes, you conclude that I am off my rocker, you won’t be the first, and you may even be right.

No doubt there are a dozen and one reasons why none of this would ever work, but perhaps somewhere deep down there is a tiny fragment that could be used for something.

Is the World Wide Web the future? In a word, no. Well, it likely is the future, but the future will be dismal as a result.

The World Wide Web has quite predictably failed to become a suitable platform for application publishing. Originally formed of HTML pages and later CSS and JavaScript, it has now grown into an impenetrable behemoth.

There is still no real notion of offline working. To some extent this is possible, but it would be unwise to assume that any web-based application will automatically incorporate offline working.

Websites are all siloed. Work carried out on one site is not available on another, unlike a desktop environment where multiple applications can share a folder and files can be viewed and edited in a variety of applications.

Notwithstanding workarounds in browsed-based operating systems, applications are trapped inside browser tabs: they are second-class citizens of the user interface in multiple ways. While middle click opens a link in a new tab on standard HTML pages in Windows-based browsers (trackpad users are less fortunate), this seldom works in web-based applications, which have little in the way of window management and are frequently designed such that users can’t break out of their single tab. The browser’s own tab bar (and title bar for those fortunate enough to still have one) and other UI (e.g. bookmarks bar) overload the UI, adding unwanted clutter both mentally and physically.

The most egregious error is the World Wide Web’s dismal attempt at a control library. The complete failure to provide meaningful advanced controls has led developers to repeatedly re-invent controls in endless different ways. List and hierarchy selection and menus function totally differently on every site with the end user left to guess how each control is supposed to function. Even text boxes don’t behave consistently. Keyboard navigation is a lost cause: if it works at all, it’s weak and unpredictable. In every sense, websites present hopelessly inconsistent UI.

The powers-that-be in the web world have never really understood anything more than a one-dimensional world. Look at the HTML for any website (except this one) and you’ll see horrors even Lovecraft could not have dreamed of. The ratio of levels of nested tags to actual semantic expression of intent is astonishingly high. A proper desktop enviroment would allow the software to express only its needs and never be concerned about implementation. If the program needs a tool palette, it gets a tool palette. Websites have to become embroiled in the painful complexity of trying to convince the one-dimensional wishes-it-were sematic HTML world to render a two-dimensional layout. Desktop applications under a proper environment could ask for any reasonable window layout without needing dozens of levels of incomprehensible markup in order to do so.

Websites don’t have any real tabular system. Real world software needs tables whose contents scroll both vertically and horizontally. Real world software needs tables with dedicated management UI such as column resize, column rearrange, sorting and row select. HTML tables are incapable of this: all the extra functionality is simulated using ugly markup that destroys the semantics. The buttons and links added to column headings to simulate a proper UI ruin the semantic state of the headings themselves, as their contents—such as assistive technology might wish to read out to the user—now contains various objects that for the purposes of understanding the UI are not relevant during that phase of interaction. A user listening to the column names does not need to listen to all the widget names for every column, as they should know instinctively that these concepts are managed separately by the UI and are always available in all software as a fully predictable facility.

The state of tabular presentation in web-based applications is so dire that many sites don’t use HTML <table> element sets for tables at all. Instead, tables are formed of heaps of <table>s. Mozilla Firefox has a useful feature where users can select table cells and copy their contents in tab-separated form, that is defeated by sites that don’t use tables to represent tables.

Web-based systems may also require the user to sign in, especially if the user is expected to use the site’s proprietary cloud storage to store their work. This alone leads to loss of work (through heavy-handed session timeouts) and frustration that is nonexistent in standard desktop applications.

The cloud introduces another painful issue: significant erosion of control. When an application lives inside someone else’s environment, you lose various freedoms. The freedom to tinker with the code and recompile is lost. The ability to install real plugins is lost. The ability to continue using an older version of a product for compatibility is lost.

“Rich” operating system features are lost also. System-level composite modularity is no longer available, for example system-level image decoder modules or alternative file browsers. Integration of document views into the window system is lost. A user who prefers a tiling window manager for example will come unstuck if a web-based application requires all of the users’ work to be represented by a set of virtual tabs inside one single browser tab. Presentation control of material should be delegated to the window manager, and websites do not allow for this.

The World Wide Web is making some effort to be a real system, with drag-and-drop file uploads, camera and microphone access and other improvements. Even so, it can never replace a proper desktop environment with real application software that is free to work together in harmony.

XUL-based sites

For a while, Fasthosts webmail was offered in both HTML and XUL versions. The XUL version used an XML-based interface that was rendered by a XUL-based browser such as Mozilla Firefox. While not truly native, the fact that the browser’s XUL environment was already designed to be as close to native as is possible using entirely simulated widgets meant that Fasthosts could offer a web-based mail service with a fairly native UI. This system seems to have disappeared into oblivion; Google’s campaign to force the world to adopt Chrome as a browser (by ramming it down everyone’s throats) will have marginalised alternative browsers to such an extent that maintaining a XUL UI would have become more trouble than it was worth.

This is not to say that it was ever a good idea to begin with, as anything web-based is still too greatly isolated from the user’s desktop environment and all the other applications that form their workflow.