SlideShare uma empresa Scribd logo
1 de 67
Baixar para ler offline
Progressing JavaScript and Apps the Web way…
Chris Heilmann @codepo8, FullstackConf, London, July 2016
Of innovation and impatience
Chris Heilmann @codepo8, Future Decoded, London, Nov 2015
CHRIS HEILMANN
@CODEPO8
https://www.youtube.com/watch?v=1-WNA0vF2RQ
Bad Religion: Progress
Progress, 'til there's nothing left to gain, it's
Progress, it's a message that we send.
And progress is a debt we all must pay.
Its convenience we all cherish, its pollution
we disdain. And the cutting edge is dulling,
Too many folks to plow through.
“
Progress, 'til there's nothing left to gain…
“ We make all our code very generic,
extensible and want everything to scale in
every direction. Many times we clog up
the web that way and wonder why we
don’t get the millions of users we scaled
for…
Progress, it's a message that we send.
“
We make our solutions dependent on a lot
of build processes, conversion steps and
publication/packaging tools. This can be
discouraging for newcomers and repel
maintainers…
And progress is a debt we all must pay. Its
convenience we all cherish, its pollution we
disdain.
“
Technical debt has become pretty rampant
in our market. We solve a lot of developer
problems at the cost of our users and
maintainers…
And the cutting edge is dulling,
Too many folks to plow through.“
There is an unhealthy competition going
on about building great developer tools
and “best practices” that haven’t proven
themselves in production.
Let’s talk about rapid
progress for a bit…
http://mashable.com/2016/07/10/john-hanke-pokemon-go/
http://mashable.com/2016/07/10/john-hanke-pokemon-go/
COOL TECHNOLOGY AND PEDIGREE
https://en.wikipedia.org/wiki/Ingress_(video_game)https://www.google.com/earth/
CRITICISM IS EASY AND PLENTIFUL…
http://www.theverge.com/2016/7/11/12150468/pokemon-go-privacy-full-account-access-permission
Gotta catch them all?
https://www.engadget.com/2016/07/11/pokemon-go-on-ios-is-digging-deep-into-linked-google-accounts/
We recently discovered that the Pokémon Go account creation process on iOS erroneously
requests full access permission for the user's Google account. However, Pokémon Go only accesses
basic Google profile information (specifically, your User ID and email address) and no other Google
account information is or has been accessed or collected. Once we became aware of this error, we
began working on a client-side fix to request permission for only basic Google profile information,
in line with the data that we actually access. Google has verified that no other information has
been received or accessed by Pokémon Go or Niantic. Google will soon reduce Pokémon Go's
permission to only the basic profile data that Pokémon Go needs, and users do not need to take
any actions themselves.
https://www.nianticlabs.com/privacy/pokemongo/en
https://gist.github.com/arirubinstein/fd5453537436a8757266f908c3e41538
good progress = transparency + technology +
ethics + accessibility
good progress = transparency + technology +
ethics + accessibility
…which is, what the web is all about!
🤖🍎🖼🐧
The web is independent of platform…
Independent of browser…
🚲🏍🚗 🚜🚄✈
Independent of connectivity…
🗺
Independent of location…
♿👀./0
Independent of ability…
🚪Independent of skill set
(anyone is invited to be a publisher…)
😴😪😓😞
That’s nothing new, and for many it feels exhausting
🚀
It feels like a burden, when it comes to innovating…
#WEBIP
#WEBIP
☠ There are too many foreign influences
interfering with your product
☠ The Web is too flexible to write
sensible solutions - it is too much
work to support everything
☠ Native environments give you better
tooling and more control
☠ People want and use apps. The web
is dead.
RELAX, THESE ARE ALL VALID POINTS
#WEBIP
😊 You can be a fan of native without
criticising the web - if you don’t want
to use it, don’t.
😊 Don’t try to reap the rewards of it
though without building with its
merits in mind.
😊 If your play is native, be aware that you
will have full parallel development for
each platform.
😊 You are also playing in a very fluent
market - the cool thing of today is
impossible to sell tomorrow.
#WEBIP
📉 One thing to be aware is that the app
gold rush is over
📉 People don’t download new apps, a
few keep their attention
📉 The OS comes with a lot of useful
features historically covered by apps.
📉 People get tired of the steps to go
through to use an app
📉 People are sick of constant updates
and the hefty data traffic this means
http://www.recode.net/2016/6/8/11883518/app-boom-over-snapchat-uber
http://qz.com/253618/most-smartphone-users-download-zero-apps-per-month/
CHAT BOTS ARE THE NEW APPS
https://dev.botframework.com/
https://developers.facebook.com/docs/messenger-platform
😍🌎
Let’s talk about progressing the web…
The progress element
represents the completion
progress of a task.
http://www.w3.org/TR/html5-author/the-progress-element.html
“
JAVASCRIPT ACCESS AND INTERACTION
http://html5doctor.com/the-progress-element/
WHAT
<progress>	
LOOKS LIKE…
Chrome / Android M
Chrome / Windows 10
Chrome/Safari/Firefox/Opera… / OSX
Edge / Windows 10
Firefox / Older OSX
Firefox / Windows 10
Firefox / Windows 7
Opera Mini / Android M
Opera / Windows 10
https://css-tricks.com/html5-progress-element/
STYLING?
PEEKING UNDER THE
HOOD…
http://lea.verou.me/2011/07/a-polyfill-for-html5-progress-element-the-obsessive-perfectionist-way/
WHAT IT WILL MOST
LIKELY END UP AS… + JavaScript to make it do things…
#BROWXIT
#BROWXIT
☠ Browser differences and stupid laws by
browser makers are stopping us from
using cool new technology
☠ We can and should use JavaScript to
work around these issues
☠ We should be allowed to expect a
certain browser from the end user
☠ We don’t have 100% control over the
interface, using JavaScript, we can
have that.
NOPE, THESE AREN’T VALID POINTS
brandsvig https://www.flickr.com/photos/27376974@N02/5047305345
#BROWXIT
😊 Browser differences are what enable cool
new technology.
😊 Browser makers publicly announce and
discuss their decisions these days.
😊 Instead of concentrating on browsers, we
should concentrate on capabilities. Use
them only when the user agent supports
them - this way we never deliver a broken
experience.
😊 If it is experimental, don’t rely on it. And
let the experiment take its course, don’t
force it into production with polyfills and
libraries that will be unmaintained.
☠ Browser differences and
stupid laws by browser
makers are stopping us
from using cool new
technology
#BROWXIT 😊 JavaScript is powerful and can enable us to
do beautiful things when we can control
the environment (Node, Electron, editors
f.e. @code)
😊 JavaScript on the web is brittle and will
break. And there is nothing you can do
about it. So, calm down and use the power
of if().
😊 Working around differences and relying on
JS results in browsers never fixing them.
😊 The web needs less code and leaner
solutions, not more fixes.
☠ We can and should use
JavaScript to work around
these issues
#BROWXIT 😊 We are a delivery service. Our job is to
deliver working products to the end user.
Our setup isn’t theirs, and our problems
shouldn’t become theirs.
😊 The amazing browser of today is the digital
landfill of tomorrow.
😊 By limiting ourselves to a certain browser,
we might as well build native solutions.
End users will not install a browser for our
sake.
☠ We should be allowed to
expect a certain browser
from the end user
#BROWXIT
☠ We don’t have 100%
control over the interface,
using JavaScript, we can
have that.
😊 The web isn’t having 100% control over
the interface. You reach a lot more users
and cater for their needs as they can
customise the interface to their needs.
😊 You may have control over the interface,
but the end user is very likely to end up
with no interface at all. Any error that can
happen will break your solution. JavaScript
isn’t forgiving.
😊 You forfeit a lot of useful features of
browsers and the web. Caching, linking,
history, open in new tab…
RELAX, THE WEB IS BEAUTIFUL
#REMAIN
#REMAIN
😊 Web technology and browsers evolved
and keep doing so.
😊 (almost) All browsers are evergreen and
disconnected from hardware and OS
updates.
😊 There are no black holes left - every
browser maker has open channels to
communicate and bug trackers
😊 Standardisation is on the rise - we all
realised that browser prefixes are a bad
plan when people use them in production
😊 Writing JavaScript has gone far beyond
using it in a browser - go wild.
EXCITING ACCESS
OPPORTUNITIES…
https://remysharp.com/2016/05/28/state-of-the-gap
EXCITING ACCESS
OPPORTUNITIES…
EXCITING ACCESS
OPPORTUNITIES…
EXCITING ACCESS
OPPORTUNITIES…
EXCITING ACCESS
OPPORTUNITIES…
STAY ON TARGET
http://caniuse.com/
Your father's Service Worker. This is
the weapon of a Jedi Knight. Not as
clumsy or random as AppCache; an
elegant weapon for a more civilised
age.
PROGRESSIVE
WEB
APPS
🔧 Working offline using
Service Worker
🔧 Can hibernate and notify on
change
🔧 Possible progressive
enhancement of a working,
standard web site
🔧 More functionality with
subsequent visits
🔧 The link is the distribution
model
🔧 All the benefits of native apps
- none of the sluggish
distribution issues
🔧 Natural evolution of web
content into the mobile form
factor
🔧 A big opportunity to crack
the closed distribution model
https://www.youtube.com/playlist?list=PLNYkxOF6rcIAWWNR_Q6eLPhsyx6VvYjVb
IN SUMMARY…
IN SUMMARY…
😊 It is not your job to control the web. You
can reap its rewards by being open to
change and giving up control.
😊 Progressive Web Apps are here and ready
to fix the broken mobile app space.
😊 The browser is but one environment
JavaScript runs in. We can innovate the
language much better outside of it in
controlled spaces (Node, dev environments,
Electron, developer tools of browsers)
IN SUMMARY…
😊 You are free to use whatever makes you
most effective. You have no right though
to disrepute what others use. The web
strives on diversity, not on monopoly.
😊 The web can be a platform to build on, or
a compilation target. Both work on
different premises and we gain nothing
from telling one another what “best
practice” is.
😊 The web isn’t going away. The fault
tolerance of its building blocks makes it a
great start to enhance from. Embrace this
opportunity.
AND IF ALL FAILS…
THANKS!
CHRIS HEILMANN
@CODEPO8
CHRISTIANHEILMANN.COM

