Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Advancing JavaScript without
breaking the web.
MunichJS, March 2015
Chris Heilmann (@codepo8) Munich, Bavaria (formerly Ge...
Generic
solutions are
easy to
discredit.
New and more
advanced uses
of JavaScript
means we
need to
improve the
language.
Locking people out is
not an option.
The success of
JavaScript was and is
based on its
availability on the web
across brow...
The problem is that
once something is on
the web, it is
impossible to remove
and we can’t force
everyone to stay up to
dat...
'use strict';
strict mode is a way to opt in to a restricted variant of
JavaScript. Strict mode isn't just a subset: it
in...
https://drive.google.com/file/d/0B2p58mpwToefRzlGMzRxTnhNb00/view
'use sanity';
'use the force';
A version that allows for smooth and exciting 60fps
animations by moving things magically around.
Canvas ...
'use paper and material provided';
A version for Polymer
'use emity';
An Apple specific version with libraries to create
glitchy graphical effects and a connection testing
feature...
'use to excite VCs';
A specialist version dedicated to IOT and VR
'use this, bro!';
A version that makes omitting semicolons mandatory,
automatically moves opening braces to the next line
...
Seriously, now…
When it comes to
new functionality, we
can always use
progressive
enhancement.
https://justmarkup.com/log/2015/02/26/cut-the-mustard-revisited/
Opt-in with a string or
capability testing
doesn’t work when
syntax is changed.
Which is a shame, as
some of the new
things in ES6 are really
handy!
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/template_strings
http://kangax.github.io/compat-table/es6/
ES6 support in the wild…
Most ES6
improvements help
huge projects, by
allowing for familiar
OO syntax, memory
optimisation and JS
becoming a compil...
http://typescriptlang.org/
By changing the
language in a drastic
fashion we are losing
some of the interop of
JavaScript in the
browser.
Transpiling is one way
to work around that –
and we see this with
CSS and HTML, too.
Another solution
would be to go back
to the world of script
types.
Maybe that’s
something worth
considering?
In any case, working
with JavaScript never
gets boring.
So, go and take part
in the discussions
happening now!
Thanks!
Chris Heilmann
@codepo8
http://christianheilmann.com
Advancing JavaScript without breaking the web - MunichJS
Advancing JavaScript without breaking the web - MunichJS
Advancing JavaScript without breaking the web - MunichJS
Advancing JavaScript without breaking the web - MunichJS
Advancing JavaScript without breaking the web - MunichJS
Advancing JavaScript without breaking the web - MunichJS
Advancing JavaScript without breaking the web - MunichJS
Advancing JavaScript without breaking the web - MunichJS
Advancing JavaScript without breaking the web - MunichJS
Upcoming SlideShare
Loading in …5
×

Advancing JavaScript without breaking the web - MunichJS

24,724 views

Published on

ES6 and other extensions to JavaScript are exciting, but they have the problem that they are not backwards compatible. How can we deal with that issue? Or is it really one?

Published in: Education
  • Be the first to comment

Advancing JavaScript without breaking the web - MunichJS

  1. 1. Advancing JavaScript without breaking the web. MunichJS, March 2015 Chris Heilmann (@codepo8) Munich, Bavaria (formerly Germany)
  2. 2. Generic solutions are easy to discredit.
  3. 3. New and more advanced uses of JavaScript means we need to improve the language.
  4. 4. Locking people out is not an option. The success of JavaScript was and is based on its availability on the web across browsers.
  5. 5. The problem is that once something is on the web, it is impossible to remove and we can’t force everyone to stay up to date.
  6. 6. 'use strict'; strict mode is a way to opt in to a restricted variant of JavaScript. Strict mode isn't just a subset: it intentionally has different semantics from normal code. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode/Transitioning_to_strict_mode
  7. 7. https://drive.google.com/file/d/0B2p58mpwToefRzlGMzRxTnhNb00/view
  8. 8. 'use sanity';
  9. 9. 'use the force'; A version that allows for smooth and exciting 60fps animations by moving things magically around. Canvas only.
  10. 10. 'use paper and material provided'; A version for Polymer
  11. 11. 'use emity'; An Apple specific version with libraries to create glitchy graphical effects and a connection testing feature that randomly disconnects WiFi
  12. 12. 'use to excite VCs'; A specialist version dedicated to IOT and VR
  13. 13. 'use this, bro!'; A version that makes omitting semicolons mandatory, automatically moves opening braces to the next line and commas to the start of the next line. Limited for use in the Silicon Valley only (geofenced)
  14. 14. Seriously, now…
  15. 15. When it comes to new functionality, we can always use progressive enhancement.
  16. 16. https://justmarkup.com/log/2015/02/26/cut-the-mustard-revisited/
  17. 17. Opt-in with a string or capability testing doesn’t work when syntax is changed.
  18. 18. Which is a shame, as some of the new things in ES6 are really handy!
  19. 19. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/template_strings
  20. 20. http://kangax.github.io/compat-table/es6/ ES6 support in the wild…
  21. 21. Most ES6 improvements help huge projects, by allowing for familiar OO syntax, memory optimisation and JS becoming a compile target.
  22. 22. http://typescriptlang.org/
  23. 23. By changing the language in a drastic fashion we are losing some of the interop of JavaScript in the browser.
  24. 24. Transpiling is one way to work around that – and we see this with CSS and HTML, too.
  25. 25. Another solution would be to go back to the world of script types.
  26. 26. Maybe that’s something worth considering?
  27. 27. In any case, working with JavaScript never gets boring.
  28. 28. So, go and take part in the discussions happening now!
  29. 29. Thanks! Chris Heilmann @codepo8 http://christianheilmann.com

×