Fronteers — vakvereniging voor front-end developers

Of Gaps, Fillers and Empty Spaces by Christian Heilmann



Whoa, that's loud.

I have a lot of slides, so I will be fast.

Good thing you know all English and you can throw things at me.

I will have a few things in there that might be controversial.

I'm OK with that.

I might mention the new company that I'm working for, which is a terrible thing for speakers to do because we all love sponsorships, but we hate names of companies.

And I will basically talk about things that happen to me right now, and I want you to remind yourself of how lucky that we are here, and we all of these lanyards and everybody has these shiny Apple things that I see in the audience here, and everybody has a job, and everybody does have a house of sorts, or lives in London like me and it's a tiny house.

And I want to talk about gaps that I see in our market.

Now, annoying gaps, things that drive you crazy.

I wanted to use another font face, but I didn't want to see every designer in the audience here twitch.

We've come a long way, and we're still on a journey.

This was a few days, a few weeks ago, and probably the most rock 'n' roll picture of us I've ever seen.

That's Stephen Hay, me, and Bruce walking around downtown Bucharest and looking like the new CD cover that will never come out, hopefully.

I'm speaking at conferences every single week right now.

From time to time, I go from conference to conference.

This was the last two months or three months.

And I never repeat my talks.

I always write a new talk.

I always meet new people.

And I want to make sure that I get the best out of these conferences, because I remember having to beg my boss for months and months for my first ticket to go to a conference, which was PHP Conference 2004, here in Amsterdam.

And then my first real conference that got me excited was the at @Media Conference 2005 in England, where everything started for me, more or less.

I already was a successful web developer, but nobody knew about me.

And I was asking every single speaker questions, pissed them off to no end, but then somebody came up to me and said like, you notice stuff.

Why don't you speak? And I'm like, nobody wants to hear me.

And then OK, why don't you write a book? And this is how I wrote my first book, just by being an annoying guy at a conference that asked questions.

Attending these events, to me, is great and I still feel confused at the time how I deserve all this, how I'm the guy who is just a coder or somebody who puts things together on the web for people, how people come up to me, and go out to after parties and be like, I don't know if I can talk to you.

You're like, I don't know.

How drunk are you? I'm just Chris here, and we're in a situation.

I know I have people that say I'm intimidating.

I don't know how.

I don't know why.

It might be just because I'm a redhead German-English mix guy.

But it's just people are coming up to me and saying that this is so amazing what you do.

And I feel every single day, like it isn't.

And I think that's healthy.

It's a massive privilege that we have to be here, that somebody paid us a ticket or we saved the money to get the ticket to be here or we won the ticket, so make sure you make the best of what you have here.

Don't take these conferences too lightly, because we work our ass off to be up here and give you something nice.

The organizers don't sleep at all.

And they have a terrible life up until the last moment.

Everybody here on stage was shit-scared, including me right now.

And you should pay credit to this and not just see a conference as something to have a jolly and go something.

I see the numbers of sponsorship.


When I hear like 15,000 euro sponsorship for a conference and then I hear people going, I'm so bored.

I don't want to be here.

I'm like, why did we spend this money? At Mozilla, we opened a sharing space in Calcutta in India, where for $2,000 we have wireless, water, sanitary things, and seats for a whole year for eight developers.

That's a better $2,000 for me than 15,000 euro for conference that says like, I don't want to be here.


You meet amazing people at these events.

This was at Nightly Build IO in Dusseldorf where I was emceeing, and Lizzie Mary Cullen, an artist, a real artist, a published art, not somebody that saved the GIF the wrong way, and it was glitchy, and like, look, I made art, somebody who gets really paid for these kind of things.

She was so scared she couldn't sleep the first day.

She was just-- because she gave a talk before, and it went bad, and she was very afraid of it.

So I spent the whole evening sitting with her, going through her slides, talking, listening to her stories, helping her out, what she can do.

We watched a movie together, and basically then she calmed down a bit.

And she gave an amazing keynote.

Everybody loved that thing, and everybody was amazed.

It was the first night.

And the next morning, I saw the stuff that she does more.

This is in a pub in London where she is right now doing these outlines.

And people-- anybody coming in can paint these out.

This is so cool.

And I didn't know about this space.

It's a beautiful space down the road from where I live, so I went to her and visited her.

At the conference before she left, she slipped this under my door.

Thank you so much for helping and to overcome my fear speaking, you were so supportive.

I'm not saying this to show off.

I'm just saying that if you're nice to people, if you're a decent person, decent stuff will come back, and this is from the heart.

This is not an email or an automated thank you or a like on Facebook.

This is a human interaction.

And these human interactions are what you should celebrate at these events, and also watch the videos.

Pay credit to what people put in here.

And she worked in that cafe that is down my road, and I'm now working there as well, because it's just I cycle there for half an hour and it's a beautiful place, and how lucky are we that we can take these laptops, and have free wireless in those places just for buying a coffee and working there.

My parents, when I tell it to them, they're like, that's crazy.

You must be working for some cult or something.

