SlideShare una empresa de Scribd logo
1 de 25
Descargar para leer sin conexión
JavaScript isn’t hard…
Chris Heilmann @codepo8, SmashingConf Barcelona Jam Session, October 2016
Chris Heilmann
@codepo8
There is a lot of love for
JavaScript on the web…
💚❤💙💛💜
With good
reasons…
😃 Very flexible language
😃 Runs everywhere
😃 Automatically available in browsers
😃 Multiple, open-source engines available
😃 Huge community
😃 Lightweight development environment
(text editor/browser is enough?)
Lately JavaScript has a lot of visibility
which leads to obsession instead of love…
🔥💵📈💯📢
Which leads to a lot of pressure
and anxiety for us developers…
😫😓😭😱😡
Tell me if this
sounds familiar…
🤔 I feel like I’m out of the loop
🤔 By the time I get to play with a new JS
feature, people already blog it is
“considered harmful”
🤔 Everbody talks about flügelhorn.js but I
have no idea what I’d need it for – am I
building things nobody else does?
🤔 What are all these NPM modules on my
HD?
🤔 Why do I get all these warnings when I
build something and how come this is
not a problem?
Calm down!
JavaScript used to
be easy - it was
just one language
in the web stack.
HTML
(Structure)
CSS
(Look and Feel)
JavaScript
(Behaviour)
Due to its flexible
nature, we
extended its use
cases massively…
JavaScript now
is a lot more…
✅ Web Development
✅ Task runners
✅ Package management
✅ Module-driven development
✅ Extension of software (browsers, editors)
✅ APIs
✅ Services
✅ Servers
✅ Fat client applications
✅ Compilation target
✅ Embeddable runtime
✅ Argument firestarter
Enhance HTML
progressively
Use libraries
Use APIs and
services
Use node, gulp, grunt, NPM
and others to manage your
tasks and builds
Write code for Node,
other systems and
services to write apps.
Different uses require different skill levels…
Actively participate in
systems used earlier
in the timeline…
Participate in extending
editors and development
environments…
Work on meta languages
and ideas to bridge the
gap between JS and
higher level languages.
Actively participate in
inventing the next
version of the language
You do not need
to do all of that…
You do not need
to use all of that…
It’s totally OK to pick
and choose what you
want and feel
comfortable with…
“JavaScript” is not a language, but a whole
world of decisions and use cases by now…
Find your place in this world, travel to other
destinations, but don’t feel bad for not
becoming a resident in all of them…
Make yourself more
effective…
Understand what
you use and own it…
Ownership and responsibility balancing act
Build tools and process balancing act
Use what enables
others to work with
you…
Use what helps you
write maintainable
code…
Progressive enhancement balancing act
Control the UX with
JavaScript and own
the failure cases.
Rely on the browser
to give a “working”
experience.
Supporting the past balancing act…
Use powerful
language
additions…
Don’t block out
older browsers and
environments…
I can’t help you with all these decisions. It is
up to you and the products you work on
what makes sense and what doesn’t…
However, here’s
a few pointers…
🤓 Learn the language - learn how it works,
its strengths and weaknesses.
😉 Use polyfills and libraries when you
know what they do. Make sure you can
remove them and upgrade them if
needed.
😍 ES6 is the current, ratified version of
JavaScript. Use it, don’t wait for it.
🤓 Promises are an important part of every
new JavaScript API. Good to get your
head around them.
😱 Don’t panic! It’s a buffet, not a main
course. Pick what doesn’t make you sick.
CHRIS HEILMANN
@CODEPO8
CHRISTIANHEILMANN.COM
THANKS!

Más contenido relacionado

La actualidad más candente

Resisting The Feature Creature
Resisting The Feature CreatureResisting The Feature Creature
Resisting The Feature CreatureChristian Heilmann
 
Monolith vs Microservices vs Teams
Monolith vs Microservices vs TeamsMonolith vs Microservices vs Teams
Monolith vs Microservices vs TeamsTomáš Strejček
 
HTML5 and the future of the web (Dr. Seuss style)
HTML5 and the future of the web (Dr. Seuss style)HTML5 and the future of the web (Dr. Seuss style)
HTML5 and the future of the web (Dr. Seuss style)Christian Heilmann
 
Hoards of Collaboration Tools FETC 2015 Poster Session
Hoards of Collaboration Tools FETC 2015 Poster SessionHoards of Collaboration Tools FETC 2015 Poster Session
Hoards of Collaboration Tools FETC 2015 Poster Sessionjamiehagan
 
