Hello.
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.
Thanks.
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.
Anyways.
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 Nasa.gov 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 WebPageTest.org 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.
Really.
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.
Hurrah.
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.
Cool.
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.
No.
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.
OK.
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.
Cool.
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.
Sorry.
OK.
So that's a wrap.
I'm absolutely knackered.