← All blog posts

The Devil's Advocate: The Web (2008), found in a drawer

October 5, 2026 · Software Engineering

Recently, while digging through an old Subversion export (yes, I kept those), I found a folder named devil advocate - The Web (2008). Inside it were a Word file, a Pages archive and a PDF, which according to its own metadata was exported on 10 July 2008, from Mac OS X 10.5.4. Next to it sit five more folders of the same series: Software Engineering Maturity, Spammers, The Scientific Retribution and War of the Worlds from 2008, and Software Commit-ians from 2010 (that one survived; it became Software Development Com-(mit|ed)-ians in 2018).

So it seems I was writing a column called The Devil's Advocate. Where it was published, I honestly do not remember :). It is not in my publication list, it is not next to the Linux Format and Linux Inside pieces I know were printed, and nothing in the files says where they went. If you recognise it, please let me know.

I am publishing it below as it was written, typos, lowercase "i" and all. Please read it as what it is; an archive piece. It is outdated, and in places it is plainly wrong. The browsers it names are mostly gone, Flash and Silverlight are dead (and the Flash embeds on this very blog with them), and "it will soon collapse" did not age well at all.

What eighteen years did to it

The funny part is that the wish list at the end mostly happened, only not the way I imagined it.

  • "Find ONE standard for HTML." We got it. XHTML 2 was abandoned, HTML5 won, and if I remember correctly, since 2019 the W3C has deferred to the WHATWG's living standard. One HTML, no strict and transitional any more.
  • "Create a compatible platform." We got that too, in a way I did not ask for. Most browsers today run the same engine (Edge moved to Chromium in 2020), so the menu is no longer an inch lower in one of them. The price is a monoculture, and I am not sure the 2008 me would have signed for it.
  • "Enforce the standards, no best effort." The opposite happened, and it was the right call. HTML5 did not make parsers strict; it specified exactly how to be lenient, so every browser recovers from the same broken markup in the same way. The unclosed <b> is still forgiven, only now it is forgiven identically.
  • "Find a decent scripting language." JavaScript stayed, and we built TypeScript on top of it and WebAssembly beside it. Not a replacement, but closer to what I wanted than I expected.
  • "Common syntax, stick with XML." Here I was simply wrong. JSON won over XML, and nobody misses the angle brackets.

And the Gmail paragraph, the one asking whether building a web application was really worth the effort compared to a "decent development platform"? This site is a React single-page application, prerendered at build time into a couple of hundred HTML files. So I think we know which side I ended up on.

The diagnosis, though, I would still sign. The web is a pile of technologies that were never designed to fit together; we did not fix that, we built tooling thick enough to hide it (bundlers, frameworks, transpilers). The complexity did not go away, it moved into the build pipeline. That is the part that is still true, and I suspect it will be true in another eighteen years.

The original, as written in 2008

The Devil's Advocate: The Web
by Vassilios Karakoidas

Everyone that has a living (and networked) computer in his house has seen it. The revolution of our century in computing, the World Wide Web. Many consider it the next big platform. Google, YouTube, and Facebook among others, deliver a variety of services for all kinds of taste. Social networks, video, music, and e-commerce is now done by web applications.

In addition, many traditional kind of applications are also web-ified, such as government facilities that have all transformed into e-Government. Yes, it is true. You don't have to run anymore, two more clicks from your chair, and your dreams may come true.

Back then ...

... i was a student. I remember surfing in simplistic, for today's standards of course, HTML pages, downloading C compiler, and recent patches for video games. I also learned of dynamic content, CGI based on Perl and later on PHP. I even developed some web applications myself. Then i heard of Java and applet, more dynamic content in a stateless world. Cookies, hidden parameters, hashes, sessions, all concepts that gave birth to the modern era of computing.

Best effort ...

... the standard says about the HTML rendering. In simple english, “do the best you can web browser” and in a more simple manner “write the worst code ever”. What happens if you open the <b> tag and never close it? Nothing at all. What even happens if you do not know what <custom_tag> means? Just ignore it.

In this platform, that did the best that it could we based our dreams regarding the future of our applications, and to make it worse we decided to make it even worse. And we did it beautifully, we took the task of web design from the computer scientist and we created a bunch of incompatible technologies.

The Tower of Babel

Indeed the world-wide web consists of a bunch of unrelated, badly coupled technologies. For example, we have CSS and HTML. What was the key idea behind them? Who knows? We created HTML that followed a specific notation, that obeyed the tag open - tag close rule and then we decided (years later) to defy it and create something like the X configuration files. Why that? Nobody knows, and keep in mind that they were proposed by the same organisation, W3C.

The in all this, we tried to give more juice to it by adding a javascript, that pasted HTML in the start, and later of modified the DOM tree of a page. Superb idea, we created a scripting language that is domain-specific but not exactly serve its purpose. Javascript has the design concept of a general-purpose programming language, yet we use it like XSLT, to modify XML data. I am sure it is fun to traverse node lists and create new tags the hard way.

At the end, to complete our divine masterpiece, we made the ultimate move. We made incompatible web browsers, that had unique features. So it is nice that a web developer, must have Internet Explorer, Opera, Safari, Firefox, and Camino to check if the web site works and is displayed correctly in all these platforms. And yes each browser it is like a platform with unique add-ons and interpretation and implementation of the web standards. So what if the menu is an inch lower in Internet Explorer? We have to live with it.

I will not refer to Java applets, flash or Silverlight. All those technologies are helping to increase the complexity not reduce it, introducing more and more diverse features.

Give the Web Back ...

... to the computer scientists, because now it is a playground. Everyone can do whatever he wants and get away with it. The web is now built on unstable ground, and it will soon collapse. See all the web apps, like gmail. Try to estimate the effort behind the creation of it. You think it is fun or creative to do it? Or do you think that it would require half the time of creating it in a decent development platform? No, I'm not trying to estimate the development time here, i know it is a very difficult task.

Programmers Love the Web ...

... and they want the web to love them back. I do not think i have the required skill to propose things to do it better, so i want you to add a big IMHO (In My Humble Opinion) just before every bullet that follows. So i think that it is time to ...

  • ... enforce the standards. And i mean no best effort service anymore. The web has now penetrated all households and all businesses, time to mature.
  • ... create a compatible platform. No more dozens of browsers with unique behavior. I want it to work the same way in each one of them. Why LaTeX does it? Do the same.
  • ... find a decent scripting language. I think javascript is not enough. We create specialized languages for this kind of work.
  • ... try to find a common syntax for all the related technologies. We like XML notation? Stick with it! Do not create more and more languages that cause diversity. We like humans to learn and use it.
  • ... find ONE standard for HTML. I do not care who will it be. But it is funny to see standards like, XHTML, HTML 4.01, strict, and transitional.

In the End ...

... we all use it. Even the most non-technical user knows that <b>text</b> prints the text bold. We all like blogging, forums and googling. Let's make it work the right way.

Epilogue

Reading it again, the 2008 me was angry at the right thing and hopeful about the wrong fix. He wanted a strict platform, designed by computer scientists, the way LaTeX is. What we got was a lenient platform, specified down to its error recovery, owned mostly by one engine. It works the same everywhere now, which is what he asked for. Whether that was worth who ended up owning it, I am still not sure.