Mais conteúdo relacionado

Mais procurados

Turning huge ships - Open Source and Microsoft
Turning huge ships - Open Source and MicrosoftTurning huge ships - Open Source and Microsoft
Turning huge ships - Open Source and MicrosoftChristian 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
 
Let’s learn how to use JavaScript responsibly and stay up-to-date.
Let’s learn how to use JavaScript responsibly and stay up-to-date. Let’s learn how to use JavaScript responsibly and stay up-to-date.
Let’s learn how to use JavaScript responsibly and stay up-to-date. Christian Heilmann
 
Overboard.js - where are we going with with jsconfasia / devfestasia
Overboard.js - where are we going with with jsconfasia / devfestasiaOverboard.js - where are we going with with jsconfasia / devfestasia
Overboard.js - where are we going with with jsconfasia / devfestasiaChristian Heilmann
 
The State of the Web - Helsinki meetup
The State of the Web - Helsinki meetupThe State of the Web - Helsinki meetup
The State of the Web - Helsinki meetupChristian 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
 
Erase and Rewind - Open Web Camp 2015
Erase and Rewind - Open Web Camp 2015Erase and Rewind - Open Web Camp 2015
Erase and Rewind - Open Web Camp 2015Christian Heilmann
 
Moore vs. May - everything is faster and better: we can fix that
Moore vs. May - everything is faster and better: we can fix thatMoore vs. May - everything is faster and better: we can fix that
Moore vs. May - everything is faster and better: we can fix thatChristian Heilmann
 
