Upload
christian-heilmann
View
655
Download
0
Embed Size (px)
Citation preview
JavaScript is a buffet, not the enemy
Chris Heilmann @codepo8, ScriptConf, January 2017
JavaScript is a buffet, not a main course…“
– Chris Heilmann
JavaScript has grown from a language and one part of the web stack into a development environment in its own right.
We want to and we do everything with JavaScript!
This causes a lot of confusion…
And I’m worried about the state of the web and our community.
We work in the open, and with very flexible technologies…
…but I see more drama and dogma than flexibility and understanding.
Worst of all, I see a lot of arrogance and intimidation.
That’s why today I want us to stop and think about how we use JavaScript and share our excitement.
I’m not forbidding anyone to do whatever they want to…
But I want to see us becoming more diverse and interesting!
Going back to the buffet metaphor…
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
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
And this is pretty much where we are with JavaScript…
Buffet and JavaScript etiquette…
Don’t cherry-pick and leave nothing for others…
Your environment is very much you - and probably nobody else.
This is great, own that and customise to your needs.
Share what makes you happy and makes you more effective.
Help improve the tools you use and you love.
Don’t pick the things you like and demand people to accommodate to your needs.
Make sure you explain in detail what you rely on and why.
You’re creating a service; the more you think about others, the more success you will have.
Be ready to be flexible.
Don’t try to re-use dirty plates…
Some things should not be used on the web any longer…
It is not OK to block these things out, but it is a waste of time to support them 100%.
We can’t move forward carrying the weight of failed APIs and broken implementations…
This includes polyfills that aren’t included on demand
The web needs to be evergreen
Don’t put meat in the veggie section…
There are environments that have no or very restricted JavaScript.
Yes, JavaScript is used to spy on users and but that doesn’t mean we need to demonise it - we need to do better.
Different use cases of JavaScript have different needs.
Each of those have best practices and sensible approaches.
They don’t need to mix, they might even be antithetical.
And that’s OK - we can evolve JavaScript on different tracks.
Don’t pile up your plate…
It can be daunting to look at the JavaScript world.
Don’t try to be everything, find something you are excited about and do that at first.
Don’t use every cool new thing because it is cool and new.
Get to know the basics and go from there
If you publish something, think about collaborating.
Documentation, tests and demos written by others allow you to question your biases and means less work for you
Find a stack that allows you to deliver your work and don’t rely on things you don’t know yet.
Don’t touch things you don’t like and you don’t want…
It is OK not to understand something or not like it.
It is not OK to discard it and call people using it unprofessional.
JavaScript can be a great helper tool, it doesn’t need to replace everything.
It is also not helpful trying to forcefully convert them.
Use the cutlery provided…
Flexibility and control comes at a price.
The more functionality you make dependent on scripting, the more responsibility you have.
If you can use the web platform to solve an issue - use it.
You are likely to have much more support for environments you haven’t even thought of.
You allow browser creators to optimise for you.
The fewer code you ship to the end user, the better.
Consider making several trips…
We have an unfortunate drive to deliver all the functionality on first interaction in our products.
This isn’t sensible in terms of data size and code that needs to get parsed and executed in an unknown environment.
It also doesn’t allow us to deliver the right solution to the current environment.
Consider not using the one-size-fits-all solution that makes you more effective.
Instead, deliver a progressively improving solution.
All the code that didn’t get loaded and executed is a benefit in a flaky connection world.
Don’t be afraid to taste…
We live in great times where you can learn most of what you need in our market online and for free.
Go and play. Try something new. Kick the tyres of products people sell you as amazing.
Don’t sit on your laurels, there is so much to explore out there.
Be sure to use this opportunity, watch videos, take courses, take part in open source projects.
Make sure to explain this to your companies and demand time to keep learning.
If you need help with this, let’s talk :)
What’s for pudding?
The JavaScript world and community is us.
It is not one browser or engine or environment. Monoculture is stagnation. Let’s not stagnate but improve.
There are many ways you can help this community - not all are hard-core coding.
We need to break the toxic demand of more code in less time.
Quick, cheap and fast makes us sick
We need to deliver things that are digestible, with good ingredients and non-fattening.
And that needs time and effort. Demand that you get it.