91

OK, so I paraphrased. The full quote:

The Internet was done so well that most people think of it as a natural resource like the Pacific Ocean, rather than something that was man-made. When was the last time a technology with a scale like that was so error-free? The Web, in comparison, is a joke. The Web was done by amateurs. -- Alan Kay.

I am trying to understand the history of the Internet and the web, and this statement is hard to understand. I have read elsewhere that the Internet is now used for very different things than it was designed for, and so perhaps that factors in.

What makes the Internet so well done, and what makes the web so amateurish?

(Of course, Alan Kay is fallible, and no one here is Alan Kay, so we can't know precisely why he said that, but what are some possible explanations?)

*See also the original interview*.

15
  • 24
    Actually Alan Kay has at one point in the past answered a Stack Overflow question...
    – user28988
    Mar 24, 2013 at 2:54
  • 20
    stackoverflow.com/questions/357813/…
    – user28988
    Mar 24, 2013 at 3:04
  • 6
    IMHO the biggest missed opportunity was not making HTML parsing strict e.g. the predecessors like SGML etc had strict parsing rules but the early web browers/UA allowed any sort of HTML and tried their best to display them. That made it easy for HTML to get started but caused problems for years.
    – jqa
    Mar 25, 2013 at 0:53
  • 9
    IMHO the fundamental problem is that the web usage was extended well beyond its initial application domain (hyper text).
    – chmike
    Mar 25, 2013 at 9:05
  • 3
    I have a lot of respect for Alan Kay's work but he's talking out of his backside if he truly believes this. As a person who has spent a significant amount of time actually implementing low level network parsers I can confidently say the APIs for TCP/IP were equally amateurish and naive. Sure, implement a variable length of options extensions (that nobody ever used) but make the address space fixed and limit it to a 2 byte length, because that wasn't idiotic. Feb 18, 2014 at 21:38

10 Answers 10

63

He actually elaborates on that very topic on the second page of the interview. It's not the technical shortcomings of the protocol he's lamenting, it's the vision of web browser designers. As he put it:

You want it to be a mini-operating system, and the people who did the browser mistook it as an application.

He gives some specific examples, like the Wikipedia page on a programming language being unable to execute any example programs in that language, and the lack of WYSIWYG editing, even though it was available in desktop applications long before the web existed. 23 years later, and we're just barely managing to start to work around the limitations imposed by the original web browser design decisions.

9
  • So he wanted the browser to be a mini operating system, in that it would be more interactive than early HTML (it's getting better now, I agree)?
    – kalaracey
    Mar 25, 2013 at 0:04
  • 3
    What does WYSIWYG have to do with the Web? That is purely a browser feature. Now, the lack of proper editing, that is a true Web failure. POST is utterly inadequate for that purpose.
    – MSalters
    Mar 25, 2013 at 11:45
  • 10
    "What does WYSIWYG have to do with the Web?" That is the point, the vision of the web is very limited. Static text files being passed around. No interaction. No logic. No code. That is a very limited vision compared to what computers can do and what Kay had already seen being done years previous. And because the web is so static it needs constant revision. In Kay's vision the browser itself would come with the webpage it is displaying. Nov 21, 2013 at 18:03
  • 5
    In an ideal world that would work and frameworks like Java applets and Flash attempted to make it a reality. When you take into consideration the security aspects, cross system compatibility, ability to scale, and work it takes to maintain state between requests. It's no wonder why it has taken so long to advance. Some very smart/talented people have spent years working out the fundamental flaws/weaknesses of a naive specification. Feb 18, 2014 at 21:29
  • Hooking stackoverflow.com/q/6817093/632951
    – Pacerier
    Apr 11, 2017 at 8:49
80

In a sense he was right. The original (pre-spec) versions of HTML, HTTP and URL were designed by amateurs (not standards people). And there are aspects of the respective designs ... and the subsequent (original) specs ... that are (to put it politely) not as good as they could have been. For example:

  • HTML did not separate structure/content from presentation, and it has required a series of revisions ... and extra specs (CSS) ... to remedy this.

  • HTTP 1.0 was very inefficient, requiring a fresh TCP connection for each "document" fetched.

  • The URL spec was actually an attempt to reverse engineer a specification for a something that was essentially ad hoc and inconsistent. There are still holes in the area of definition of schemes, and the syntax rules for URLs (e.g. what needs to be escaped where) are baroque.

And if there had been more "professional" standards people involved earlier on, many of these "miss-steps" might not have been made. (Of course, we will never know.)

However, the web has succeeded magnificently despite these things. And all credit should go to the people who made it happen. Whether or not they were "amateurs" at the time, they are definitely not amateurs now.

17
  • 31
    there is also the issue that HTML was polluted by the browser war Mar 24, 2013 at 3:23
  • 3
    This goes part of the way to explaining my own dissatisfaction with the current standards. I can't help but think that this is something we need to revisit with the benefits of both experience, hindsight, and current technical capabilities.
    – greyfade
    Mar 24, 2013 at 4:51
  • 3
    @greyfade - Unfortunately, the W3C is severely hampered in that goal by 1) millions of legacy web server installations, billions of legacy web pages, and 2) companies who are more interested in playing the "commercial advantage" card than in fixing stuff.
    – Stephen C
    Mar 24, 2013 at 7:56
  • 3
    @StephenC: Nevertheless, I would strongly support an effort to build new, better standards.
    – greyfade
    Mar 24, 2013 at 8:25
  • 2
    @greyfade That's the thing with the Internet too; millions of routers with IP/TCP stack and OSI model, a better and standardized model will not be adopted.
    – Random42
    Mar 24, 2013 at 9:03