There's no way that anybody pays you for that, and you can do these beautiful things.

But we do, and we don't appreciate them anymore.

So take some time to have fun at these events as well.

Don't take it as just a normal thing.

Like, for example, when I tried-- How Ethan [INAUDIBLE], if he really rehearsed his talk properly, so I sat in the first row with this horse head during his whole talk, and it was quite fun to see him twitch from time to time.

Or at the after party of BrazilJS where I stage dived cause there was a really cool rock band, and there was a mosh pit, and there was stage diving, and it was not-- Everybody was invited.

It was a friendly atmosphere, and I never thought I would stage dive at a JavaScript conference, but you do.

So you meet people and you make impressions.

You meet other speakers, and you see them grow over the years.

And you see people coming out of nowhere and becoming better than you, and you love it for it, because I always hire people that are better than me cause they should replace me, so I can do other things.

We all should not be afraid of talent.

We should nurture it and support it.

And also, it's fun that, like, [INAUDIBLE] Opera and me seem to have the same outfit.

So this seems to be like a thing going on that every speaker has to look like that sooner or later.

And I love the impressions that you make, like the rant by [INAUDIBLE] made the ticket worth for Smashing Conf, ranting as always at BT Conf.

Unfortunately, he's right and it's all necessary.

And then these things that make you always get up in the morning and start writing.

Things like, after hearing this thing, I'm happy that I'm a developer, and I will keep developing the way I do right now.

He inspired me to do the things that I want to do.

And I'm like, yes, please give us this kind of feedback.

Not me, give every speaker this kind of feedback.

We do this, not for the money, not for the fame, not for the traveling, dear god, not for the traveling, but we do it for you guys, and the more feedback we get, the more happier we are as well.

But as people want me to rant, here's my rant coming.

I get disappointed with the results we have.

We know we get very excited.

We put lots of effort in, and then we-- it's going on-- and OK.

Because I feel a disconnect between what we do here and what the world outside does.

What we hear at events, like, all the tools that we heard about today, most of you will probably have heard of in some way or another as well.

But it's good to see somebody that actually shows these tools to you, how they can be used more efficiently.

The outside world, however, looks completely different.

We don't reach the people that are actually building things on the web any longer.

That's why the average website is up to two megabytes with a few hundred requests.

We repeated for about eight years that this is a shit idea.

And still these websites are out there.

The website

has three megabytes of blocking JavaScript that is an unminified version of jQuery and Amber in one file.

And this is a government website.

This is people that are really clever.

The whole website looks amazing, but this is just, what's going on.

Apple's website was 38 meg with 614 requests.

We just released a website that had a blocking script that made the page not render for half a minute or overlaid some fonts and everybody complained that it doesn't work in Chrome.

It probably only works in Edge.

No, it didn't work anywhere.

No, we just made that mistake.

And we made it because a marketing department built that website and we didn't.

And it was just hurtful to me that a marketing department in the same company doesn't know the things that we're talking about here.

Outdated frameworks and helper libraries hinder browser interoperability.

The quick fix of today is the landfill of tomorrow.

The amount of stuff that we find when we tell people, OK, your website only works in Safari, and it doesn't render at all on Microsoft Edge, because it thinks it's an unknown browser.

It's because of some library that they used.

And we're trying to create a parallel web for mobile and desktop.

I see this all the time.

You just-- unknown browser, you get a mobile experience that only works on iOS, and that's just new desktop browser.

And I was like, why is this happening? Why is this going on? It's so rampant that every browser maker, and all of them-- I worked for two of them, but I talked to the others as well-- we all have tools where we scan why the web is broken.

We all have to put code in our browsers that is bad code from other browsers not to break the web, because developers have put these things in there.

We sent these scanner tools which we allow people to look their websites up and find errors, and most of the problems that they find is in libraries that they used without knowing what these libraries do.

They just think, OK, that's fine.

It now works in all browsers.

I don't have to think about it any longer.

The amazing tools we show here are largely unknown.

I show to

people and they're like, whoa, this is incredible.

And it's like we know it for five years.

You know, this thing is awesome.

There's no question about it.

But people don't follow as much as we do everything that we do here.

So there is a massive disconnect between the people building things and the people talking about best practices for building things.

A best practice is found.

It's not defined.

It's found by trial and error.

There's a huge difference in messaging at different conferences as well.

I love that the Institute for Studies, where opinion becomes fact, which is in every conference that I have right now.

Let's talk a bit about the extremes.

On the one side, and Jake Archibald talked a bit about this as well, you have the old people of the web, like me, who like progressive enhancement, who talk about the web of the past, how it used to be, how it became the web that it is, and why it's so beautiful now.

The web is free and independent, and browser independent, hardware independent, ability independent, language independent, the web is for everybody, and if you do anything against then you're a bastard.

JavaScript is fault intolerant.

Everything that can go wrong with JavaScript means there is a meh from the browser.

It's not like HTML or CSS that says like, OK, that line is shit.

We go to the next one, fine.

We find something.

