Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

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*.

share|improve this question

We're looking for long answers that provide some explanation and context. Don't just give a one-line answer; explain why your answer is right, ideally with citations. Answers that don't include explanations may be removed.

21  
Actually Alan Kay has at one point in the past answered a Stack Overflow question... –  World Engineer Mar 24 '13 at 2:54
1  
@WorldEngineer Source? –  kalaracey Mar 24 '13 at 3:01
13  
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. –  james Mar 25 '13 at 0:53
7  
IMHO the fundamental problem is that the web usage was extended well beyond its initial application domain (hyper text). –  chmike Mar 25 '13 at 9:05

8 Answers 8

up vote 48 down vote accepted

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.

share|improve this answer
    
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 '13 at 0:04
1  
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 '13 at 11:45
2  
+1 for reading thoughtfully –  ZJR Mar 25 '13 at 11:57
2  
"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. –  Cormac Mulhall Nov 21 '13 at 18:03
    
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. –  Evan Plaice Feb 18 at 21:29

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.

share|improve this answer
25  
there is also the issue that HTML was polluted by the browser war –  ratchet freak Mar 24 '13 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 '13 at 4:51
2  
@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 '13 at 7:56
3  
@StephenC: Nevertheless, I would strongly support an effort to build new, better standards. –  greyfade Mar 24 '13 at 8:25
1  
@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. –  m3th0dman Mar 24 '13 at 9:03

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 one and see genius design you're not looking closely enough.

share|improve this answer

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.

share|improve this answer
9  
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 '13 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 –  m3th0dman Mar 24 '13 at 12:31
    
Then the answer has more problems: everyone covered by "all people were amateur" turn out to be unamateur :-( –  user4051 Mar 24 '13 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). –  m3th0dman Mar 24 '13 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 '13 at 20:00

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".

share|improve this answer

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.

share|improve this answer

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.

share|improve this answer
    
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 '13 at 21:35
    
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 '13 at 9:22
2  
"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 '13 at 22:34

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.

share|improve this answer
1  
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 '13 at 21:29

protected by World Engineer Mar 25 '13 at 12:16

Thank you for your interest in this question. Because it has attracted low-quality answers, posting an answer now requires 10 reputation on this site.

Would you like to answer one of these unanswered questions instead?

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