31

It seems to be due to a fundamental disagreement between Alan Kay versus the people (primarily Tim Berners-Lee) who designed the web, about how such a system should work.

The ideal browser, according to Kay, should really be a mini operating system with only one task: To safely execute code downloaded from the internet. In Kays design, the web does not consist of pages, but of black box "objects" which can contain any kind of code (as long as it is safe). This is why he says a browser shouldn't have features. A browser wouldn't need say a HTML parser or a rendering engine, since all this should be implemented by the objects. This is also the reason he doesn't seem to like standards. If content is not rendered by the browser but by the object itself, there is no need for a standard.

Obviously this would be immensely more powerful than the web today where pages are constrained by the bugs and limitations of the current browsers and web standards.

The philosophy of Tim Berners-Lee, the inventor of the web, is almost the exact opposite. The document "The Principle of Least Power" outline the design principles underlying HTTP, HTML, URL's etc. He points out the benefit of limitations. For example, having a well specified declarative language like HTML is easier to analyze, which makes search engines like Google possible. Indexing is not really possible in Kays web of turing-complete black-box objects. So the lack of constraints on the objects actually makes them much less useful. How valuable are powerful objects if you can't find them? And without a standard notion of links and URLS, Googles page rank algorithm couldn't work. And neither would bookmarks for that matter. Of course the black box web would be totally inaccessible for disabled users also.

Another issue is content production. Now we have various tools, but even from the beginning any amateur could learn to author a html page in notepad. This is what kickstarted the web and made it spread like wildfire. Consider if the only way you could make a web page required you to start programming you own rendering engine? The barrier to entry would be immense.

Java applets and Silverlight resemble to some extent to Kays vision. Both systems are much more flexible and powerful than the web (since you could implement a browser in them), but suffer from the problems outlined above. And both technologies are basically dead in the water.

Tim Berners-Lee was a computer scientist who had experience with networks and information systems before inventing the web. It seems that Kay does not understand the ideas behind the web, and therefore he believes the designers are amateurs without knowledge of computing history. But Tim Berners-Lee certainly wasn't an amateur.

15
  • 6
    +1. A lot of what Alan Kay says makes him appear to be the sort of person who would not get the old joke about the difference between theory and practice. He's developed a lot of great theories over the years which have failed horribly in practice, and have been thoroughly out-competed in the "marketplace of ideas" by less theoretically pretty systems that actually work well, and Kay's never seemed to truly understand that. Mar 27, 2015 at 15:08
  • 2
    "well specified declarative language like HTML ". That's rich.
    – Andy
    Mar 28, 2015 at 0:31
  • 2
    For its designed purpose, hypertext, html is fine. But as an application platform it fails miserably. The only advantage was no deployment and platform agnostic. Searching is not the only thing people do on a computer. Financial planning, games, social interactions, etc. Who cares if I can't search my blackjack game? Given a choice between web app and mobile app, people overwhelmingly choose the native app. There's a reason for that.
    – Andy
    Mar 28, 2015 at 15:43
  • 2
    No doubt native applications are more powerful, but that is not really the question. According to Kay the web should only by native apps, no HTML at all. Such a web would never have taken off.
    – JacquesB
    Mar 29, 2015 at 9:07
  • 3
    @Pacerier: We already had the ability to do all that with Java applets decades ago, and with ActiveX, Silverlight and so on. The web is not stunted at all since it does't limit you to HTML, it can support any media format including code like Java applets. It is just not used very widely for the reasons I state in the answer.
    – JacquesB
    Apr 1, 2017 at 6:40