[DevDay2018] Javascript on the Rise - By Trang Tran, Co-founder & Manager at ...
[DevDay2018] Javascript on the Rise - By Trang Tran, Co-founder & Manager at ...[DevDay2018] Javascript on the Rise - By Trang Tran, Co-founder & Manager at ...
[DevDay2018] Javascript on the Rise - By Trang Tran, Co-founder & Manager at ...DevDay.org
 
All the small things… - Awwwards 2016
All the small things… - Awwwards 2016All the small things… - Awwwards 2016
All the small things… - Awwwards 2016Christian Heilmann
 
Advancing JavaScript without breaking the web - MunichJS
Advancing JavaScript without breaking the web - MunichJSAdvancing JavaScript without breaking the web - MunichJS
Advancing JavaScript without breaking the web - MunichJSChristian Heilmann
 
Mind the Gap - State of the Browser 2015
Mind the Gap - State of the Browser 2015Mind the Gap - State of the Browser 2015
Mind the Gap - State of the Browser 2015Christian Heilmann
 
The image problem of the web and how to solve it…
The image problem of the web and how to solve it…The image problem of the web and how to solve it…
The image problem of the web and how to solve it…Christian Heilmann
 
Making ES6 available to all with ChakraCore
Making ES6 available to all with ChakraCoreMaking ES6 available to all with ChakraCore
Making ES6 available to all with ChakraCoreChristian Heilmann
 
Hungarian Web Conference: HTML5 beyond the hype - let's make it work!
Hungarian Web Conference: HTML5 beyond the hype - let's make it work!Hungarian Web Conference: HTML5 beyond the hype - let's make it work!
Hungarian Web Conference: HTML5 beyond the hype - let's make it work!Christian Heilmann
 
רועי פלד
רועי פלדרועי פלד
רועי פלדNetcraft
 
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
 

Mais procurados (20)

Javascript isn't hard
Javascript isn't hardJavascript isn't hard
Javascript isn't hard
 
Bridging the future gap
Bridging the future gap Bridging the future gap
Bridging the future gap
 
Turning huge ships - Open Source and Microsoft
Turning huge ships - Open Source and MicrosoftTurning huge ships - Open Source and Microsoft
Turning huge ships - Open Source and Microsoft
 
Leveling up your JavaScipt - DrupalJam 2017
Leveling up your JavaScipt - DrupalJam 2017Leveling up your JavaScipt - DrupalJam 2017
Leveling up your JavaScipt - DrupalJam 2017
 
Let’s learn how to use JavaScript responsibly and stay up-to-date.
Let’s learn how to use JavaScript responsibly and stay up-to-date. Let’s learn how to use JavaScript responsibly and stay up-to-date.
Let’s learn how to use JavaScript responsibly and stay up-to-date.
 
Overboard.js - where are we going with with jsconfasia / devfestasia
Overboard.js - where are we going with with jsconfasia / devfestasiaOverboard.js - where are we going with with jsconfasia / devfestasia
Overboard.js - where are we going with with jsconfasia / devfestasia
 
The State of the Web - Helsinki meetup
The State of the Web - Helsinki meetupThe State of the Web - Helsinki meetup
The State of the Web - Helsinki meetup
 
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
 
Erase and Rewind - Open Web Camp 2015
Erase and Rewind - Open Web Camp 2015Erase and Rewind - Open Web Camp 2015
Erase and Rewind - Open Web Camp 2015
 
Moore vs. May - everything is faster and better: we can fix that
Moore vs. May - everything is faster and better: we can fix thatMoore vs. May - everything is faster and better: we can fix that
Moore vs. May - everything is faster and better: we can fix that
 