JavaScript just throws in the towel, and says, no doing anymore.

I'm sorry you did something wrong.

And there's a language that this great website called, Everyone has JavaScript, right? that shows you all the things that can go wrong with JavaScript before it renders.

We have a problem with too many tools coming and going, and adding to the landfill of the web.

And that is a problem.

That is really an issue, because there is a daily JavaScript library, and people just put them in and never, ever maintain them again, and hope that they will be performing for the rest of the world, fixing things in browsers that already have been fixed in the browsers by them.

Websites and apps don't need to look the same in every browser.


Every single conference, I hear that thing being repeated.

Every single conference I see it repeated, and then I look at websites, and they look different from browser to browser, or try to look the same in every browser and are slightly broken except for in Safari and in Chrome.

Cool links don't change.

I love that, that somebody wrote these links down in a textbook.

And I've got bookmarks from 1997, 1998.

I've got I've got 6,000 links and delicious to cool articles about the web, where we all showed each other off how cool we are.

All of them are broken.

So the cooling things don't change doesn't work either.

Simulating native UI confuses users.

Like, don't make a scrolling look like a native scrolling, because it will never be as performant.

This was at the other location here in Amsterdam at the CSS day and at the PhoneGap day.

This is for washing your hands.

I really wonder how many drunk guys go into that toilet and abuse that thing every day.

Like, it's just for washing your hands, and you step on it, and you wash your hands like this, your [INAUDIBLE] are next to it, but it looks so inviting and shiny, so that's what we do with your [INAUDIBLE] the web as well.

Now, all of these things are very true and very obvious.

These things have been a truth for so long, and we should all be supporting them, and when Jeremy Keith, a few days ago, at Smashing Conf when I was emceeing, when he gave again his talk about progressive enhancement, great talk, great speaker, wonderful points, absolutely amazing.

I started with welcome to the 10th anniversary of stating the bloody obvious.

Which is not a criticism to him, it's just sad that we have to repeat things over and over and over again.

And it was really the 10th anniversary because in 2004, 2005, I wrote the unobtrusive JavaScript self-training course, which lead to my book about JavaScript, which was the first time that I said, just use JavaScript as an enhancement.

Don't put it in the way of people.

And I still like the term unobtrusive JavaScript much more than anything else, because it means I'm just here to help.

I'm not in your way.

And that's what JavaScript should be still.

The web of old, like the people like me and Jeremy that get very excited about semantic HTML, and text markup, and content and stuff have forgotten one thing, and that is UGC.

User generated content was the big thing when I started at Yahoo in 2006.

When a company realizes we don't have to write content, and we don't have to buy content.

We just have to give people an interface so they can give us their content, and we can put ads on it, and make money with it.

And this is what the web declined to completely.

Twitter, Facebook, messaging services, everything right now is people putting their content on the web and thinking they're going to be an amazing publisher, and they want to be the first one.

They want to be the best one.

They want to put as many as emoticons on it as possible.

And they want to be the one that actually brings the news that nobody has seen before.

Let's retweet that image that has 1,200,000 visitors, because nobody else has done that before, right? And I love this picture of this old lady.

That was actually the visit of the Pope in America.

And she's just sitting there, like, you know what, I'm just recording this in my brain camera.

You know, I'm going to have that feeling.

I'm going to have the emotion.

I'm going to be the person.

I was there.

And everybody else is getting their phone out.

Let me get the shittiest, smallest picture of it, and be the person that puts it on the web to prove that I was there, rather than enjoying that I was there.

I hate that at concerts, when people stand in front of you with a camera, and you're like-- even better an iPad.

Like, you stand at a concert, and they film it.

The camera is good enough by now, but the sound of that will never be good.

Why are you wasting my time at the concert with your stupid recording? Nobody's going to need that.

Go and enjoy the concert that you paid money for.

But this is what the world we're in.

When we talk about semantic HTML, when we talk about structuring your page from scratch, nobody builds a thing from scratch anymore.

Everything is either maintained or it's going to be a framework for content to be put in.

So let's not hammer that home all the time and let's remember that the web has changed.

And how do we put alternative text on images that people put up on Instagram if they don't even put a proper title in there except for five emoticons that need alternative text again.

So how do we do that? We are in a world where people don't appreciate the plumbing of the web anymore, because the web is like water and electricity, it's just there.

It's something that people don't know how to live without anymore, so they don't appreciate it.

The other extreme, of course, is people that just build websites according to the beauty of them, like ah nice clean design, great texts.

I mean, we have great typography on the web right now.

I think any flat design without good typography would not have been possible, and that's why it needed so long to come out.

So and people say, why didn't we do it in the past? Because the text looked like shit.

That's why.

And everything is like beautiful there.

This is a company in New York, I think.

It's an estate agent and they made-- they have the hamburger icon, and they got all the things that you have to have, to have the map, and they have these beautiful sites.

But as we learned from the primate people, design also needs good wording.

And the wording gives you the information.

So to be sure that this is not just a template, but it really is an estate agent, they also gave it a good URL, which makes you remember again that important links, that links are very, very important.