All the small things… - Awwwards 2016
All the small things… - Awwwards 2016All the small things… - Awwwards 2016
All the small things… - Awwwards 2016Christian Heilmann
 
Make your website more user friendly (UX)
Make your website more user friendly (UX)Make your website more user friendly (UX)
Make your website more user friendly (UX)Kirk Kimmel
 
Front-End 개발의 괜찮은 선택 ES6 & React
Front-End 개발의 괜찮은 선택  ES6 & ReactFront-End 개발의 괜찮은 선택  ES6 & React
Front-End 개발의 괜찮은 선택 ES6 & React지수 윤
 
Managing a Project the Drupal Way - Drupal Open Days Ireland
Managing a Project the Drupal Way - Drupal Open Days IrelandManaging a Project the Drupal Way - Drupal Open Days Ireland
Managing a Project the Drupal Way - Drupal Open Days IrelandEmma Jane Hogbin Westby
 
Why Use Google Docs?
Why Use Google Docs?Why Use Google Docs?
Why Use Google Docs?lindahb1950
 
Grunt understanding
Grunt understandingGrunt understanding
Grunt understandingKhalid Khan
 
7 crazy tips that will help you
7 crazy tips that will help you7 crazy tips that will help you
7 crazy tips that will help youJessica Wilson
 
Technology for Foreign Language Teachers
Technology for Foreign Language TeachersTechnology for Foreign Language Teachers
Technology for Foreign Language Teachersrmjohnson85
 
Real Developer Tools for WordPress by Stefan Didak
Real Developer Tools for WordPress by Stefan DidakReal Developer Tools for WordPress by Stefan Didak
Real Developer Tools for WordPress by Stefan DidakEast Bay WordPress Meetup
 
Batch programming
Batch programmingBatch programming
Batch programmingHarry Kodua
 
How long will it take me to become a Web Designer/Developer?
How long will it take me to become a Web Designer/Developer?How long will it take me to become a Web Designer/Developer?
How long will it take me to become a Web Designer/Developer?webdesignjhb9
 
Why to learn programming
Why to learn programmingWhy to learn programming
Why to learn programminggdgjss
 

La actualidad más candente (20)

Resisting The Feature Creature
Resisting The Feature CreatureResisting The Feature Creature
Resisting The Feature Creature
 
Train to europe
Train to europeTrain to europe
Train to europe
 
Monolith vs Microservices vs Teams
Monolith vs Microservices vs TeamsMonolith vs Microservices vs Teams
Monolith vs Microservices vs Teams
 
HTML5 and the future of the web (Dr. Seuss style)
HTML5 and the future of the web (Dr. Seuss style)HTML5 and the future of the web (Dr. Seuss style)
HTML5 and the future of the web (Dr. Seuss style)
 
Hoards of Collaboration Tools FETC 2015 Poster Session
Hoards of Collaboration Tools FETC 2015 Poster SessionHoards of Collaboration Tools FETC 2015 Poster Session
Hoards of Collaboration Tools FETC 2015 Poster Session
 
All the small things… - Awwwards 2016
All the small things… - Awwwards 2016All the small things… - Awwwards 2016
All the small things… - Awwwards 2016
 
Make your website more user friendly (UX)
Make your website more user friendly (UX)Make your website more user friendly (UX)
Make your website more user friendly (UX)
 
Inheriting iOS code
Inheriting iOS codeInheriting iOS code
Inheriting iOS code
 
Front-End 개발의 괜찮은 선택 ES6 & React
Front-End 개발의 괜찮은 선택  ES6 & ReactFront-End 개발의 괜찮은 선택  ES6 & React
Front-End 개발의 괜찮은 선택 ES6 & React
 
Managing a Project the Drupal Way - Drupal Open Days Ireland
Managing a Project the Drupal Way - Drupal Open Days IrelandManaging a Project the Drupal Way - Drupal Open Days Ireland
Managing a Project the Drupal Way - Drupal Open Days Ireland
 
Why Use Google Docs?
Why Use Google Docs?Why Use Google Docs?
Why Use Google Docs?
 
Grunt understanding
Grunt understandingGrunt understanding
Grunt understanding
 
7 crazy tips that will help you
7 crazy tips that will help you7 crazy tips that will help you
7 crazy tips that will help you
 