[DevDay2018] Javascript on the Rise - By Trang Tran, Co-founder & Manager at ...
[DevDay2018] Javascript on the Rise - By Trang Tran, Co-founder & Manager at ...[DevDay2018] Javascript on the Rise - By Trang Tran, Co-founder & Manager at ...
[DevDay2018] Javascript on the Rise - By Trang Tran, Co-founder & Manager at ...
 
Fixing web and JS gaps
Fixing web and JS gapsFixing web and JS gaps
Fixing web and JS gaps
 
All the small things… - Awwwards 2016
All the small things… - Awwwards 2016All the small things… - Awwwards 2016
All the small things… - Awwwards 2016
 
Advancing JavaScript without breaking the web - MunichJS
Advancing JavaScript without breaking the web - MunichJSAdvancing JavaScript without breaking the web - MunichJS
Advancing JavaScript without breaking the web - MunichJS
 
Mind the Gap - State of the Browser 2015
Mind the Gap - State of the Browser 2015Mind the Gap - State of the Browser 2015
Mind the Gap - State of the Browser 2015
 
The image problem of the web and how to solve it…
The image problem of the web and how to solve it…The image problem of the web and how to solve it…
The image problem of the web and how to solve it…
 
Making ES6 available to all with ChakraCore
Making ES6 available to all with ChakraCoreMaking ES6 available to all with ChakraCore
Making ES6 available to all with ChakraCore
 
Hungarian Web Conference: HTML5 beyond the hype - let's make it work!
Hungarian Web Conference: HTML5 beyond the hype - let's make it work!Hungarian Web Conference: HTML5 beyond the hype - let's make it work!
Hungarian Web Conference: HTML5 beyond the hype - let's make it work!
 
רועי פלד
רועי פלדרועי פלד
רועי פלד
 
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)
 

Destaque

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
 
"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
 
Windows Azure Platform WAMS v.0.5
Windows Azure Platform   WAMS v.0.5Windows Azure Platform   WAMS v.0.5
Windows Azure Platform WAMS v.0.5Oliver Michalski
 
Manfred Oppitz: Effizienzsteigerung durch eine Prozess- und Potentialanalyse
Manfred Oppitz: Effizienzsteigerung durch eine Prozess- und PotentialanalyseManfred Oppitz: Effizienzsteigerung durch eine Prozess- und Potentialanalyse
Manfred Oppitz: Effizienzsteigerung durch eine Prozess- und PotentialanalyseInboundLabs (ex mon.ki inc)
 
GEC 2016: Verne Harnish
GEC 2016: Verne HarnishGEC 2016: Verne Harnish
GEC 2016: Verne HarnishMark Marich
 
Above the fold content
Above the fold contentAbove the fold content
Above the fold contentWalter Ebert
 
Final presentation for Ordinance Survey sponsored MSc Project
Final presentation for Ordinance Survey sponsored MSc ProjectFinal presentation for Ordinance Survey sponsored MSc Project
Final presentation for Ordinance Survey sponsored MSc ProjectIris Kramer
 
Using eCognition to improve feature recognition.
Using eCognition to improve feature recognition.Using eCognition to improve feature recognition.
Using eCognition to improve feature recognition.Iris Kramer
 
Terrestrial laser scanning
Terrestrial laser scanningTerrestrial laser scanning
Terrestrial laser scanningIris Kramer
 
Responsive Videos, mehr oder weniger
Responsive Videos, mehr oder wenigerResponsive Videos, mehr oder weniger
Responsive Videos, mehr oder wenigerWalter Ebert
 
Automatisierte GUI-Tests mit Selenium
Automatisierte GUI-Tests mit SeleniumAutomatisierte GUI-Tests mit Selenium
Automatisierte GUI-Tests mit SeleniumBenjamin Schmid
 
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
 
Memory leak patterns in javascript
Memory leak patterns in javascriptMemory leak patterns in javascript
Memory leak patterns in javascriptMurali krishna
 

Destaque (20)

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.
 
"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
 
Web pics
Web picsWeb pics
Web pics
 
Windows Azure Platform WAMS v.0.5
Windows Azure Platform   WAMS v.0.5Windows Azure Platform   WAMS v.0.5
Windows Azure Platform WAMS v.0.5
 
Cinema in the Cloud
Cinema in the CloudCinema in the Cloud
Cinema in the Cloud
 
Bilder usw...
Bilder usw...Bilder usw...
Bilder usw...
 
Красноярский журнал о грузовиках Автосила №10(113) 2015
Красноярский журнал о грузовиках Автосила №10(113) 2015Красноярский журнал о грузовиках Автосила №10(113) 2015
Красноярский журнал о грузовиках Автосила №10(113) 2015
 
Vorstellung von Ember.js
Vorstellung von Ember.jsVorstellung von Ember.js
Vorstellung von Ember.js
 
Manfred Oppitz: Effizienzsteigerung durch eine Prozess- und Potentialanalyse
Manfred Oppitz: Effizienzsteigerung durch eine Prozess- und PotentialanalyseManfred Oppitz: Effizienzsteigerung durch eine Prozess- und Potentialanalyse
Manfred Oppitz: Effizienzsteigerung durch eine Prozess- und Potentialanalyse
 
GEC 2016: Verne Harnish
GEC 2016: Verne HarnishGEC 2016: Verne Harnish
GEC 2016: Verne Harnish
 