And now you know it's an estate agent.

We got overall very data-driven.

That's the other big thing.

Like everything, as Remy just showed, we can test everything on the web.

And we can come up with these performance tests where every millisecond is more than the others.

How many users does your site have? How many users does your workshop have? These kind of things.

And Brian Larue did a really good thread of tweets here talking about native app stores versus the web and the numbers of it, and how many billion people are out there.

But I'm so bored with this.

I'm so tired of us throwing numbers at each other rather than throwing experiences and explaining how our work made a difference, how we inspired somebody, how we made a company, a small company, be able to maintain their website in an accessible fashion, and not just give them a website that they mess around with for two years, and then be remove it from our CV because we were embarrassed about it.

Browser statistics prove the future is here.

Every month there's like, oh, this browser has so many percentage down.

This one has some many percentage up.

You cannot detect a browser.

Ask the wireless guy here.

29% of the devices in this room are reported as unknown.

And I'm quite sure you didn't come in with your hand-built mobile phones.

These things have a name.

These things have a browser.

But detection is absolutely terrible.

So the whole concept of browser stats proving anything that we can do this or that.

Not really.

Feature testing, yes.

So tooling and abstraction save you from the confusion of the web.

Don't hold us back.

Like, we've got to use web components right now.

We've got to use service worker right now.

So let's make the tool chain do the work for us.

Let's put things out there that make it available right now without having to wait for it to be standardized or to kick the tires before we really put it in front of our users.

I love that Dark Art Defense Basic for Beginners from the Harry Potter Studios.

You can see the books there.

It's so cool.

We have an overwhelming amount of resources that disagree with each other.

Like, want to learn to JavaScript in 2015, it was like 600 articles all of them saying like, this is the future of JavaScript.

No, this is.

This is the best way to write it.

No, that is.

So when there was nothing to be learned, as when I started, it was actually nicer because I had two or three resources.

MDN was one of the truths that I found really early.

I'm like, OK, cool.

I can learn this now.

But now everybody has an opinion around it as well.

When I hear opinionated framework, it's like, yeah, of course, it was written by one guy.

Of course it has an opinion, your opinion.

So if it has been proven by a team, it might be a better opinion.

And we talk about get tooling.

This was an article the other day.

If you want to create an open source JavaScript project, this is the checklist that you have to follow.

And if you don't like it that way, then you can also have it as videos, and you can watch all of these 3 and 1/2 minute videos about all these steps that you have to take before you can actually release it as an open source JavaScript project.

All of these things are amazing.

All of things are very cool tools, power tools for power users.

But we throw this in the people's faces that want to write JavaScript as the first step to get into the world that we are in right now.

That scares me.

I would be-- I saw interview questions about JavaScript the other day.

I could not get a job.

I was just standing like, I have no idea what you're talking about.

But yeah.

Obviously I could look it up, most probably, but it looked like a Java interview, and all of a sudden it was about JavaScript, because with Note, we're now on the server, and we got to be more professional about everything.

Both extremes love to quote self-made laws of software to prove their points.

So there's always the Moore's law that computing always gets better and doubles in quality and halves in price every two years or something like that, assuming that everybody always buys a new computer because that $500 phone two months ago, nah, it's actually boring.

The batteries are empty.

I've got to buy a new one.

This is like it just shows it here as Lara Croft.

Then we have May's Law, software efficiency halves every 18 months, compensating for Moore's law.

So the faster computers get the more code rewrite.

We conceded with hard drive.

The bigger your hard drive, the more videos you will have on it.

We fill everything up as much as we can.

Then there's Postel's law.

Be conservative in what you send, be liberal in what you accept.

And that means also a lot of stuff coming into our sites, a lot of computation on showing [INAUDIBLE], allowing developers to write a lot of shoddy code, and having no error messaging in a library, but just allow them to do this kind of stuff.

Rest parameters, these kind of things are a sign of that, that like we assume developers to be bad, and we actually put things into JavaScript libraries, we put things into JavaScript engines, we put things into browsers to undo what developers are doing out there.

And then, of course, there's coleslaw, which is tasty.

I think we need less decrees and demands.

We're getting so in our own little world we make up all these laws and these things that you need to fulfill, otherwise you can't call yourself a developer, and it bores me.

It's just like this is not what it used to be.

This is not what made us grow into who we are.

This is not what allows us to get the next talent of the next few years.

We start being the lovable underdogs that invite new talent.

We are now as arrogant as the people that we replaced back then.

When I started as a web developer, I had Java guys with beards and suspenders standing there like, oh, your toy language, JavaScript, it will never be a thing.

I'm like, OK, fair enough.

And it became a thing.

That's OK.

But back then we were like, oh, let's fight for the web.

Let's make the web free.

Let's tell Microsoft that their browser is shit and make a better browser.

Let's have standards that we write against, rather than writing against browsers, instead of just doing the bidding of one browser.

And we tried to change the web to be more professional.

This is in England where there is a Carters Lane formally known Wibbly Wobbly Lane.