Technology for Foreign Language Teachers
Technology for Foreign Language TeachersTechnology for Foreign Language Teachers
Technology for Foreign Language Teachers
 
Real Developer Tools for WordPress by Stefan Didak
Real Developer Tools for WordPress by Stefan DidakReal Developer Tools for WordPress by Stefan Didak
Real Developer Tools for WordPress by Stefan Didak
 
Batch programming
Batch programmingBatch programming
Batch programming
 
How long will it take me to become a Web Designer/Developer?
How long will it take me to become a Web Designer/Developer?How long will it take me to become a Web Designer/Developer?
How long will it take me to become a Web Designer/Developer?
 
test
testtest
test
 
PhpStorm for WordPress
PhpStorm for WordPressPhpStorm for WordPress
PhpStorm for WordPress
 
Why to learn programming
Why to learn programmingWhy to learn programming
Why to learn programming
 

Destacado

JavaScript is a buffet - Scriptconf 2017 keynote
JavaScript is a buffet - Scriptconf 2017 keynoteJavaScript is a buffet - Scriptconf 2017 keynote
JavaScript is a buffet - Scriptconf 2017 keynoteChristian Heilmann
 
Zwischen Terminator und Star Trek: Digitalisierung und Künstliche Intelligenz
Zwischen Terminator und Star Trek: Digitalisierung und Künstliche IntelligenzZwischen Terminator und Star Trek: Digitalisierung und Künstliche Intelligenz
Zwischen Terminator und Star Trek: Digitalisierung und Künstliche IntelligenzChristian Heilmann
 
Suit up, bring extra oxygen Internet space explorers needed.
Suit up, bring extra oxygen Internet space explorers needed.Suit up, bring extra oxygen Internet space explorers needed.
Suit up, bring extra oxygen Internet space explorers needed.Christian Heilmann
 
The Progressive Web and its New Challenges - Confoo Montréal 2017
The Progressive Web and its New Challenges - Confoo Montréal 2017The Progressive Web and its New Challenges - Confoo Montréal 2017
The Progressive Web and its New Challenges - Confoo Montréal 2017Christian Heilmann
 
The Soul in The Machine - Developing for Humans
The Soul in The Machine - Developing for HumansThe Soul in The Machine - Developing for Humans
The Soul in The Machine - Developing for HumansChristian Heilmann
 
Barrierefreiheit inklusive - Abschlusskeynote A-Tag 2016
Barrierefreiheit inklusive - Abschlusskeynote A-Tag 2016Barrierefreiheit inklusive - Abschlusskeynote A-Tag 2016
Barrierefreiheit inklusive - Abschlusskeynote A-Tag 2016Christian Heilmann
 
Microsoft und die Open Source Community - Leaving the death star behind
Microsoft und die Open Source Community - Leaving the death star behindMicrosoft und die Open Source Community - Leaving the death star behind
Microsoft und die Open Source Community - Leaving the death star behindChristian Heilmann
 
Progressive Web Apps – the return of the web?
Progressive Web Apps – the return of the web?Progressive Web Apps – the return of the web?
Progressive Web Apps – the return of the web?Christian Heilmann
 
Progressive web and the problem of JavaScript
Progressive web and the problem of JavaScriptProgressive web and the problem of JavaScript
Progressive web and the problem of JavaScriptChristian Heilmann
 
Internet Days - The Depressed Internet
Internet Days - The Depressed Internet Internet Days - The Depressed Internet
Internet Days - The Depressed Internet Christian Heilmann
 
A New Hope – the web strikes back
A New Hope – the web strikes backA New Hope – the web strikes back
A New Hope – the web strikes backChristian Heilmann
 
Progressing JavaScript and Apps the Web way…
 Progressing JavaScript and Apps the Web way…  Progressing JavaScript and Apps the Web way…
Progressing JavaScript and Apps the Web way… Christian Heilmann
 
"Von Jugend an..." am A-Tag ´08
"Von Jugend an..." am A-Tag ´08"Von Jugend an..." am A-Tag ´08
"Von Jugend an..." am A-Tag ´08Robert Lender
 

Destacado (15)

JavaScript is a buffet - Scriptconf 2017 keynote
JavaScript is a buffet - Scriptconf 2017 keynoteJavaScript is a buffet - Scriptconf 2017 keynote
JavaScript is a buffet - Scriptconf 2017 keynote
 
