FRONTEND
PAST, PRESENT AND THE FUTURE
AGENDA
▸Brief retrospective
▸Present state
▸Future trends
WE HAVE COME
A LONG WAY
PAST
State of the web over time
1995 2000
State of the web over time
2000 2005
State of the web over time
2005 2010
State of the web over time
2010 2015
State of the web over time
2015 …
POST
JAVASCRIPT
PRESENT
https://medium.com/javascript-scene/top-javascript-libraries-tech-to-learn-in-2018-c38028e028e6
Ecosystem growth
Conservation of complexity
https://blog.logrocket.com/the-increasing-nature-of-frontend-complexity-b73c784c09ae
https://blog.logrocket.com/the-increasing-nature-of-frontend-complexity-b73c784c09ae
Drivers of change
Diversification of devices
Quality requirements
Massive market growth
https://medium.com/javascript-scene/top-javascript-libraries-tech-to-learn-in-2018-c38028e028e6
Ecosystem growth
New programming models
Component-based architectures
Functional programming mechanisms
Carefully encapsulated state
https://blog.logrocket.com/the-increasing-nature-of-frontend-complexity-b73c784c09ae
- Kevin Ball
TRENDS
FUTURE
Predicting trends in tech
“A rocket will never be able to leave the
Earth’s atmosphere.”
— New York Times, 1936.
http://www.visualcapitalist.com/a-timeline-of-failed-tech-predictions/
http://www.timqian.com/star-history/
Frontend frameworks
http://www.npmtrends.com/
https://stateofjs.com/2017/front-end/results/
Libraries
React vs Vue
Approachable
One step away from mobile development (React Native)
Functional programming benefits (immutability, explicit state management)
Redux
Lot’s of innovation in the community (Relay, Next.js)
Virtual DOM
One-direction data flow
Reuse of components
React pros
Alone never enough
- Combining various libraries can be challenging
- Need transpilation, build tools etc.
Redux is verbose
JSX?
High pace of development
- Documentation doesn’t always catch up
- Easy to fall behind
React cons
Size 59KB (React: 98KB)
Easy learning curve
Can do both: full SPA and simple components
Best documentation
Template syntax
Vue pros
A closed community development
Language Barrier
Too much flexibility?
Vue cons
Future of JavaScript?
https://codeburst.io/the-future-of-javascript-will-be-less-javascript-cea373eb57fd
Future of JavaScript
Future of JavaScript
https://tomdale.net/2017/09/compilers-are-the-new-frameworks/
- Tom Dale
Future of JavaScript
https://tomdale.net/2017/09/compilers-are-the-new-frameworks/
- Tom Dale
Application state
Redux
Mobx
Vuex
ngrx/store
Store
Actions
Reducers
Mutations
https://medium.com/@Musclenun/redux-vs-vuex-9b682529c36
Web components / compilers
https://stenciljs.com/
Potentially could work in any app (be it Angular, React or Vue)
Writing them directly is not too awesome, but Stencil can help
StencilJS component
GraphQL
A serious contender to REST APIs
https://medium.com/@johntucker_48673/is-graphql-the-future-of-web-service-apis-ff932936501e
Makes a lot of sense when your data model becomes too complex
GraphQL
A whole bunch of features
• Fields
• Arguments
• Aliases
• Fragments
• Operation Name
• Variables
• Directives
• Mutations
• Inline Fragments
Static web pages
Build a static version of what normally would be a dynamic website
Using latest automation tools
Progressive web apps
https://developers.google.com/web/progressive-web-apps/
Better UX for web apps
Seem faster
Can be added to Home screen
Effective (pre)caching of key resources
Immersive full screen experience
Can even send push notifications
Serverless
BaaS & FaaS
AI bots
Big development happening with AI and machine learning right now
Chatbots created on the basis of artificial intelligence and neural
networks will continue to evolve helping to increase communication
online
This will likely spill over to frontend in some way…
Material design
CSS grids
http://cssgridgarden.com/
Is end in sight for CSS pre-processors as PostCSS, CSSnext, and CSS in JS take over?
Writing CSS
“Use tomorrow’s CSS syntax, today.”
Further and beyond
Opportunity to create powerfully immersive media experiences that
previously might have required massively custom solutions
Web Payments API
https://developer.mozilla.org/en-US/docs/Web/API/WebVR_API
Seamless access to capabilities that previously were restricted to native
devices only. Could be as simple as buying things from an app store — a
simple thumb ID and you’re done.
Web VR
https://developer.mozilla.org/en-US/docs/Web/API/Payment_Request_API
Bezos idea of essential core features
Simple core ideas
Cheap prices Vast selection Fast delivery
Big ideas of the Web
URLs
Performance
Accessibility
Thank you

Fronted development trends - past, present and the future