21

I read this as Kay being unfamiliar enough with the lower level protocols to assume they're significantly cleaner than the higher level web. The “designed by professionals” era he's talking about still had major problems with security (spoofing is still too easy), reliability and performance which is why there's still new work being done tuning everything for high speed or high packet loss links. Go back just a little further and hostnames were resolved by searching a text file which people had to distribute!

Both systems are complex heterogenous systems and have significant backwards compatibility challenges any time you want to fix a wart. It's easy to spot problems, hard to fix them, and as the array of failed competitors to either shows it's surprisingly hard to design something equivalent without going through the same learning curve.

As a biologist might tell an intelligent design proponent, if you look at either one and see genius design you're not looking closely enough.

8
  • 2
    The .hosts file is still in use on pretty much every platform. It's handy for blacklisting a malicious site.
    – Rob K
    Mar 27, 2015 at 20:51
  • @RobK Definitely – that history runs deep even if we don't use things like tools.ietf.org/html/rfc953 to update it. These days, however, I wonder if the most common usage is malware. Mar 30, 2015 at 18:05
  • Alan Kay is attributed as being one of the developers behind Ethernet. How low level do you need? His criticism are against the browsers, not the network technologies. Basically he says browsers should had been implemented as virtual OSs, running apps, not sites. Oct 16, 2021 at 2:13
  • I can't read his mind but I don't think you'd find many people involved in large-scale Internet operations who'd say it's “error-free” (BGP spoofing alone would be worth a discussion) even after decades of development. Ethernet is a LAN protocol & many of the networked computing ideas he's credited with work best in local environments rather than over the internet. Note that I'm not saying the web was perfect — only that the Internet also was not. Both are complex systems built by humans & have needed plenty of course correction over the decades, exactly as you'd expect. Oct 25, 2021 at 14:09
  • You are mixing up the terms web and networking widely, something you do in your answer as-well. Oct 30, 2021 at 22:00
11

Ahh yes, I've asked Alan this question a number of times, for example when he was in Potsdam and on the fonc mailing list. Here is a more recent quote from the list which to me summed it up quite well:

After literally decades of trying to add more and more features and not yet matching up to the software than ran on the machines the original browser was done on, they are slowly coming around to the idea that they should be safely executing programs written by others. It has only been in the last few years -- with Native Client in Chrome -- that really fast programs can be safely downloaded as executables without having to have permission of a SysAdmin.

My understanding of his various answers is that he thinks web-browsers should not display (HTML) documents, possibly enriched, but simply run programs. I personally think he is wrong in this, though I can see where he is coming from. We already had this sort of thing with ActiveX, Java Applets, Flash and now "rich" JavaScript apps, and the experience generally wasn't good, and my personal opinion is that even now most JavaScript heavy sites are a step back from good HTML sites, not a stop forward.

Theoretically, of course, it all makes sense: trying to add interactivity piecemeal to what is basically is document description language is backwards and akin to adding more and more epicycles to the Ptolemaic system, whereas the "right" answer is figuring out that (rich) text is a special case of a program and therefore we should just send programs.

However, given the practical success of the WWW, I think it's wise to modify our theories rather than slam the WWW for having the gall not to conform to our theories.