Zwischen Terminator und Star Trek: Digitalisierung und Künstliche Intelligenz
Zwischen Terminator und Star Trek: Digitalisierung und Künstliche IntelligenzZwischen Terminator und Star Trek: Digitalisierung und Künstliche Intelligenz
Zwischen Terminator und Star Trek: Digitalisierung und Künstliche Intelligenz
 
Suit up, bring extra oxygen Internet space explorers needed.
Suit up, bring extra oxygen Internet space explorers needed.Suit up, bring extra oxygen Internet space explorers needed.
Suit up, bring extra oxygen Internet space explorers needed.
 
The Progressive Web and its New Challenges - Confoo Montréal 2017
The Progressive Web and its New Challenges - Confoo Montréal 2017The Progressive Web and its New Challenges - Confoo Montréal 2017
The Progressive Web and its New Challenges - Confoo Montréal 2017
 
The Soul in The Machine - Developing for Humans
The Soul in The Machine - Developing for HumansThe Soul in The Machine - Developing for Humans
The Soul in The Machine - Developing for Humans
 
Barrierefreiheit inklusive - Abschlusskeynote A-Tag 2016
Barrierefreiheit inklusive - Abschlusskeynote A-Tag 2016Barrierefreiheit inklusive - Abschlusskeynote A-Tag 2016
Barrierefreiheit inklusive - Abschlusskeynote A-Tag 2016
 
Microsoft und die Open Source Community - Leaving the death star behind
Microsoft und die Open Source Community - Leaving the death star behindMicrosoft und die Open Source Community - Leaving the death star behind
Microsoft und die Open Source Community - Leaving the death star behind
 
Progressive Web Apps – the return of the web?
Progressive Web Apps – the return of the web?Progressive Web Apps – the return of the web?
Progressive Web Apps – the return of the web?
 
Progressive web and the problem of JavaScript
Progressive web and the problem of JavaScriptProgressive web and the problem of JavaScript
Progressive web and the problem of JavaScript
 
Internet Days - The Depressed Internet
Internet Days - The Depressed Internet Internet Days - The Depressed Internet
Internet Days - The Depressed Internet
 
Bridging the future gap
Bridging the future gap Bridging the future gap
Bridging the future gap
 
A New Hope – the web strikes back
A New Hope – the web strikes backA New Hope – the web strikes back
A New Hope – the web strikes back
 
Progressing JavaScript and Apps the Web way…
 Progressing JavaScript and Apps the Web way…  Progressing JavaScript and Apps the Web way…
Progressing JavaScript and Apps the Web way…
 
Supercharging Public Speaking
Supercharging Public SpeakingSupercharging Public Speaking
Supercharging Public Speaking
 
"Von Jugend an..." am A-Tag ´08
"Von Jugend an..." am A-Tag ´08"Von Jugend an..." am A-Tag ´08
"Von Jugend an..." am A-Tag ´08
 

Similar a Javascript isn't hard

JavaScript Promises and the issue of Progress - SmashingConf Freiburg Jam Ses...
JavaScript Promises and the issue of Progress - SmashingConf Freiburg Jam Ses...JavaScript Promises and the issue of Progress - SmashingConf Freiburg Jam Ses...
JavaScript Promises and the issue of Progress - SmashingConf Freiburg Jam Ses...Christian Heilmann
 
Designing nlp-js-extension
Designing nlp-js-extensionDesigning nlp-js-extension
Designing nlp-js-extensionAlain Lompo
 
What is a "programmer"?
What is a "programmer"?What is a "programmer"?
What is a "programmer"?Jeff Crockett
 
Six reasons to learn JavaScript
Six reasons to learn JavaScriptSix reasons to learn JavaScript
Six reasons to learn JavaScriptOtto Kekäläinen
 
E4IT STARTER - MODULE 8.pdf
E4IT STARTER - MODULE 8.pdfE4IT STARTER - MODULE 8.pdf
E4IT STARTER - MODULE 8.pdfAnna Gandrabura
 
Java And Community Support
Java And Community SupportJava And Community Support
Java And Community SupportWilliam Grosso
 
Webdev and programming
Webdev and programming  Webdev and programming
Webdev and programming George Ingram
 
15 Experts on the Art of JavaScript Programming
15 Experts on the Art of JavaScript Programming15 Experts on the Art of JavaScript Programming
15 Experts on the Art of JavaScript ProgrammingFusionCharts
 
On Readability of Code
On Readability of CodeOn Readability of Code
On Readability of CodeArun Saha
 