Above the fold content
Above the fold contentAbove the fold content
Above the fold content
 
Final presentation for Ordinance Survey sponsored MSc Project
Final presentation for Ordinance Survey sponsored MSc ProjectFinal presentation for Ordinance Survey sponsored MSc Project
Final presentation for Ordinance Survey sponsored MSc Project
 
Using eCognition to improve feature recognition.
Using eCognition to improve feature recognition.Using eCognition to improve feature recognition.
Using eCognition to improve feature recognition.
 
Terrestrial laser scanning
Terrestrial laser scanningTerrestrial laser scanning
Terrestrial laser scanning
 
Responsive Videos, mehr oder weniger
Responsive Videos, mehr oder wenigerResponsive Videos, mehr oder weniger
Responsive Videos, mehr oder weniger
 
Automatisierte GUI-Tests mit Selenium
Automatisierte GUI-Tests mit SeleniumAutomatisierte GUI-Tests mit Selenium
Automatisierte GUI-Tests mit Selenium
 
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
 
Memory leak patterns in javascript
Memory leak patterns in javascriptMemory leak patterns in javascript
Memory leak patterns in javascript
 

Semelhante a Progressing JavaScript and Apps the Web Way

Stapling and patching the web of now - ForwardJS3, San Francisco
Stapling and patching the web of now - ForwardJS3, San FranciscoStapling and patching the web of now - ForwardJS3, San Francisco
Stapling and patching the web of now - ForwardJS3, San FranciscoChristian Heilmann
 
Progressive Web Apps - Goto Chicago 2017
Progressive Web Apps - Goto Chicago 2017Progressive Web Apps - Goto Chicago 2017
Progressive Web Apps - Goto Chicago 2017Christian Heilmann
 
Of innovation and impatience - Future Decoded 2015
Of innovation and impatience - Future Decoded 2015Of innovation and impatience - Future Decoded 2015
Of innovation and impatience - Future Decoded 2015Christian Heilmann
 
What's next? J and beyond keynote 2015
What's next? J and beyond keynote 2015What's next? J and beyond keynote 2015
What's next? J and beyond keynote 2015Christian Heilmann
 
Innovation vs. Impatience - keynote at JSOpenDay London 2015
Innovation vs. Impatience - keynote at JSOpenDay London 2015Innovation vs. Impatience - keynote at JSOpenDay London 2015
Innovation vs. Impatience - keynote at JSOpenDay London 2015Christian Heilmann
 
Progressive Web App Challenges
Progressive Web App ChallengesProgressive Web App Challenges
Progressive Web App ChallengesJason Grigsby
 
Quo vadis, JavaScript? Devday.pl keynote
Quo vadis, JavaScript? Devday.pl keynoteQuo vadis, JavaScript? Devday.pl keynote
Quo vadis, JavaScript? Devday.pl keynoteChristian Heilmann
 
Planning Your Progressive Web App
Planning Your Progressive Web AppPlanning Your Progressive Web App
Planning Your Progressive Web AppJason Grigsby
 
Futuropolis 2058 Singapore - OpenSocial, a standard for the social web
Futuropolis 2058 Singapore - OpenSocial, a standard for the social webFuturopolis 2058 Singapore - OpenSocial, a standard for the social web
Futuropolis 2058 Singapore - OpenSocial, a standard for the social webPatrick Chanezon
 
A call to JS Developers - Let’s stop trying to impress each other and start b...
A call to JS Developers - Let’s stop trying to impress each other and start b...A call to JS Developers - Let’s stop trying to impress each other and start b...
A call to JS Developers - Let’s stop trying to impress each other and start b...Christian Heilmann
 
How to Hybrid : Effective Tactics in HTML5-Native App Development
How to Hybrid : Effective Tactics in HTML5-Native App DevelopmentHow to Hybrid : Effective Tactics in HTML5-Native App Development
How to Hybrid : Effective Tactics in HTML5-Native App DevelopmentDroidConTLV
 
Are you there Page Experience? It's Me, DevTools.
Are you there Page Experience? It's Me, DevTools.Are you there Page Experience? It's Me, DevTools.
Are you there Page Experience? It's Me, DevTools.Rachel Anderson
 
Are you there Page Experience? It's me, DevTools
Are you there Page Experience? It's me, DevToolsAre you there Page Experience? It's me, DevTools
Are you there Page Experience? It's me, DevToolsJamie Indigo
 
This is the web platform
This is the web platformThis is the web platform
This is the web platformPaul Kinlan
 
Front Porch Keynote 2014
Front Porch Keynote 2014Front Porch Keynote 2014
Front Porch Keynote 2014amboy00
 
Innovating the other web - #wrocsharp keynote
Innovating the other web - #wrocsharp keynote Innovating the other web - #wrocsharp keynote
Innovating the other web - #wrocsharp keynote Christian Heilmann
 
Resisting The Feature Creature
Resisting The Feature CreatureResisting The Feature Creature
Resisting The Feature CreatureChristian Heilmann
 

Semelhante a Progressing JavaScript and Apps the Web Way (20)

Stapling and patching the web of now - ForwardJS3, San Francisco
Stapling and patching the web of now - ForwardJS3, San FranciscoStapling and patching the web of now - ForwardJS3, San Francisco
Stapling and patching the web of now - ForwardJS3, San Francisco
 
