JavaScript is a buffet - Scriptconf 2017 keynote
-
Upload
christian-heilmann -
Category
Education
-
view
655 -
download
0
Transcript of JavaScript is a buffet - Scriptconf 2017 keynote
![Page 1: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/1.jpg)
JavaScript is a buffet, not the enemy
Chris Heilmann @codepo8, ScriptConf, January 2017
![Page 2: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/2.jpg)
JavaScript is a buffet, not a main course…“
– Chris Heilmann
![Page 3: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/3.jpg)
JavaScript has grown from a language and one part of the web stack into a development environment in its own right.
![Page 4: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/4.jpg)
We want to and we do everything with JavaScript!
![Page 5: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/5.jpg)
This causes a lot of confusion…
![Page 6: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/6.jpg)
And I’m worried about the state of the web and our community.
![Page 7: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/7.jpg)
We work in the open, and with very flexible technologies…
![Page 8: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/8.jpg)
…but I see more drama and dogma than flexibility and understanding.
![Page 9: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/9.jpg)
Worst of all, I see a lot of arrogance and intimidation.
![Page 10: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/10.jpg)
That’s why today I want us to stop and think about how we use JavaScript and share our excitement.
![Page 11: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/11.jpg)
I’m not forbidding anyone to do whatever they want to…
![Page 12: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/12.jpg)
But I want to see us becoming more diverse and interesting!
![Page 13: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/13.jpg)
Going back to the buffet metaphor…
![Page 14: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/14.jpg)
Buffets are great…
✅ They feed a lot of people in a short time
✅ They allow people to make their own decisions
✅ They create less waste - people only take what they need
✅ They are async - you can cook whilst people eat
![Page 15: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/15.jpg)
Buffets have issues…
🙄 They have lesser quality food 🙄 They might contain things that
make people sick 🙄 You hope that everything is fresh
and gets renewed when not used 🙄 Everybody has their hands in them
and you hope they use the right tools to take their part
![Page 16: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/16.jpg)
And this is pretty much where we are with JavaScript…
![Page 17: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/17.jpg)
Buffet and JavaScript etiquette…
![Page 18: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/18.jpg)
Don’t cherry-pick and leave nothing for others…
![Page 19: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/19.jpg)
Your environment is very much you - and probably nobody else.
![Page 20: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/20.jpg)
This is great, own that and customise to your needs.
![Page 21: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/21.jpg)
Share what makes you happy and makes you more effective.
![Page 22: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/22.jpg)
Help improve the tools you use and you love.
![Page 23: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/23.jpg)
Don’t pick the things you like and demand people to accommodate to your needs.
![Page 24: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/24.jpg)
Make sure you explain in detail what you rely on and why.
![Page 25: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/25.jpg)
You’re creating a service; the more you think about others, the more success you will have.
![Page 26: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/26.jpg)
Be ready to be flexible.
![Page 27: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/27.jpg)
Don’t try to re-use dirty plates…
![Page 28: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/28.jpg)
Some things should not be used on the web any longer…
![Page 29: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/29.jpg)
It is not OK to block these things out, but it is a waste of time to support them 100%.
![Page 30: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/30.jpg)
We can’t move forward carrying the weight of failed APIs and broken implementations…
![Page 31: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/31.jpg)
This includes polyfills that aren’t included on demand
![Page 32: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/32.jpg)
The web needs to be evergreen
![Page 33: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/33.jpg)
Don’t put meat in the veggie section…
![Page 34: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/34.jpg)
There are environments that have no or very restricted JavaScript.
![Page 35: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/35.jpg)
Yes, JavaScript is used to spy on users and but that doesn’t mean we need to demonise it - we need to do better.
![Page 36: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/36.jpg)
Different use cases of JavaScript have different needs.
![Page 37: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/37.jpg)
Each of those have best practices and sensible approaches.
![Page 38: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/38.jpg)
They don’t need to mix, they might even be antithetical.
![Page 39: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/39.jpg)
And that’s OK - we can evolve JavaScript on different tracks.
![Page 40: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/40.jpg)
Don’t pile up your plate…
![Page 41: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/41.jpg)
It can be daunting to look at the JavaScript world.
![Page 42: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/42.jpg)
Don’t try to be everything, find something you are excited about and do that at first.
![Page 43: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/43.jpg)
Don’t use every cool new thing because it is cool and new.
![Page 44: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/44.jpg)
Get to know the basics and go from there
![Page 45: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/45.jpg)
If you publish something, think about collaborating.
![Page 46: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/46.jpg)
Documentation, tests and demos written by others allow you to question your biases and means less work for you
![Page 47: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/47.jpg)
Find a stack that allows you to deliver your work and don’t rely on things you don’t know yet.
![Page 48: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/48.jpg)
Don’t touch things you don’t like and you don’t want…
![Page 49: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/49.jpg)
It is OK not to understand something or not like it.
![Page 50: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/50.jpg)
It is not OK to discard it and call people using it unprofessional.
![Page 51: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/51.jpg)
JavaScript can be a great helper tool, it doesn’t need to replace everything.
![Page 52: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/52.jpg)
It is also not helpful trying to forcefully convert them.
![Page 53: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/53.jpg)
Use the cutlery provided…
![Page 54: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/54.jpg)
Flexibility and control comes at a price.
![Page 55: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/55.jpg)
The more functionality you make dependent on scripting, the more responsibility you have.
![Page 56: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/56.jpg)
If you can use the web platform to solve an issue - use it.
![Page 57: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/57.jpg)
You are likely to have much more support for environments you haven’t even thought of.
![Page 58: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/58.jpg)
You allow browser creators to optimise for you.
![Page 59: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/59.jpg)
The fewer code you ship to the end user, the better.
![Page 60: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/60.jpg)
Consider making several trips…
![Page 61: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/61.jpg)
We have an unfortunate drive to deliver all the functionality on first interaction in our products.
![Page 62: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/62.jpg)
This isn’t sensible in terms of data size and code that needs to get parsed and executed in an unknown environment.
![Page 63: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/63.jpg)
It also doesn’t allow us to deliver the right solution to the current environment.
![Page 64: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/64.jpg)
Consider not using the one-size-fits-all solution that makes you more effective.
![Page 65: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/65.jpg)
Instead, deliver a progressively improving solution.
![Page 66: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/66.jpg)
All the code that didn’t get loaded and executed is a benefit in a flaky connection world.
![Page 67: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/67.jpg)
Don’t be afraid to taste…
![Page 68: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/68.jpg)
We live in great times where you can learn most of what you need in our market online and for free.
![Page 69: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/69.jpg)
Go and play. Try something new. Kick the tyres of products people sell you as amazing.
![Page 70: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/70.jpg)
Don’t sit on your laurels, there is so much to explore out there.
![Page 71: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/71.jpg)
Be sure to use this opportunity, watch videos, take courses, take part in open source projects.
![Page 72: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/72.jpg)
Make sure to explain this to your companies and demand time to keep learning.
![Page 73: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/73.jpg)
If you need help with this, let’s talk :)
![Page 74: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/74.jpg)
What’s for pudding?
![Page 75: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/75.jpg)
The JavaScript world and community is us.
![Page 76: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/76.jpg)
It is not one browser or engine or environment. Monoculture is stagnation. Let’s not stagnate but improve.
![Page 77: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/77.jpg)
There are many ways you can help this community - not all are hard-core coding.
![Page 78: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/78.jpg)
We need to break the toxic demand of more code in less time.
![Page 79: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/79.jpg)
Quick, cheap and fast makes us sick
![Page 80: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/80.jpg)
We need to deliver things that are digestible, with good ingredients and non-fattening.
![Page 81: JavaScript is a buffet - Scriptconf 2017 keynote](https://reader036.fdocuments.in/reader036/viewer/2022062821/589abd701a28abcf058b48f7/html5/thumbnails/81.jpg)
And that needs time and effort. Demand that you get it.