A Love Letter To HTML

25 years ago, the web was started as an idea for how to organise communication between a diverse group of people on a wide variety of devices. At the core, HTML holds it all together. Why did HTML and the web grow to dominate all other hypertext systems that came before, and go on to revolutionise human interaction? What is it about HTML that we should remember and respect, even as the web platform grows and changes?

I presented this talk several times, including at Fluent Conf and jQuery UK. The video above is a recording from jQuery, where I presented a 30 minute version of this talk. The following transcript is from Fluent, where my talk was 10 minutes.

This morning I’m going to do a little bit of a love letter to HTML.

When I was a kid, long distance phone calls cost about 50 cents a minute. Which, in today’s money, is $2 per minute.

You make a quick call to Grandma and Grandpa to check to see how life is going, and it could very quickly become a $50 phone call. Which is a lot.

It’s really hard now to imagine what it was like in a world where it would cost you $50 bucks to just check in with somebody really quick. The web has changed us so much already, and our ability to communicate with each other has changed so much.

You’re going to meet people at this conference and in the past you would just exchange business cards and be like, “yeah, yeah, let’s stay in touch”, and then you’d never see them or talk to them again in your life.

Now, instead — of course we know this — you follow them on Twitter, you look up their website, you see what work they’ve done, you check out their GitHub Repo.

Caroline Wood (who is a friend of mine who I’ve never met in real life) — she said recently when we were chatting on Skype, she said, “The magic of the web is getting to know other people, really know them, who you would otherwise never have had the chance to meet”.

I think that’s really at the core of the web. It’s real easy to focus on the new Chrome developer tools, and the la-di-da-da-da, and the bug tickets we’ve got to get done today.

But there’s something really magnificent going on that’s been going on now for 25 years and one day.

Yesterday was the 25th Anniversary of the web, the 25th anniversary of a pin in the timeline marking the beginning of the web.

This memo is what it’s marking. This memo, in which Tim Berners-Lee wrote-up a formal proposal to his boss. He had ask his boss — even he did — “hey, is it okay I work on this thing? I have this idea.”

It was another year and a half before any software got written.

Robert Cailliau joined in with Tim Berners-Lee, they both had been working on a lot of different kinds of systems and had been trying to solve the same problem over and over again. The two of them started working together and really they were on a mission to solve a problem. They were trying to figure out how to best collaborate and share information among a wide group of people at CERN.

At CERN they’re doing all these crazy things like smashing atoms together and trying to figure out the nature of existence. Keeping documents about that — it was like a side project. The web was just like: how do we keep things organized?

There were a lot of other things going on at the time. There were a lot of Hypertext projects out there, there were a lot of documentation systems that people were able to buy, use or subscribe to.

But these two, they knew they wanted to have a system where they could have researchers technical manuals, manuals for software, minutes for meetings, hastily scribbled notes. They wanted to be able to have…

CERN is this crazy place where people are coming from all over the world and they come for a year or two or six months, and they leave. It’s not very hierarchal, it’s not a one company, it’s a research laboratory, international.

People just didn’t even know who each other were. How could you keep track of who was who and what was what? And who was working on which thing and what was scheduled when?

Tim Berners-Lee and Robert Cailliau were shopping around, they were really trying to figure out what system to be used. They each built one in the past. They knew that there was a problem with everything they were seeing. It would sort of force these researchers and these scientists to use a very specific set of taxonomy or a very specific set of how you’re going to organize everything. They were very top down systems and they had a very fixed structure.

They knew that people would not go for that, they weren’t going to use it.

Tim Berners-Lee said about writing, “I would have to create a system with common rules that would be acceptable to everyone. This meant as close as possible to no rules at all. This notion seemed impossible until I realized that the diversity of different computer network and systems could be a rich resource. Something to be represented, not a problem to be eradicated.”

We know what happened. The web crushed, it crushed. It became not only a great tool to CERN, but all over the world.

It took over everything else that was happening on the internet. This graph only goes to April ‘95. I drew a graph for you that goes longer, it looks something like this:

Why did the web crush everything else? Why was it so popular? I feel like there’s really something about the nature of the web that I hope to understand and to teach. And for everyone else to understand and to use in making projects that you’re making today.

Here’s some qualities.

One thing, there’s no central authority. You don’t have to now write an email to CERN to say, “Hi, my company is doing X and we just made a new website. Is it okay with you if we put our website on the internet?”. Now it’s water, we’re fish and water and you just don’t even notice the water.

But at the time it was a very radical idea to not have a central authority controlling the system. There is no clearing house, there’s no phone book, there’s no main place where everything is put. You can link to other people without their permission. Despite what my friends on Facebook think when they ask me or other people, “hey, is it okay if I link to your thing?”. Yes it’s okay that you link to the thing I put on the internet. You don’t need to ask me permission.