Progressive Web Apps - Goto Chicago 2017
Progressive Web Apps - Goto Chicago 2017Progressive Web Apps - Goto Chicago 2017
Progressive Web Apps - Goto Chicago 2017
 
Of innovation and impatience - Future Decoded 2015
Of innovation and impatience - Future Decoded 2015Of innovation and impatience - Future Decoded 2015
Of innovation and impatience - Future Decoded 2015
 
What's next? J and beyond keynote 2015
What's next? J and beyond keynote 2015What's next? J and beyond keynote 2015
What's next? J and beyond keynote 2015
 
Innovation vs. Impatience - keynote at JSOpenDay London 2015
Innovation vs. Impatience - keynote at JSOpenDay London 2015Innovation vs. Impatience - keynote at JSOpenDay London 2015
Innovation vs. Impatience - keynote at JSOpenDay London 2015
 
Progressive Web App Challenges
Progressive Web App ChallengesProgressive Web App Challenges
Progressive Web App Challenges
 
Responsive Design
Responsive DesignResponsive Design
Responsive Design
 
Quo vadis, JavaScript? Devday.pl keynote
Quo vadis, JavaScript? Devday.pl keynoteQuo vadis, JavaScript? Devday.pl keynote
Quo vadis, JavaScript? Devday.pl keynote
 
Planning Your Progressive Web App
Planning Your Progressive Web AppPlanning Your Progressive Web App
Planning Your Progressive Web App
 
Futuropolis 2058 Singapore - OpenSocial, a standard for the social web
Futuropolis 2058 Singapore - OpenSocial, a standard for the social webFuturopolis 2058 Singapore - OpenSocial, a standard for the social web
Futuropolis 2058 Singapore - OpenSocial, a standard for the social web
 
Hinting at a better web
Hinting at a better webHinting at a better web
Hinting at a better web
 
A call to JS Developers - Let’s stop trying to impress each other and start b...
A call to JS Developers - Let’s stop trying to impress each other and start b...A call to JS Developers - Let’s stop trying to impress each other and start b...
A call to JS Developers - Let’s stop trying to impress each other and start b...
 
How to Hybrid : Effective Tactics in HTML5-Native App Development
How to Hybrid : Effective Tactics in HTML5-Native App DevelopmentHow to Hybrid : Effective Tactics in HTML5-Native App Development
How to Hybrid : Effective Tactics in HTML5-Native App Development
 
Are you there Page Experience? It's Me, DevTools.
Are you there Page Experience? It's Me, DevTools.Are you there Page Experience? It's Me, DevTools.
Are you there Page Experience? It's Me, DevTools.
 
Are you there Page Experience? It's me, DevTools
Are you there Page Experience? It's me, DevToolsAre you there Page Experience? It's me, DevTools
Are you there Page Experience? It's me, DevTools
 
This is the web platform
This is the web platformThis is the web platform
This is the web platform
 
A Period of Transition
A Period of TransitionA Period of Transition
A Period of Transition
 
Front Porch Keynote 2014
Front Porch Keynote 2014Front Porch Keynote 2014
Front Porch Keynote 2014
 
Innovating the other web - #wrocsharp keynote
Innovating the other web - #wrocsharp keynote Innovating the other web - #wrocsharp keynote
Innovating the other web - #wrocsharp keynote
 
Resisting The Feature Creature
Resisting The Feature CreatureResisting The Feature Creature
Resisting The Feature Creature
 

Mais 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
 
You learned JavaScript - now what?
You learned JavaScript - now what?You learned JavaScript - now what?
You learned JavaScript - now what?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
 
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
 
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
 

Mais de Christian Heilmann (20)

Develop, Debug, Learn? - Dotjs2019
Develop, Debug, Learn? - Dotjs2019Develop, Debug, Learn? - Dotjs2019
Develop, Debug, Learn? - Dotjs2019
 
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"
 
You learned JavaScript - now what?
You learned JavaScript - now what?You learned JavaScript - now what?
You learned JavaScript - now what?
 
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
 
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
 
Supercharging Public Speaking
Supercharging Public SpeakingSupercharging Public Speaking
Supercharging Public Speaking
 
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
 

Último

POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxSayali Powar
 
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
 
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
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...EduSkills OECD
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsTechSoup
 
9548086042 for call girls in Indira Nagar with room service
9548086042  for call girls in Indira Nagar  with room service9548086042  for call girls in Indira Nagar  with room service
9548086042 for call girls in Indira Nagar with room servicediscovermytutordmt
 
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Krashi Coaching
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactdawncurless
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdfQucHHunhnh
 
Russian Call Girls in Andheri Airport Mumbai WhatsApp 9167673311 💞 Full Nigh...
Russian Call Girls in Andheri Airport Mumbai WhatsApp  9167673311 💞 Full Nigh...Russian Call Girls in Andheri Airport Mumbai WhatsApp  9167673311 💞 Full Nigh...
Russian Call Girls in Andheri Airport Mumbai WhatsApp 9167673311 💞 Full Nigh...Pooja Nehwal
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfJayanti Pande
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfciinovamais
 
social pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajansocial pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajanpragatimahajan3
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Sapana Sha
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDThiyagu K
 
