Senior Program Manager Developer Experience and Evangelism at Microsoft
May. 13, 2015•0 likes•2,232 views
1 of 66
Breaking out of the endless callback look - #jsday Italy keynote
May. 13, 2015•0 likes•2,232 views
Download to read offline
Report
Education
As JavaScript developers we are hot property. This can be overwhelming and in this keynote Chris Heilmann gives some history lessons to show that we don't need to get frustrated, but pick our battles.
3. @codepo8
Chris Heilmann• Web Developer since ~1997
• Wrote first book about JavaScript
*and* AJAX ten years ago.
• Delivered many large projects,
including Yahoo Search, Maps
• Worked on YUI
• Worked on Firefox OS
• Now working at Microsoft
helping with the most important
change the web needs
15. JAVASCRIPT IS…
• An incredibly versatile
language
• Available web-wide and
across many platforms
• Toolset independent
• Forgiving and inviting
16. YOU CAN USE
JAVASCRIPT…
• In browsers on the web
• On the server
• In applications
• To access services
• As a data format (JSON)
• On hardware
• … your turn, surprise me :)
18. WHEN CHRIS MET
JAVASCRIPT…
• Form validation
• Image rollovers
• Popup windows (with dynamic
framesets and inter-window
communication)
• DHTML (document.all or
document.layers?)
21. WHEN WE STARTED
BREAKING THE
WEB PROPERLY… • AJAX
• Library Wars
• Framework Dependencies
• Fixing browser problems with
shims and libraries
22. THINGS THAT
NEVER CHANGED…
(AND STILL ARE THE SAME)
• JavaScript is *not* fault tolerant
like CSS or HTML are
• JavaScript should be used as
an enhancement of sturdy,
semantically valuable and
working web content
• JavaScript can not be trusted
to be available
• Not all browsers are born
equal.
24. OUR
DEVELOPMENT
ENVIRONMENT IS
INCREDIBLE!
• Developer tools in browsers are
outstanding and give us incredible
insights.
• We can debug across devices and
even convert HTML5 to native apps
for closed systems (manifold.js/
volon.js).
• Editors have linting, build integration,
and some are even written in
JavaScript and run in the browser.
• We share code on GitHub and help
debug problems using JSFiddle,
JSBin and others…
31. CAPABILITY
TESTING ALSO
ISN’T BULLET
PROOF…
• False positives are possible
• You can’t assume that support of
one feature means another also
works
• Experimental technology is hard to
test for
• You need to stay up-to-date
33. POLYFILLS ARE
GREAT…
• Building solutions now using tech of
tomorrow
• Allowing developers to write code
now without waiting for standards
bodies to catch up
• Fixing browser inconsistencies
during the adoption period
• Allowing developers to concentrate
on the solutions rather than the tech
that enables them
35. POLYFILLS ARE
NOT SO GREAT…
• We become dependent on them
• They give performance hungry
functionality to outdated
environments
• They need to keep up with changes
in the specs, too.
• They tend to stay in non-maintained
projects and add to the landfill of
unnecessary JS.
37. IF YOU’RE NOT ON
THE WILD, WILD
WEB IN A CLIENT -
GO NUTS!
• JavaScript in a fixed, defined
environment (app platform,
add-ons, plugins)
• JavaScript server-side
• JavaScript as a conversion
target
40. WE’RE VERY
EXCITED ABOUT
EVERYTHING…
• If it is new, it must be better!
• We want to have it now, maybe
even yesterday.
• A use case will come, let’s just
build the thing first.
• If there isn’t a problem, let’s
come up with one.
50. FORCING THE
FUTURE?
• We can use all kind of tricks to
make the JS capabilities of
tomorrow available today.
• The issue is that we’re
leapfrogging innovation - and
in some cases even slow down
native adoption.
51. FORCING THE
FUTURE?
• We run the danger of turning
our patches into
dependencies.
• We make resource hungry
code run in outdated
environments.
52. WHAT IF WE COULD
APPLY CAPABILITY
TESTING AND
TRANSPILE ON
DEMAND?
57. HERE’S THE
THING…
• The unknown client web is
what brought us here.
• It isn’t going to go away - it
would be terrible if it did.
• This doesn’t stop us from
innovating the language as we
have dozens of new paths to
use it.
58. THE TRICK IS TO
EMBRACE THE
FACT THAT
DESPITE USING
ONE LANGUAGE…