Awesome free resources for learning javascript
Awesome free resources for learning javascriptAwesome free resources for learning javascript
Awesome free resources for learning javascriptDesignveloper
 
Future web developer, you are going to be tremendously valuable
Future web developer, you are going to be tremendously valuableFuture web developer, you are going to be tremendously valuable
Future web developer, you are going to be tremendously valuablePolcode
 
The Next Generation of Flash User Experience
The Next Generation of Flash User ExperienceThe Next Generation of Flash User Experience
The Next Generation of Flash User ExperienceKevin Suttle
 
'10 Great but now Overlooked Tools' by Graham Thomas
'10 Great but now Overlooked Tools' by Graham Thomas'10 Great but now Overlooked Tools' by Graham Thomas
'10 Great but now Overlooked Tools' by Graham ThomasTEST Huddle
 
pdx893ff61f-1fb8-4e15-a379-775dfdbcee77-7-14-26-112
pdx893ff61f-1fb8-4e15-a379-775dfdbcee77-7-14-26-112pdx893ff61f-1fb8-4e15-a379-775dfdbcee77-7-14-26-112
pdx893ff61f-1fb8-4e15-a379-775dfdbcee77-7-14-26-112Thinkful
 
E4IT STARTER - MODULE 12.pdf
E4IT STARTER - MODULE 12.pdfE4IT STARTER - MODULE 12.pdf
E4IT STARTER - MODULE 12.pdfAnna Gandrabura
 
You learned JavaScript - now what?
You learned JavaScript - now what?You learned JavaScript - now what?
You learned JavaScript - now what?Christian Heilmann
 
The Ring programming language version 1.7 book - Part 4 of 196
The Ring programming language version 1.7 book - Part 4 of 196The Ring programming language version 1.7 book - Part 4 of 196
The Ring programming language version 1.7 book - Part 4 of 196Mahmoud Samir Fayed
 

Similar a Javascript isn't hard (20)

JavaScript Promises and the issue of Progress - SmashingConf Freiburg Jam Ses...
JavaScript Promises and the issue of Progress - SmashingConf Freiburg Jam Ses...JavaScript Promises and the issue of Progress - SmashingConf Freiburg Jam Ses...
JavaScript Promises and the issue of Progress - SmashingConf Freiburg Jam Ses...
 
Designing nlp-js-extension
Designing nlp-js-extensionDesigning nlp-js-extension
Designing nlp-js-extension
 
What is a "programmer"?
What is a "programmer"?What is a "programmer"?
What is a "programmer"?
 
Six reasons to learn JavaScript
Six reasons to learn JavaScriptSix reasons to learn JavaScript
Six reasons to learn JavaScript
 
E4IT STARTER - MODULE 8.pdf
E4IT STARTER - MODULE 8.pdfE4IT STARTER - MODULE 8.pdf
E4IT STARTER - MODULE 8.pdf
 
Java And Community Support
Java And Community SupportJava And Community Support
Java And Community Support
 
Webdev and programming
Webdev and programming  Webdev and programming
Webdev and programming
 
15 Experts on the Art of JavaScript Programming
15 Experts on the Art of JavaScript Programming15 Experts on the Art of JavaScript Programming
15 Experts on the Art of JavaScript Programming
 
On Readability of Code
On Readability of CodeOn Readability of Code
On Readability of Code
 
Awesome free resources for learning javascript
Awesome free resources for learning javascriptAwesome free resources for learning javascript
Awesome free resources for learning javascript
 
Future web developer, you are going to be tremendously valuable
Future web developer, you are going to be tremendously valuableFuture web developer, you are going to be tremendously valuable
Future web developer, you are going to be tremendously valuable
 
The Next Generation of Flash User Experience
The Next Generation of Flash User ExperienceThe Next Generation of Flash User Experience
The Next Generation of Flash User Experience
 
'10 Great but now Overlooked Tools' by Graham Thomas
'10 Great but now Overlooked Tools' by Graham Thomas'10 Great but now Overlooked Tools' by Graham Thomas
'10 Great but now Overlooked Tools' by Graham Thomas
 
pdx893ff61f-1fb8-4e15-a379-775dfdbcee77-7-14-26-112
pdx893ff61f-1fb8-4e15-a379-775dfdbcee77-7-14-26-112pdx893ff61f-1fb8-4e15-a379-775dfdbcee77-7-14-26-112
pdx893ff61f-1fb8-4e15-a379-775dfdbcee77-7-14-26-112
 