The byproduct of sericulture in different industries.pptx
The byproduct of sericulture in different industries.pptxThe byproduct of sericulture in different industries.pptx
The byproduct of sericulture in different industries.pptxShobhayan Kirtania
 
Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpinRaunakKeshri1
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfsanyamsingh5019
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introductionMaksud Ahmed
 

Último (20)

POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
 
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
 
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
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
9548086042 for call girls in Indira Nagar with room service
9548086042  for call girls in Indira Nagar  with room service9548086042  for call girls in Indira Nagar  with room service
9548086042 for call girls in Indira Nagar with room service
 
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impact
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
 
Russian Call Girls in Andheri Airport Mumbai WhatsApp 9167673311 💞 Full Nigh...
Russian Call Girls in Andheri Airport Mumbai WhatsApp  9167673311 💞 Full Nigh...Russian Call Girls in Andheri Airport Mumbai WhatsApp  9167673311 💞 Full Nigh...
Russian Call Girls in Andheri Airport Mumbai WhatsApp 9167673311 💞 Full Nigh...
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdf
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
social pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajansocial pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajan
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SD
 
The byproduct of sericulture in different industries.pptx
The byproduct of sericulture in different industries.pptxThe byproduct of sericulture in different industries.pptx
The byproduct of sericulture in different industries.pptx
 
Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpin
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdf
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
Advance Mobile Application Development class 07
Advance Mobile Application Development class 07Advance Mobile Application Development class 07
Advance Mobile Application Development class 07
 