And that means Carter's an asshole.

I mean, sorry.

This is like, really, do you want to rename something as beautiful as Wibbly Wobbly Lane? And we do the same with the web.

It's just this crazy medium.

You don't control it.

You don't know what your users are doing.

There's not one way to do anything on the web.

But we call it professional way is this, and everything else is not the right way of doing it.

We turn engineering into a religion and it comes with all the dogma and holy wars that comes with that.

I love this.

Problem coffee, engineer solution, sarcasm is a side effect.


Let's celebrate that we're social assholes.

Let's celebrate that we don't want to talk to people and just want to code away and get some effect and get some sarcasm out there.

Are we really those evil people? You know, the guy who gets eaten on the toilet by a dinosaur In the film, because he's like, he's the IT guy.

Don't talk to him, just send him stuff, and something will come back.

We consider automation innovation to be linear.

Every new tool that comes out makes us more effective.

The more tools we have, the more effective we're going to be.

No, we're going to spend a lot of time learning those tools, rather than building more things.

And there is also a cap on how much more we can optimize ourselves.

We expect everybody to get pure happiness from coding.

We compare ourselves to how much we have on GitHub.

I love that tweet when she's like, here's my GitHub contribution graph.

I write code all beeping day.

I want to do something different outside of work.


This is where after 20 years our market should be, that you could do something at work to be creative and wonderful, and you don't have to spend your free time to actually get your kicks out of coding.

Working at a pace that no human should work in, our competition is ridiculous.

The amount of people when I interviewed for new jobs.

It's like, yeah, we expect people to stay late at night in the office, but you get free food.


I don't want to stay around my colleagues all day long.

It's good if I have a good relationship with them, but there should be a social life outside as well.

We shouldn't just talk to each other.

That's just weird.

That's cultish.

We complain about a lack of diversity and inviting environments all the time.

And then we make hack days to solve that problem.

He first diversity problem let's make a hack day.

Want to sit in a room with 40 other guys and try to make a demo that will never go live about a social problem? No.

I think this is not the right way of doing it.

We should change our interview practices.

We should change our onboarding practices.

We should make departments get promoted by how much they share with other departments, not how much more they actually release than other departments do.

We should allow people to work from fucking home.

I mean, we are on the internet, and we work for the internet, and everybody asks you to move to the Silicon Valley.

What's that about? That makes no sense.

We create open, but we're not inviting.

So it's this mixture of closed and open all the time.

Like, everything is open source, but oh, if you want to contribute, you're going to hear how socially inept I am in answering people's questions.

We make the terminal the starting point of web development, and that scares me.

That is just ridiculous.

When people say, OK, I want to start a website.

And you say, like, OK, well, you go to terminal and do this.

I've got 200 meg of NPM modules on my hard drive.

I have no idea what these things are.

I don't know how maintained they are.

I don't know how secure they are.

I don't know if they're actually going to be a security hole in the future.

But they were very professional and very useful at that time.

When you start a new website nowadays, the first thing is people tell you that it's easy.

You just do.

Have a MacBook Pro, because everything else is professional and open enough.

Make sure you are pseudo, whatever that means.

Install a node and NPM in Express.js.

Run the build script.

Look at a few minutes of random text scrolling by in your terminal, hoping that none of these warnings mean something important.

If there is an error, go to Stack Overflow and ask for help to learn that you're doing everything wrong, and you should use another stack to start with.

Start typing some text in your editor, and run the local server.

And then see what that text in the browser.

This should be easier, shouldn't it? And this is where I'm now showing you something that I learned yesterday night, and to make sure that I'm not here trying to sell you something, I changed it to like some cloud thing, and a company that supports gingers.

Because what you have here, you say a web app.

You press next.

You want to have an Express.js.

You say create.

And this is where an intern gets sent in the data center to actually start putting up a computer and set up the stuff for you.

While we're doing that, if your colleagues are a terminal people, and they love terminal, if you want to give them a nice surprise when they go for lunch, and they keep their computer open, type that one into their computer, and leave it there.

It will make them much more effective, and it will make them much more love you much more when you come back.

So this one, depending on the thing here, should have done something.

What is happening here is I'm getting a cloud hosted server running Node.js

and running Express.js

and that one is available for one hour.

And after that, it destroys itself or it can say with a button, I want to destroy it, as well.

So instead of installing Express.js, Node.js,

and everything on my computer, and running into all kinds of problems trying that my computer doesn't understand it, I have a computer to throw away.


Let's go back to that one.

So it has done it.

It might be the connection right now, but I think this is a very important thing to do.

And this is where also things like JSfiddle, JSbin, Mozilla's Thimble and CodePen come in.

These are great education tools.

Instead of telling people you need this and this to set up, and this is my favorite editor, please use that one as well.

Just send them to those tools and let them play with the web.

Let's build the web with the web.

And what I'm showing with the other one is that there's a lot of free hosting test sites.

And GitHub page is another example of that one where you can put your code nowadays and you can do it.

Yeah, this is rubbish.