A Brief introduction to Webassembly
A Brief introduction to WebassemblyA Brief introduction to Webassembly
A Brief introduction to Webassembly
 
E4IT STARTER - MODULE 12.pdf
E4IT STARTER - MODULE 12.pdfE4IT STARTER - MODULE 12.pdf
E4IT STARTER - MODULE 12.pdf
 
Rapid prototyping
Rapid prototypingRapid prototyping
Rapid prototyping
 
Learning to code in 2020
Learning to code in 2020Learning to code in 2020
Learning to code in 2020
 
You learned JavaScript - now what?
You learned JavaScript - now what?You learned JavaScript - now what?
You learned JavaScript - now what?
 
The Ring programming language version 1.7 book - Part 4 of 196
The Ring programming language version 1.7 book - Part 4 of 196The Ring programming language version 1.7 book - Part 4 of 196
The Ring programming language version 1.7 book - Part 4 of 196
 

Más de Christian Heilmann

Develop, Debug, Learn? - Dotjs2019
Develop, Debug, Learn? - Dotjs2019Develop, Debug, Learn? - Dotjs2019
Develop, Debug, Learn? - Dotjs2019Christian Heilmann
 
Taking the "vile" out of privilege
Taking the "vile" out of privilegeTaking the "vile" out of privilege
Taking the "vile" out of privilegeChristian Heilmann
 
Seven ways to be a happier JavaScript developer - NDC Oslo
Seven ways to be a happier JavaScript developer - NDC OsloSeven ways to be a happier JavaScript developer - NDC Oslo
Seven ways to be a happier JavaScript developer - NDC OsloChristian Heilmann
 
Artificial intelligence for humans… #AIDC2018 keynote
Artificial intelligence for humans… #AIDC2018 keynoteArtificial intelligence for humans… #AIDC2018 keynote
Artificial intelligence for humans… #AIDC2018 keynoteChristian Heilmann
 
Killing the golden calf of coding - We are Developers keynote
Killing the golden calf of coding - We are Developers keynoteKilling the golden calf of coding - We are Developers keynote
Killing the golden calf of coding - We are Developers keynoteChristian Heilmann
 
Progressive Web Apps - Techdays Finland
Progressive Web Apps - Techdays FinlandProgressive Web Apps - Techdays Finland
Progressive Web Apps - Techdays FinlandChristian Heilmann
 
Taking the "vile" out of privilege
Taking the "vile" out of privilegeTaking the "vile" out of privilege
Taking the "vile" out of privilegeChristian Heilmann
 
Five ways to be a happier JavaScript developer
Five ways to be a happier JavaScript developerFive ways to be a happier JavaScript developer
Five ways to be a happier JavaScript developerChristian Heilmann
 
Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"Christian Heilmann
 
Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"Christian Heilmann
 
Progressive Web Apps - Covering the best of both worlds - DevReach
Progressive Web Apps - Covering the best of both worlds - DevReachProgressive Web Apps - Covering the best of both worlds - DevReach
Progressive Web Apps - Covering the best of both worlds - DevReachChristian Heilmann
 
Progressive Web Apps - Covering the best of both worlds
Progressive Web Apps - Covering the best of both worldsProgressive Web Apps - Covering the best of both worlds
Progressive Web Apps - Covering the best of both worldsChristian Heilmann
 
Non-trivial pursuits: Learning machines and forgetful humans
Non-trivial pursuits: Learning machines and forgetful humansNon-trivial pursuits: Learning machines and forgetful humans
Non-trivial pursuits: Learning machines and forgetful humansChristian Heilmann
 
Progressive Web Apps - Bringing the web front and center
Progressive Web Apps - Bringing the web front and center Progressive Web Apps - Bringing the web front and center
Progressive Web Apps - Bringing the web front and center Christian Heilmann
 
CSS vs. JavaScript - Trust vs. Control
CSS vs. JavaScript - Trust vs. ControlCSS vs. JavaScript - Trust vs. Control
CSS vs. JavaScript - Trust vs. ControlChristian Heilmann
 
Leveling up your JavaScipt - DrupalJam 2017
Leveling up your JavaScipt - DrupalJam 2017Leveling up your JavaScipt - DrupalJam 2017
Leveling up your JavaScipt - DrupalJam 2017Christian Heilmann
 