Progressing JavaScript and Apps the Web Way

  • 1. Progressing JavaScript and Apps the Web way… Chris Heilmann @codepo8, FullstackConf, London, July 2016
  • 2. Of innovation and impatience Chris Heilmann @codepo8, Future Decoded, London, Nov 2015 CHRIS HEILMANN @CODEPO8
  • 4. Progress, 'til there's nothing left to gain, it's Progress, it's a message that we send. And progress is a debt we all must pay. Its convenience we all cherish, its pollution we disdain. And the cutting edge is dulling, Too many folks to plow through. “
  • 5. Progress, 'til there's nothing left to gain… “ We make all our code very generic, extensible and want everything to scale in every direction. Many times we clog up the web that way and wonder why we don’t get the millions of users we scaled for…
  • 6. Progress, it's a message that we send. “ We make our solutions dependent on a lot of build processes, conversion steps and publication/packaging tools. This can be discouraging for newcomers and repel maintainers…
  • 7. And progress is a debt we all must pay. Its convenience we all cherish, its pollution we disdain. “ Technical debt has become pretty rampant in our market. We solve a lot of developer problems at the cost of our users and maintainers…
  • 8. And the cutting edge is dulling, Too many folks to plow through.“ There is an unhealthy competition going on about building great developer tools and “best practices” that haven’t proven themselves in production.
  • 9. Let’s talk about rapid progress for a bit…
  • 12. COOL TECHNOLOGY AND PEDIGREE https://en.wikipedia.org/wiki/Ingress_(video_game)https://www.google.com/earth/
  • 13. CRITICISM IS EASY AND PLENTIFUL…
  • 15. https://www.engadget.com/2016/07/11/pokemon-go-on-ios-is-digging-deep-into-linked-google-accounts/ We recently discovered that the Pokémon Go account creation process on iOS erroneously requests full access permission for the user's Google account. However, Pokémon Go only accesses basic Google profile information (specifically, your User ID and email address) and no other Google account information is or has been accessed or collected. Once we became aware of this error, we began working on a client-side fix to request permission for only basic Google profile information, in line with the data that we actually access. Google has verified that no other information has been received or accessed by Pokémon Go or Niantic. Google will soon reduce Pokémon Go's permission to only the basic profile data that Pokémon Go needs, and users do not need to take any actions themselves. https://www.nianticlabs.com/privacy/pokemongo/en https://gist.github.com/arirubinstein/fd5453537436a8757266f908c3e41538
  • 16. good progress = transparency + technology + ethics + accessibility
  • 17. good progress = transparency + technology + ethics + accessibility …which is, what the web is all about!
  • 18. 🤖🍎🖼🐧 The web is independent of platform…
  • 23. 🚪Independent of skill set (anyone is invited to be a publisher…)
  • 24. 😴😪😓😞 That’s nothing new, and for many it feels exhausting
  • 25. 🚀 It feels like a burden, when it comes to innovating…
  • 27. #WEBIP ☠ There are too many foreign influences interfering with your product ☠ The Web is too flexible to write sensible solutions - it is too much work to support everything ☠ Native environments give you better tooling and more control ☠ People want and use apps. The web is dead.
  • 28. RELAX, THESE ARE ALL VALID POINTS
  • 29. #WEBIP 😊 You can be a fan of native without criticising the web - if you don’t want to use it, don’t. 😊 Don’t try to reap the rewards of it though without building with its merits in mind. 😊 If your play is native, be aware that you will have full parallel development for each platform. 😊 You are also playing in a very fluent market - the cool thing of today is impossible to sell tomorrow.
  • 30. #WEBIP 📉 One thing to be aware is that the app gold rush is over 📉 People don’t download new apps, a few keep their attention 📉 The OS comes with a lot of useful features historically covered by apps. 📉 People get tired of the steps to go through to use an app 📉 People are sick of constant updates and the hefty data traffic this means http://www.recode.net/2016/6/8/11883518/app-boom-over-snapchat-uber http://qz.com/253618/most-smartphone-users-download-zero-apps-per-month/
  • 31. CHAT BOTS ARE THE NEW APPS https://dev.botframework.com/ https://developers.facebook.com/docs/messenger-platform
  • 32. 😍🌎 Let’s talk about progressing the web…
  • 33. The progress element represents the completion progress of a task. http://www.w3.org/TR/html5-author/the-progress-element.html “
  • 34. JAVASCRIPT ACCESS AND INTERACTION http://html5doctor.com/the-progress-element/
  • 35. WHAT <progress> LOOKS LIKE… Chrome / Android M Chrome / Windows 10 Chrome/Safari/Firefox/Opera… / OSX Edge / Windows 10 Firefox / Older OSX Firefox / Windows 10 Firefox / Windows 7 Opera Mini / Android M Opera / Windows 10
  • 39. WHAT IT WILL MOST LIKELY END UP AS… + JavaScript to make it do things…
  • 41. #BROWXIT ☠ Browser differences and stupid laws by browser makers are stopping us from using cool new technology ☠ We can and should use JavaScript to work around these issues ☠ We should be allowed to expect a certain browser from the end user ☠ We don’t have 100% control over the interface, using JavaScript, we can have that.
  • 42. NOPE, THESE AREN’T VALID POINTS brandsvig https://www.flickr.com/photos/27376974@N02/5047305345
  • 43. #BROWXIT 😊 Browser differences are what enable cool new technology. 😊 Browser makers publicly announce and discuss their decisions these days. 😊 Instead of concentrating on browsers, we should concentrate on capabilities. Use them only when the user agent supports them - this way we never deliver a broken experience. 😊 If it is experimental, don’t rely on it. And let the experiment take its course, don’t force it into production with polyfills and libraries that will be unmaintained. ☠ Browser differences and stupid laws by browser makers are stopping us from using cool new technology
  • 44. #BROWXIT 😊 JavaScript is powerful and can enable us to do beautiful things when we can control the environment (Node, Electron, editors f.e. @code) 😊 JavaScript on the web is brittle and will break. And there is nothing you can do about it. So, calm down and use the power of if(). 😊 Working around differences and relying on JS results in browsers never fixing them. 😊 The web needs less code and leaner solutions, not more fixes. ☠ We can and should use JavaScript to work around these issues
  • 45. #BROWXIT 😊 We are a delivery service. Our job is to deliver working products to the end user. Our setup isn’t theirs, and our problems shouldn’t become theirs. 😊 The amazing browser of today is the digital landfill of tomorrow. 😊 By limiting ourselves to a certain browser, we might as well build native solutions. End users will not install a browser for our sake. ☠ We should be allowed to expect a certain browser from the end user
  • 46. #BROWXIT ☠ We don’t have 100% control over the interface, using JavaScript, we can have that. 😊 The web isn’t having 100% control over the interface. You reach a lot more users and cater for their needs as they can customise the interface to their needs. 😊 You may have control over the interface, but the end user is very likely to end up with no interface at all. Any error that can happen will break your solution. JavaScript isn’t forgiving. 😊 You forfeit a lot of useful features of browsers and the web. Caching, linking, history, open in new tab…
  • 47. RELAX, THE WEB IS BEAUTIFUL
  • 49. #REMAIN 😊 Web technology and browsers evolved and keep doing so. 😊 (almost) All browsers are evergreen and disconnected from hardware and OS updates. 😊 There are no black holes left - every browser maker has open channels to communicate and bug trackers 😊 Standardisation is on the rise - we all realised that browser prefixes are a bad plan when people use them in production 😊 Writing JavaScript has gone far beyond using it in a browser - go wild.
  • 57. Your father's Service Worker. This is the weapon of a Jedi Knight. Not as clumsy or random as AppCache; an elegant weapon for a more civilised age.
  • 59. 🔧 Working offline using Service Worker 🔧 Can hibernate and notify on change 🔧 Possible progressive enhancement of a working, standard web site 🔧 More functionality with subsequent visits
  • 60. 🔧 The link is the distribution model 🔧 All the benefits of native apps - none of the sluggish distribution issues 🔧 Natural evolution of web content into the mobile form factor 🔧 A big opportunity to crack the closed distribution model
  • 61.
  • 64. IN SUMMARY… 😊 It is not your job to control the web. You can reap its rewards by being open to change and giving up control. 😊 Progressive Web Apps are here and ready to fix the broken mobile app space. 😊 The browser is but one environment JavaScript runs in. We can innovate the language much better outside of it in controlled spaces (Node, dev environments, Electron, developer tools of browsers)
  • 65. IN SUMMARY… 😊 You are free to use whatever makes you most effective. You have no right though to disrepute what others use. The web strives on diversity, not on monopoly. 😊 The web can be a platform to build on, or a compilation target. Both work on different premises and we gain nothing from telling one another what “best practice” is. 😊 The web isn’t going away. The fault tolerance of its building blocks makes it a great start to enhance from. Embrace this opportunity.
  • 66. AND IF ALL FAILS…