Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
The State of Angular
Search
Minko Gechev
July 08, 2020
480
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
The State of Angular
Minko Gechev
July 08, 2020
More Decks by Minko Gechev
See All by Minko Gechev
Change the World With Open Source Software
mgechev
0
280
Fast Angular Apps from End to End
mgechev
1
290
The State of Angular
mgechev
1
250
Software Engineering as a Superpower
mgechev
1
280
Introduction to Angular
mgechev
1
300
Internals of the Angular CLI
mgechev
3
1.6k
The State of Angular
mgechev
1
280
The State of Angular Deployment, SSR, and Prerendering, ng-conf keynote
mgechev
2
3.1k
The Future of the Front-End Frameworks
mgechev
2
410
Featured
See All Featured
Designing for Performance
lara
611
70k
Navigating Team Friction
lara
192
16k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
2
290
Java REST API Framework Comparison - PWX 2021
mraible
34
9.7k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
3.2k
Odyssey Design
rkendrick25
PRO
2
850
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
250
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.9k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
250
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
3
4.3k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
340
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
1
430
Transcript
@yourtwitter The State of Angular Minko Gechev twitter.com/mgechev github.com/mgechev blog.mgechev.com
@mgechev 100
@mgechev
@mgechev 2,000+ Projects at Google
@yourtwitter https://unsplash.com/photos/rafblRbne3o
@mgechev v10 RC is out
@mgechev
Predictability vs Flexibility trade-offs Predictable Flexible
Static vs Dynamic trade-offs Static Dynamic
Static vs Dynamic trade-offs Static Dynamic Rust Haskell Idris C#
/ Java Go JavaScript TypeScript Ruby
Static vs Dynamic trade-offs Static Dynamic
• Compile-time optimizations • Excellent IDE/text editor support • Strict
type checking • Source code visualization • Lazy component loading • Dynamic UI assembling • Fast (no) builds Static Dynamic
twitter.com/mgechev
twitter.com/mgechev 15% of bugs detectable at build time
twitter.com/mgechev
twitter.com/mgechev
• Compile-time optimizations • Excellent IDE/text editor support • Strict
type checking • Source code visualization • Lazy component loading • Dynamic UI assembling • Fast (no) builds Static Dynamic
• Compile-time optimizations • Excellent IDE/text editor support • Strict
type checking • Source code visualization • Lazy component loading • Dynamic UI assembling • Fast (no) builds Static Dynamic 2.0 4.0
• Compile-time optimizations • Excellent IDE/text editor support • Strict
type checking • Source code visualization • Lazy component loading • Dynamic UI assembling • Fast (no) builds Static Dynamic 4.0 9.0
• Compile-time optimizations • Excellent IDE/text editor support • Strict
type checking • Source code visualization • Lazy component loading • Dynamic UI assembling • Fast (no) builds Static Dynamic 9.0
@mgechev What’s in v10?
@mgechev v10 focus • Opt-in strict flag • Increase visibility
@mgechev v10 focus • Opt-in strict flag • Increase visibility
@mgechev Strict Mode " Strict TypeScript type checking strictTemplates in
Angular Opt-in ES5 support Opt-in CommonJS support Reduced side-effects
@mgechev
twitter.com/mgechev >15% of bugs detectable at build time
@mgechev Opt-in CommonJS
twitter.com/mgechev https://web.dev/commonjs-larger-bundles/
@mgechev !// index.js import { add } from './utils'; console.log(add(1,
2)); !// utils.js module.exports.add = (a, b) !=> a + b, module.exports.subtract = (a, b) !=> a - b, module.exports.multiply = (a, b) !=> a * b, module.exports.divide = (a, b) !=> a / b, const { maxBy } = require('lodash-es'); module.exports.max = arr !=> maxBy(arr)
@mgechev !// output.js !!... (() !=> { "use strict"; !/*
harmony import !*/ var _utils!__WEBPACK_IMPORTED_MODULE_0!__ = !__webpack_require!__(288); const subtract = (a, b) !=> a - b; console.log((0,_utils!__WEBPACK_IMPORTED_MODULE_0!__!/* .add !*/ .IH)(1, 2)); })();
@mgechev !// utils.js export const add = (a, b) !=>
a + b; export const subtract = (a, b) !=> a - b; export const multiply = (a, b) !=> a * b; export const divide = (a, b) !=> a / b; import { maxBy } from 'lodash-es'; export const max = arr !=> maxBy(arr); !// index.js import { add } from './utils'; console.log(add(1, 2));
@mgechev !// output.js (()!=>{"use strict";console.log(1+2)})();
@mgechev !// utils.js module.exports.add = (a, b) !=> a +
b, module.exports.subtract = (a, b) !=> a - b, module.exports.multiply = (a, b) !=> a * b, module.exports.divide = (a, b) !=> a / b, const { maxBy } = require('lodash-es'); module.exports.max = arr !=> maxBy(arr)
@mgechev !// utils.js export const add = (a, b) !=>
a + b; export const subtract = (a, b) !=> a - b; export const multiply = (a, b) !=> a * b; export const divide = (a, b) !=> a / b; import { maxBy } from 'lodash-es'; export const max = arr !=> maxBy(arr);
@mgechev !// output.js /******/ (() !=> { !// webpackBootstrap /******/
"use strict"; !// CONCATENATED MODULE: ./utils.js!** const add = (a, b) !=> a + b; const subtract = (a, b) !=> a - b; !// CONCATENATED MODULE: ./index.js!** const index_subtract = (a, b) !=> a - b;!** console.log(add(1, 2));!** /******/ })();
@mgechev !// example.js module.exports[localStorage.getItem(Math.random())] = () !=> { … };
@yourtwitter Examples Automated updates Optimized i18n pipeline Angular Universal Compile-time
optimizations Efficient prefetching
@mgechev Zero-overhead i18n
Angular compile-time i18n (Ivy) src lib Link & optimize l10n
repeat ngc
twitter.com/mgechev @mgechev
@mgechev Thank you! twitter.com/mgechev github.com/mgechev blog.mgechev.com Survey: mgv.io/talk