The Soul in The Machine - Developing for Humans (FrankenJS edition)
The Soul in The Machine - Developing for Humans (FrankenJS edition)The Soul in The Machine - Developing for Humans (FrankenJS edition)
The Soul in The Machine - Developing for Humans (FrankenJS edition)Christian Heilmann
 
Breaking out of the Tetris mind set #btconf
Breaking out of the Tetris mind set #btconfBreaking out of the Tetris mind set #btconf
Breaking out of the Tetris mind set #btconfChristian Heilmann
 

Más de Christian Heilmann (20)

Develop, Debug, Learn? - Dotjs2019
Develop, Debug, Learn? - Dotjs2019Develop, Debug, Learn? - Dotjs2019
Develop, Debug, Learn? - Dotjs2019
 
Hinting at a better web
Hinting at a better webHinting at a better web
Hinting at a better web
 
Taking the "vile" out of privilege
Taking the "vile" out of privilegeTaking the "vile" out of privilege
Taking the "vile" out of privilege
 
Seven ways to be a happier JavaScript developer - NDC Oslo
Seven ways to be a happier JavaScript developer - NDC OsloSeven ways to be a happier JavaScript developer - NDC Oslo
Seven ways to be a happier JavaScript developer - NDC Oslo
 
Artificial intelligence for humans… #AIDC2018 keynote
Artificial intelligence for humans… #AIDC2018 keynoteArtificial intelligence for humans… #AIDC2018 keynote
Artificial intelligence for humans… #AIDC2018 keynote
 
Killing the golden calf of coding - We are Developers keynote
Killing the golden calf of coding - We are Developers keynoteKilling the golden calf of coding - We are Developers keynote
Killing the golden calf of coding - We are Developers keynote
 
Progressive Web Apps - Techdays Finland
Progressive Web Apps - Techdays FinlandProgressive Web Apps - Techdays Finland
Progressive Web Apps - Techdays Finland
 
Taking the "vile" out of privilege
Taking the "vile" out of privilegeTaking the "vile" out of privilege
Taking the "vile" out of privilege
 
Five ways to be a happier JavaScript developer
Five ways to be a happier JavaScript developerFive ways to be a happier JavaScript developer
Five ways to be a happier JavaScript developer
 
Taking the P out of PWA
Taking the P out of PWATaking the P out of PWA
Taking the P out of PWA
 
Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"
 
Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"
 
Progressive Web Apps - Covering the best of both worlds - DevReach
Progressive Web Apps - Covering the best of both worlds - DevReachProgressive Web Apps - Covering the best of both worlds - DevReach
Progressive Web Apps - Covering the best of both worlds - DevReach
 
Progressive Web Apps - Covering the best of both worlds
Progressive Web Apps - Covering the best of both worldsProgressive Web Apps - Covering the best of both worlds
Progressive Web Apps - Covering the best of both worlds
 
Non-trivial pursuits: Learning machines and forgetful humans
Non-trivial pursuits: Learning machines and forgetful humansNon-trivial pursuits: Learning machines and forgetful humans
Non-trivial pursuits: Learning machines and forgetful humans
 
Progressive Web Apps - Bringing the web front and center
Progressive Web Apps - Bringing the web front and center Progressive Web Apps - Bringing the web front and center
Progressive Web Apps - Bringing the web front and center
 
CSS vs. JavaScript - Trust vs. Control
CSS vs. JavaScript - Trust vs. ControlCSS vs. JavaScript - Trust vs. Control
CSS vs. JavaScript - Trust vs. Control
 
Leveling up your JavaScipt - DrupalJam 2017
Leveling up your JavaScipt - DrupalJam 2017Leveling up your JavaScipt - DrupalJam 2017
Leveling up your JavaScipt - DrupalJam 2017
 
The Soul in The Machine - Developing for Humans (FrankenJS edition)
The Soul in The Machine - Developing for Humans (FrankenJS edition)The Soul in The Machine - Developing for Humans (FrankenJS edition)
The Soul in The Machine - Developing for Humans (FrankenJS edition)
 
Breaking out of the Tetris mind set #btconf
Breaking out of the Tetris mind set #btconfBreaking out of the Tetris mind set #btconf
Breaking out of the Tetris mind set #btconf
 

Último

Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3JemimahLaneBuaron
 
Introduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxIntroduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxpboyjonauth
 
mini mental status format.docx
mini    mental       status     format.docxmini    mental       status     format.docx
mini mental status format.docxPoojaSen20
 
Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfchloefrazer622
 
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991RKavithamani
 