7
  • 1
    I am coming around to this belief to, see my comment on the original question. Native, safe code execution in the browser (as an "operating system") rather than as a more dynamic version of (perhaps, certainly arguably) fundamentally static documents, I think is what he is getting at.
    – kalaracey
    Mar 25, 2013 at 21:35
  • 1
    Yes, but we already have an operating system, and we can already download programs from the web to run on our operating system, so if we wanted that functionality, we already have it! So the browser, IMHO, is fulfilling a different need for users, the drive to the web as an app delivery platform seems to be driven more from the supplier side (cool shiny tech + easier deployment).
    – mpw
    Mar 26, 2013 at 9:22
  • 3
    "Yes, but we already have an operating system, and we can already download programs from the web to run on our operating system..." But trust is the issue. You would not download the same number of native applications to your machine in one day as the number of websites you visit, simply because you only download applications you trust (the producer of the app) / verify (MD5 / SHA), you don't blindly download tens (hundreds) of them from people you do not know. OTOH, with the browser as an OS, you get the best of both worlds!
    – kalaracey
    Mar 26, 2013 at 22:34
  • @mpw no, the browser isn't fulfilling that. Brower "apps" are horrible because they try to abuse the browser into being something its not. It offers the most basic of controls and JavaScript is used to try and make anything remotely close to the rich control set of desktops. What is pushing kays vision forward are the app stores from Microsoft, Apple and Google. I suspect normal users will use browsers less as apps continue their rise. The web will still be there but it will be used behind the scenes by apps.
    – Andy
    Mar 28, 2015 at 0:37
  • @mpw, We should have that, but we don't already have it now. What's the URI for running Eclipse in my browser now? There is none. This is the problem. This is the difference between Alan's vision and Tim's short-sighted viral idea. With Tim's lame idea, you have to download Eclipse using a URI from your browser to your OS and then run it manually outside the browser. With Alan's idea, you simply download-cache-run Eclipse using a URI. Tim didn't invented the web, he killed it with his lame, shabby "counterfeit" product. ...
    – Pacerier
    Apr 1, 2017 at 4:18
5

I think he was pointing to something less obscure-- TBL knew nothing about the hypertext work that had gone on from the 60s, so this work didn't inform the design of the web. He often talks of computing as a pop culture, where practitioners don't know their history, and continually "reinvent the flat tire".

4

You cannot really say that the Internet or the Web was invented by amateurs or professionals because those fields are absolutely new ones; all people were amateur in Internet protocols before they were invented so from a point of view the inventors of the Internet were amateurs too.

If we were to be really judgmental the Internet was not so great after all: IPv6 is needed. And it is not only about the address space; IPv6 has a new header with fewer and different fields.

Another big difference from the Internet and the Web is how they are perceived by the programmer; a programmer rarely interacts with the Internet. From his point of view in IP you have addresses and in TCP you have a port in addition and you are assured that the packages are sent. That's about it... While with Web the programmer has a more intense interaction: HTTP methods, headers, HTML, URLs etc. It is normal to see the limits of something with many more possibilities than in something with almost no possibilities at all. With this I don't want to say that the Internet is simple: underneath it is kind of complex but this complexity is handled by network and telecommunications engineers and is about configuring something in a limited amounts of possibilities while in the web you basically have unlimited possibilities but the task of building complex applications relying only on packet sending.

Regarding the greatness of these two technologies, the Internet is so appreciated because it is a very scalable technology and the idea of layering was very good one; basically at the lower levels you can use any technology you want (WLAN, Ethernet, Token Ring etc.) and have IP as a standard intermediate protocol upon which TCP and UDP are placed and above which you can basically add what application protocol you want.

The greatness of the Web is strictly related to the greatness of the Internet because the Web strongly relies on the Internet, having the TCP/IP stack underneath. But I would say the Internet is dependent on the Web too; the Internet existed 20 years before the Web and was kind of anonymous but 20 years after the Web, the Internet is ubiquitous and all of this thanks to the Web.