That idea to be able to link to other items out there on the web and not have to have permission, not have to have it be a two-way link. It was just a radical big deal, it was a big deal.

That you can put any kind of content on the web and you can structure it in any way that you want. You hire your designers, your user experience folks, your information architects, you can figure out whatever is best for the project that you’re working on. Build it however you want to build it. It doesn’t matter that your website is completely unlike everybody else’s website.

The web itself, HTML itself, was designed and built in a way to make that totally possible.

Another thing — one thing that Tim Berners-Lee writes about a lot — is how important it was for this to be universal, for this to work across a whole bunch of different devices and a whole bunch of different network connections. Does this sound familiar?

Everybody doesn’t have the same computer. Everybody doesn’t have to be running the same operating system or have the same type of network. You think that’s bad now? We’re wrestling with those problems now, they were way worse 25 years ago when these were the computers that people were using to get on the internet.

This is a web browser, this is the Line Mode browser, which is really the first widely distributed browser out of all of the early browsers. Because you could just use it, you didn’t need to have next machine to use it. You could use it on a terminal or something like this. You can actually go surf the web today using the Line Mode browser. The folks at CERN just led an effort to rebuilt the line-mode browser so you can play with it today.

But when we talk about the internet of things and accessibility, in order to run iOS app, you have to have an iOS device. To run an Android app, you have to have an Android device. To run the web, baked into the very nature of the system is the fact that you don’t have to have any one of those particular devices.

It’s flexible, simple and forgiving. Flexible, it ensures that you can use any kind of content, any kind of data. In the beginning, the web ingested all the content from Gopher, Usenet and Listservs.

HTML was designed to be able to represent any type of document. It’s also designed to be very simple. It’s simple on purpose. It’s not simple because it’s old and old people didn’t know how to write complex awesome computer stuff. It was based on SGML. SGML was way more complicated. They intentionally paired down what had been going on. They took what was happening at Hypertext and made it more simple because they knew it would work better that way. They wanted it to be simple to learn as well.

It’s forgiving. You can write bad HTML and it will be okay. The system, the browsers will forgive you. You can have old stuff and the new stuff comes out and the old stuff still works. You write new stuff and it sort of works with the old stuff. We feel the pain points, but really there’s so much much of it that really does work where we don’t get into trouble. I feel like in some ways because of the simplicity, because of the flexibility, because it’s forgiving, in some ways, HTML doesn’t get a lot of respect.

Probably many of you in this room have been in some kind of computer science degree program and you had this idea for this big awesome web project. Your professor was like, “That’s not real computer programming.” That’s not good enough. That’s just that web thing.

I feel like, boo hoo. I’m sorry, HTML is only the most awesome programming language ever. That has taken off and is being used by more people on more systems, on more computers in the history of forever always and, oh, it’s not good enough for you? I’m supposed to be using Turbo Pascal instead? Oh wait, no, it’s Java or wait, what year is it?

HTML is really quite remarkable. It’s also declarative. I think too it gets a lot of disrespect because it’s not procedural, it’s not functional, it’s a declarative language. But that doesn’t make it not a programming language.

I think sometimes as web platform folks we can get a little confused and feel like, dang, that stupid HTML, I’m just going to load an empty page. I’m so sick of this crap. Once the empty page is loaded, then I’ll run the real program, I’ll run the Java script. The Java script will be awesome and it will do all this awesome stuff.

Even yesterday I overheard somebody say, compared to iOS, compared to Android, the web still really sucks. I feel like no it doesn’t. It’s just different. I don’t want us, as we make a Java script more powerful and we make the web platform more powerful, I don’t want us to lose perspective and lose sight of what really did make the web be amazing.

We’ve had this impulse before to try to clean up this chaos or these unknowns, all this weird flexibility. Let’s get rid of it. Let’s just make a box and we’ll put Flash in it and then we’ll be able to control everything. Or let’s get more specific, let’s make it more complex. We’ll do XHTML2 and then we’ll make HTML into a real programming language. We know what happened. Those things just didn’t work.

I just feel like if your HTML looks like this, then you’re doing it wrong.

It shouldn’t look like this. This is a developer who is trying to get out of it and doesn’t want to do it. Sometimes I hear developers say, HTML is really much to easy, I don’t need to bother with it, it’s not worth my time. Then I hear sometimes the very same developers say, “HTML is way too hard. I don’t know which element I’m supposed to use. It’s not consistent. It’s okay if I use the wrong one, what is that? I don’t like that. I’d rather just not use any if I can.”

Which is it? Is it too hard or is it too easy?

HTML is really quite remarkable. What it’s enabled us to do in the way it’s enabled human beings to connect to each other and share our work with each other. Despite all these crazy different devices. Despite all the unknowns that we have. It’s really absolutely remarkable.