Sorry about that.

But try it out.

I did a video up as well.

So you get a server, and you then have a visual studio in the browser as well to edit those files live on your computer.

And it's a very, very cool thing to just try something out instead of going fully into it.

So much for live coding.

I think we need fewer show-off tools.

We have these show-off tools, that like, oh, Bootstrap, and look you made a website.

And this kind of environment, that kind of library, and it turns people into those guys.

And I love his mate going like smirking like, you twat.

You know, like.

And he's all like, yeah, guys, I'm the best DJ on this planet.

Look at me.

And of course this feels good.

Getting something out of the door that looks beautiful is really, really cool.

But after awhile, you have to feel like a fraud.

And it is not fulfilling for you as an engineer to do this all the time.

It's not fulfilling having to lie about your skills.

You want to build some skills yourself.

And this what I call muscle memory.

We always try to protect people from making mistakes.

And I learned from my mistakes.

I love making mistakes because they hurt.

I don't want to do them again.

Yes, if you type in a dom construct 15 times, you learn how broken the dom is.

You don't just say, the dom is broken, use that library.

It's OK to learn by making mistakes.

And my favorite is driving.

The first time you go into a car, you see all these levers and things, and the three things down there, and in America it's just one, and nowadays it's probably just, go drive, go drive, car.

But you never think you can do any of that.

And then after a while of driving, it all becomes natural.

You just sit in the car, and you don't think about these things anymore.

And this is what muscle memory is, and we need muscle memory for programming.

We need people to learn programming and learn to appreciate the good things that we have nowadays by going through mistakes of the past, because only then they can understand how to use a power tool as well.

If they start with a power tool, they will never get any respect for the platform.

They will just say, oh, the platform is broken.

That's why we need an abstraction.

They get respect for the abstraction, but not for the platform itself.

We're wired to try to predict the next step.

And that is my favorite example is Tetris.

I used to work at a radio station, and amongst looking after their Windows 3.11

network with Novell DOS 7, and being on the air as a newscaster, I also had to go at the front and answer the telephone.

And that's the most boring job on this planet, so to make it happier we put Tetris on that computer.

And of course I came in late, so the high score was full of my colleagues, and all of them were really good at it.

And of course, as a geek, I'm like, I've got to get that high score.

And as a developer, you always try to play Tetris with like 15 lines.

You try to make up as many lines as possible, and then make them vanish.

You try to predict the next step.

You try to build up and then get rid of it, get build up, get rid of it.

And all my colleagues were better than me because they just removed one line at a time.

They didn't think the second step.

They just played as it played along right now.

And they sat behind me, and like, why don't you just play the lines, and you're like [GRUMBLE].

In the end, I got them, because the high score file was just a text file on the hard drive and you could edit it.

But it taught me one thing as a developer.

If Tetris taught me one thing, it's that errors pile up and accomplishments disappear.

This sounds very depressing, but it kind of is.

It's kind of a thing that you-- We always wait for people to recognize how amazing we are, but most of the optimizations that we talk about here are for ourselves.

The other people don't know what-- they don't appreciate what we're doing here.

They just want to make sure that we do our job on time.

So whatever we do as best practices here is for us, and not for the people that pay us.

Terrence Eden put this quite nicely. "Geeks

are people who run on dissent.

We see the world as broken, refuse to accept it, and try to fix things.

Then other geeks try to fix our mistakes, and we fix theirs, until we either asymptotically climb towards perfection or tear the whole thing down and start again."

This is what happens most of the time.

So we fix and fix, and then like, ah, that fix is too slow.

Let's do another one.

Like, just do a search for the same NPM module that does the same as the other one.

Like, instead of fixing something open source, we just write a new one.

Remember we were adamant not to break the web.

XHTM2 was through the outcry of developers was loud and clear.

We cannot have one single XML error not render the page, because we have no control over all the HTML.

It should not be us that-- Our users should not be punished for our mistakes.

That's why HTML5 is forgiving.

But now every single day, we have these kind of experiences.

There's some background JavaScript error and the page loads for nothing.

And without that error, there is no page for people there.

We reinvented XHTML in JavaScript because innovation or something, for the sake of feeling in control, because developers or engineers that come onto the web are scared of semantics and HTML.

Because it's magic.

It's like, this thing is a video element, and gives me a video element.

How do I control it? How do I change the color? Where do I find the current frame? How do I know how long that video is? I want to have everything-- As a developer, you always want control over everything.

That's why we write everything in JavaScript, instead of looking what the browser's doing already.

Because we can fix everything with JavaScript.

Probably when your dog is sick, there's a JavaScript solution for that one as well.

But we also have the problem if we fix everything with JavaScript, we become responsible for the outcome.

We also have to put all the accessibility in.

We also have to put all the maintainability in.

We have to think about the internationalization of it.

We have to think about all the things that browsers do for us.

I love this wheelchair ramp for very sporty wheelchair users.

And I hope that's not going into a road because if they leave that place, it's going to be interesting as well.