6
  • 10
    This is not quite true. Vinton Cerf studied data packet networking at graduate school and Bob Kahn worked for ARPA's information processing technologies office, so they both were professionals when they developed TCP/IP. Berners-Lee, on the other hand, was in particle physics.
    – user4051
    Mar 24, 2013 at 10:42
  • 2
    @GrahamLee Berners-Lee was not in physics; according to wikipedia in 1980 at CERN he "proposed a project based on the concept of hypertext, to facilitate sharing and updating information among researchers." From 1981 to 1984 "worked on was a real-time remote procedure call which gave him experience in computer networking." So by 1989-1990 he was not an amateur... both quotes have references en.wikipedia.org/wiki/Tim_Berners-Lee
    – Random42
    Mar 24, 2013 at 12:31
  • Then the answer has more problems: everyone covered by "all people were amateur" turn out to be unamateur :-(
    – user4051
    Mar 24, 2013 at 15:13
  • @GrahamLee If we want to be absolutists; I tend to believe that von Neumann really wasn't a professional in the field of computer architecture when he wrote this - en.wikipedia.org/wiki/First_Draft_of_a_Report_on_the_EDVAC - basically it wasn't even finished and represents the blue print for most of the computer architecture used today. At that time von Neumann was busy with the Manhattan project and before that there wasn't such thing as computer architecture (or we could go to Babbage and say the same thing).
    – Random42
    Mar 24, 2013 at 17:03
  • 1
    No, he wasn't, he was a mathematician. Though people have been looking for ways out of the constraints of von Neumann (or more properly, Turing) machines for decades: cs.ucf.edu/~dcm/Teaching/COT4810-Fall%202012/Literature/…
    – user4051
    Mar 24, 2013 at 20:00
4

The Internet has worked remarkably well as a prototype of the packet switching concept discovered by Baran, Pouzin and contemporaries. Contrary to popular opinion, this does not mean that IPv4 as handed down is the perfect protocol architecture, or that IPv6 is the way to go. John Day, who was deeply involved in the development of ARPANET and IP, explains this in his 2008 book Patterns of Network Architecture.

As for the Web, in the words of Richard Gabriel, "Worse is Better". Tim Berners-Lee's account, Weaving The Web, is decent. How The Web Was Born by Gillies & Cailliau is denser and less readable but has lots of detail and some fascinating links with other events in personal computing at the time. I don't think Kay gives it enough credit.

1

I dunno, some part of the non-web internet has some horrible warts. Email was before the web, and is part of the internet, and the standard is very open, and requires a lot of hacks on top to tackle (but not solve) the spam problem.

2
  • 3
    I think, by the internet, he meant tcp/ip, and by the web, http/html/javascript, rather than email. He goes on to talk about the browser.
    – kalaracey
    Mar 25, 2013 at 21:29
  • E-mail relates to the internet exactly the way the web does, so calling the web something separate yet including e-mail as "part of the internet" as you so clearly state it, is simply inaccurate. Furthermore, Kay said that we take the net for granted, just as we do the pacific ocean. The fact that you start talking about e-mail in your response pretty much proves the point. :-)
    – Pelle
    Feb 3, 2017 at 0:10
0

"Amateur" does not refer to the lack of programming skills, but the lack of imagination.

The underlying problem with Tim Berners-Lee's web is that it was never built for developers. (This is in stark contrast to Alan Kay's web.)

Tim's web was built for non-coders who would publish on the web directly by dabbling with files containing their journals/articles interspersed with HT-markup-language: It's like 1980s WordPerfect and MS-Word, except they would use "<b></b>" instead of clicking on the B icon, and would save it as an open ".htm" format instead of a proprietary ".doc" format. The invention here is the "<a>" tag, which allows these static journals/articles to be globally interlinked.

And that's it, that's the entire web vision by Tim: his web is a mere global highway of interlinked static-articles. Maybe if you had the money, you can buy an editor like Dreamweaver, Nexus, Publisher, Citydesk(?), etc, which would help you generate all those "<b></b>" tags by clicking on the B icon.

..And we see how his vision didn't work as intended. Indeed, there are mighty red flags right from the start that the world had wanted way more than what Tim's vision offers:

  • Red flag 1: The rapid rise of "smart CGI" (PHP).

  • Red flag 2: The rapid rise of "smart HTML" (Javascript).

These days, we have even more red flags like the rise of Chrome-OS-is-the-browser-is-the-OS (exactly what Alan Kay had intended the browser to be btw) and WASM / browser-extensions.


In contrast to Tim's web, Alan Kay's web on the other hand, is a dynamic web built for programmers: a global highway of interlinked dynamic-programs. Non-coders who need a "page" would simply publish one by using a program on the web. (And the program itself was obviously written by programmers, not HTML-dabblers.)

..This is exactly the status-quo of Tim's web in the 2000s, but if we had Alan's web, it will have been done in the 1990s: Instead of the world having "wordpress and friendster" only in the 2000s, we will instead have them right when the web started in the 1990s.

..Similarly, instead of having programs like Steam, Visual Studio, Warcraft, VM Ware on the web in the 2040s, we will instead have them right now in the 2010s. (The multi-decade delay is due to these programs already having been built for the OS-is-not-the-browser, thus reducing the economic incentive for them to be rebuilt on the OS-is-the-browser-is-the-OS.)

So this is what people mean when they say Tim Berners-Lee had killed the True Dynamic Web by pushing his "shabby static web" onto the world. Ever heard of the terms "web 2.0", "web 3.0"? They would have simply been called "The Web" if we had Alan's web instead of Tim's web. But Tim's web needs constant revision because it is so static.

Obviously, all hope is not lost, as the Web can be remodeled however way browser vendors define it to be. But the point is that all these "bleeding edge" stuff that they are "inventing" on the web now are stuff that has already been invented a long time ago. We could already have it all today, not tomorrow.

Not the answer you're looking for? Browse other questions tagged or ask your own question.