Employee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxEmployee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxNirmalaLoungPoorunde1
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityGeoBlogs
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphThiyagu K
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Celine George
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfsanyamsingh5019
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformChameera Dedduwage
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactdawncurless
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)eniolaolutunde
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introductionMaksud Ahmed
 
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxmanuelaromero2013
 
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...Marc Dusseiller Dusjagr
 
Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpinRaunakKeshri1
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingTechSoup
 

Último (20)

Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3
 
Introduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxIntroduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptx
 
mini mental status format.docx
mini    mental       status     format.docxmini    mental       status     format.docx
mini mental status format.docx
 
Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdf
 
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
 
Employee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxEmployee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptx
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activity
 
Staff of Color (SOC) Retention Efforts DDSD
Staff of Color (SOC) Retention Efforts DDSDStaff of Color (SOC) Retention Efforts DDSD
Staff of Color (SOC) Retention Efforts DDSD
 
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot Graph
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdf
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy Reform
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impact
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptx
 
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
 
Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpin
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy Consulting
 

Javascript isn't hard

  • 1. JavaScript isn’t hard… Chris Heilmann @codepo8, SmashingConf Barcelona Jam Session, October 2016
  • 3. There is a lot of love for JavaScript on the web… 💚❤💙💛💜
  • 4. With good reasons… 😃 Very flexible language 😃 Runs everywhere 😃 Automatically available in browsers 😃 Multiple, open-source engines available 😃 Huge community 😃 Lightweight development environment (text editor/browser is enough?)
  • 5. Lately JavaScript has a lot of visibility which leads to obsession instead of love… 🔥💵📈💯📢
  • 6. Which leads to a lot of pressure and anxiety for us developers… 😫😓😭😱😡
  • 7. Tell me if this sounds familiar… 🤔 I feel like I’m out of the loop 🤔 By the time I get to play with a new JS feature, people already blog it is “considered harmful” 🤔 Everbody talks about flügelhorn.js but I have no idea what I’d need it for – am I building things nobody else does? 🤔 What are all these NPM modules on my HD? 🤔 Why do I get all these warnings when I build something and how come this is not a problem?
  • 9. JavaScript used to be easy - it was just one language in the web stack. HTML (Structure) CSS (Look and Feel) JavaScript (Behaviour)
  • 10. Due to its flexible nature, we extended its use cases massively…
  • 11. JavaScript now is a lot more… ✅ Web Development ✅ Task runners ✅ Package management ✅ Module-driven development ✅ Extension of software (browsers, editors) ✅ APIs ✅ Services ✅ Servers ✅ Fat client applications ✅ Compilation target ✅ Embeddable runtime ✅ Argument firestarter
  • 12. Enhance HTML progressively Use libraries Use APIs and services Use node, gulp, grunt, NPM and others to manage your tasks and builds Write code for Node, other systems and services to write apps. Different uses require different skill levels…
  • 13. Actively participate in systems used earlier in the timeline… Participate in extending editors and development environments… Work on meta languages and ideas to bridge the gap between JS and higher level languages. Actively participate in inventing the next version of the language
  • 14. You do not need to do all of that…
  • 15. You do not need to use all of that…
  • 16. It’s totally OK to pick and choose what you want and feel comfortable with…
  • 17. “JavaScript” is not a language, but a whole world of decisions and use cases by now…
  • 18. Find your place in this world, travel to other destinations, but don’t feel bad for not becoming a resident in all of them…
  • 19. Make yourself more effective… Understand what you use and own it… Ownership and responsibility balancing act
  • 20. Build tools and process balancing act Use what enables others to work with you… Use what helps you write maintainable code…
  • 21. Progressive enhancement balancing act Control the UX with JavaScript and own the failure cases. Rely on the browser to give a “working” experience.
  • 22. Supporting the past balancing act… Use powerful language additions… Don’t block out older browsers and environments…
  • 23. I can’t help you with all these decisions. It is up to you and the products you work on what makes sense and what doesn’t…
  • 24. However, here’s a few pointers… 🤓 Learn the language - learn how it works, its strengths and weaknesses. 😉 Use polyfills and libraries when you know what they do. Make sure you can remove them and upgrade them if needed. 😍 ES6 is the current, ratified version of JavaScript. Use it, don’t wait for it. 🤓 Promises are an important part of every new JavaScript API. Good to get your head around them. 😱 Don’t panic! It’s a buffet, not a main course. Pick what doesn’t make you sick.