We give up all the beautiful and important things that browsers already do for us, and do them in JavaScript.

Like, oh yeah, input type required.


This thing can not be signed off.

That's it.

Don't write your own validation.

Don't make extra things that are there already in the browser.

Browsers do wonderful things for us.

Let's take a look at what browsers can do.

And yes, IE is dead.

We don't need to worry about that one anymore.

Use the HTML5 stuff that browsers have.

I'm not saying that you not use JavaScript.

JavaScript is great.

It made my career, more or less.

And it has its place.

What I want us to stop is being in the same UGC moment that our users are.

We want to release the new thing.

We want to be the first one to solve that problem.

We hear about some technology that's half-baked here, and we're going to write the JavaScript library to make it possible to use it.

And then it changes from under us.

And the JavaScript library still does the old version, and the next browser iteration needs to build the broken one and the new one in there not to break the web again.

So it's not about being the first.

It's being the one that actually builds usable things.

And that means you partner with designers.

That means you partner with UX people.

That means you partner with managers.

I loved having three people here on stage talking us how they build things together.

I want to see more of that at conferences, and less 400 minutes of terminal, look what I can do.

I say we should try to stop forcing and predicting the future.

In the Harry Potter Studios again, there's these prophecy orbs.

You probably have seen them in Harry Potter and whatever movie it was, where all these prophecies fall down, and like, they have to do the thing.

Now, the people who are worked on that film built 15,000 of those glass orbs, like physical 15,000, and then the director said, let's do it all with CGI.

Well, they couldn't predict that one, and they were predictive orbs.

Like, they didn't even sell them in the shops.

They just threw them away.

And that's just the kind of predictions that we do all the time.

We love to write generic code, because it predicts problems of the future.

We're shit at predicting the future.

If we were good at it, we all would play the lottery and wouldn't have to work anymore.

So generic code is like trying to predict the future that might not come.

It's time to use what we have more and to be more demanding to fix the baseline of browsers.

Date pickers, why are they all shit? Because nobody demands them.

People just use a jQuery date picker instead.

It has been five, six years now that we should have them.

We should have them.

We should complain about these basic things in browsers still being broken, rather than just, what does native do that browsers don't have? We want to have a baseline that we build on.

I'm not saying that we shouldn't innovate for a year.

I'm not going there, but there is a baseline that needs to be fixed.

And we should not be to care about browsers and have to test in all of them.

That was the beginning of the Web Standards Movement.

Like, we don't want to write for browsers.

We want to write according to a standard.

And we still want to install every single browser on our computer and test in every browser.

This is wasting our talent and wasting our time.

There should be automated systems for that.

There should be a headless version of every browser that we can test against and get regressive images, these kind of things.

We should not have to test and know all the browsers.

We should be able to write against a standard.

Because this is where native wins.

Because they have a standard that works on those.

It's predicted.

The predictions are much, much [INAUDIBLE] Android.

But in many devices, you know what's coming when you write the code.

In browsers, it's still like, it might.

So you'd have to do a lot of testing.

And I think that's not worth our time.

There are some breakthroughs to celebrate, like the US guidelines, I love that to bits.

Because now I can work with US government people, and I say like, this is what you should build towards, because this is what your government released for you.

Not like, oh yeah, look at best practices, and tra-la-la and everybody love each other, and we should do progressive enhancement.

I now have something to point to, and I have something for them to use.

And something that was paid by the government for, so they want to enforce it as well.

That's another good thing about that.

Deep down, we're all do-gooders and techno-hippies.

And there was a great talk at JSConf EU where they talked about fighting ebola with JavaScript office apps.

And I haven't quite read it yet, but I've heard so many good things about that.

And this is the kind of stuff I want to hear more.

How did our job make a difference? How did we make something new and something good for humans with our technology? Not like, how many milliseconds where we faster than the next JavaScript library? Because a big change is coming, and the big change is that the innovation that we have right now is everything the Silicon Valley.

We get all excited about what's happening there, and we think this is the audience that we need to [INAUDIBLE] for, and it's, oh god, these were the influences that moved the web forward.

And of course, there's a lot of money being thrown around in the Silicon Valley, and there's a lot of companies, there's lots of good innovation there.

America is really good at innovating, because it's built on that principle.

But the growth of the web is somewhere else.

And this is here.

This is in the emerging countries that have been emerging for a long, long time.

These are the countries that have a positive GDP of seven, rather than we have of an 0.4 or something like that.

This is where billions of new users are coming, and all of them don't have an iPhone, all of them don't have a MacBook Pro, and don't have a fast [INAUDIBLE] connection like we have.

We have to think back of the basics of the web to support something for these markets, and millions and millions of new users that are coming and are eager to go on the web.

One size does not fit all.

What we do right now to optimize, to almost get the same experience that iOS has with the web is completely insane to try to put over there on these machines that these people have.

It's basically so far removed from what they expect to have that people like Facebook and people like WhatsApp go over there and become the internet for people.

In Africa, there's places where people say Facebook is the internet.

They don't know any other thing of the internet.

Facebook is the only thing.

And they've done a good job in selling phones only with Facebook on them.

And I don't want that.

I love Facebook to bits.

They're great guys.

But I want the web, the publishing house, the open publishing platform to be available for everybody out there.

Bruce Lawson at State of the Browser 2015 and some other conferences gave this talk ensuring a performant web for the next billion people.

It's amazing.

Watch it.

It's like 25 minutes of your time that's really, really worth it.

Lots of numbers that you can tell your boss as well, where the growth is going to come in the next five years.

Proxy browsers is what people use in these countries, and we hate them as developers because they strip out JavaScript, and they make our images look bad.

But they get people onto the web.

Millions of users are more important than 10,000 developers being annoyed that our JavaScript gets mangled, because we shouldn't have relied on that JavaScript in the first place.

Tim [INAUDIBLE] by a proxy talk from [INAUDIBLE] here last year, or this year, was pretty, pretty amazing that way as well.

The web is a gift to us all, and you can contribute in many ways.

And I think all of us playing on the bleeding edge is us totally missing the point.

Us wanting to solve the problems of the web, each one of us, there's no point.

The bleeding edge is a short piece where you fall off if too many people try to play there.

So let's fix the thing that leads to the bleeding edge, and let the bleeding edge bleed a bit before it actually comes to us and tells us what the future is going to be.

Just be along for the ride, because the web is evolving.

Our market is changing.

There's new users coming.

I love that in England at the zero meridian it's basically, by the time you read this, you will have spun for 1,450 meters, and you cannot do anything about it.

Things move ahead with you.

Just be part of that ride.

Stop trying to control everything, because when you don't control things, that sometimes is when the fun starts, and where our end users, other people that I have no clue about, but how cool it is to find out who our next users are going to be, rather than being annoyed that our users don't have the browser that we have.

Yes, the web is full of terrible ides, bad architecture, and lacks a lot of features that native environments offer.

That's a fact.

That's the gaps that we're talking about here.

But what we try to replace it with is a step backwards to me.

The app markets, and app installs, an app uninstalls is like going back to having software on floppy disks, and making software a perishable, a sellable product, that can be made redundant.

The web can never be made redundant.

A website stays the same for years and years and years and years.

It's not fashionable anymore, but it still works.

A piece of software, I can make sure, like, OK, this app is not available anymore.

And with a website, it's really hard to remove something off the web.

Many celebrities know that.

There's a great concept in the Japanese world called wabi-sabi.

And there's a great talk here by Cheryl Hunter.

It's not an easy talk.

It starts very American.

That's the first hard thing about it.

And then it gets very dark into her history, what happened to her, and what she found out, how she got back on the horse, and how she got into a normal life again.

And the concept is wabi-sabi.

Wabi-sabi means celebrating gaps.

It represents a comprehensive Japanese worldview aesthetic centered on the acceptance of transience and imperfection.

Things are not perfect, and things are changing all the time.

Deal with that.

The aesthetic is sometimes described as one of beauty that is imperfect, impermanent, and incomplete.

Beauty comes from our flaws, from our mistakes, from our problems.

We just appreciate the beauty, because we can compare it to the things that are not beautiful.

And perfect beauty is just Photoshop and the shit people tell us on television.

That doesn't exist.

The world is flawed.

And we have to understand that these gaps, that these differences between beauty and non-beauty or perfection and imperfection and problems is what makes the world exciting and life exciting.

When Japanese men broke an object, they aggrandize the damage by filling the cracks with gold.

They believed that when something has suffered damage, it has a history, and it becomes more beautiful.

And the web is full of those things.

We have a lot of cracks.

We have a lot of gaps.

And a lot of them are because of history.

A lot of them are because of companies having their own ideas of what the web should be, and I think that's something we should just deal with.

We will not beat native in being native, because that's-- because it's native.

There's just no way of doing that.

But we can fill the problems of the web, and we can find the next use cases, and we can move with the audience that is coming towards us by becoming simpler, by becoming easier, and by building better things again.

Yes, the web is full of terrible ideas, bad architecture, and lacks a lot of features native environments offer.

Let's work on filling those gaps together with gold and wonderful experiences.

And I'm just here as a voice piece.

I just put these things together and found a story in it.

You are all as good as me.

You all should be here.

You all should be talking to each other about how to solve each other's problems, how to meet for a week from now when your local or in another country, and keep the conversations going, and be good to each other, and teach each other wonderful things, because we work in an environment that is so forgiving and so interesting I cannot compare it with anything else, except for being an artist, and I'm not an artist.

Bill Watterson of Calvin and Hobbes said it best. "We all have

different desires and needs, but if we don't discover what we want for ourselves and what we stand for, we will live passively and unfulfilled."

So don't be a passive person.

Be active.

Do something amazing.

And let's find those cracks, and fill them up with good things.

Thanks very much.

Ah, Christian, telling us off and making us laugh at the same time.

I don't think we have time for questions, old chap.



So that's a wrap.

I'm absolutely knackered.

Post a comment