Upgrade to Pro — share decks privately, control downloads, hide ads and more …

🇺🇸 RenderATL 2026

🇺🇸 RenderATL 2026

Compilers, User Interfaces & the Rest of Us

Compilers have long been seen as one of the most complex topics in computer science. Nowadays, web frameworks are evolving from runtime libraries into optimizing compilers and reshaping how we build user interfaces. Different topics in front-end development—e.g., reactive programming—are now entering this era, fueled by insights from static analysis.

This talk will explore how modern UI compilers are redefining performance and developer experience. We’ll discuss how some compilers are designed, different open-source solutions—including the React Compiler, Million.js, Svelte, and Marko—, enterprise apps, and the growing role of compilers in automating tasks.

By the end of the session, you'll probably be optimistic about a future where compilers understand our entire code and offload a significant part of our mental burden from manual tasks!

Avatar for Matheus Albuquerque

Matheus Albuquerque PRO

August 09, 2026

More Decks by Matheus Albuquerque

Other Decks in Programming

Transcript

  1. 𝕏 Matheus Albuquerque ↝ 👨💻 STAFF SWE @ MEDALLIA ↝

    ⚛ CHAIR @ REACT SUMMIT NYC ↝ ⚡ GOOGLE DEVELOPER EXPERT ↝ YTHECOMBINATOR
  2. “So here’s my advice for anyone who wants to make

    a dent in the future of web development: time to learn how compilers work.” Compilers are the New Frameworks • Tom Dale, 2017
  3. “The thing that has made reactive programming interesting again are

    compilers.” Marko: Compiling Fine-Grained Reactivity • Ryan Carniato, 2022
  4. COMPILERS & STATIC ANALYSIS… ↝ LINTERS: ESLint (2013), TSLint (2015),

    Biome (2023), Oxlint (2023)… ↝ FORMATTERS: Prettier (2017), dprint (2020), Biome (2023)… ↝ BUNDLERS: Webpack (2012), Rollup (2015), Vite (2020), esbuild (2020), Rspack (2022), Rolldown (2023)…
  5. COMPILERS & STATIC ANALYSIS… ↝ TRANSPILERS: Babel (2014), SWC (2020)…

    ↝ TYPE CHECKERS: TypeScript (2012), Flow (2014)… ↝ MINIFIERS: UglifyJS (2010), Terser (2018)… ↝ CSS TOOLING: PostCSS (2013), CSSO (2015), cssnano (2015), LightningCSS (2022)…
  6. MY GOALS FOR TODAY… Open your mind to—or even Bridge

    the gap between empower you with—tools to foundational CS concepts tackle a variety of complex and practical front-end challenges. development.
  7. ALIAS ANALYSIS: OVERVIEW ↝ IT'S A CLASS OF TECHNIQUES THAT

    ATTEMPT TO DETERMINE IF VARIABLES REFER TO THE SAME UNDERLYING DATA. ↝ IT HELPS COMPILERS GENERATE EFFICIENT AND OPTIMIZED CODE.
  8. ALIAS ANALYSIS: OVERVIEW function example(arr) { arr[0] 10; const value

    return value; = = } arr[0]; DOES VALUE ALWAYS EQUAL 10?
  9. SSA FORM: OVERVIEW ↝ A TECHNIQUE WHERE EVERY VARIABLE HAS

    A SINGLE DEFINITION. MAINTAINING USE-DEFINED CHAINS IS EASIER, SINCE FOR EVERY USE, YOU HAVE TO KEEP TRACK OF ONLY ONE DEFINITION. ↝ THE SIMPLIFIED STRUCTURE ENABLES MORE POWERFUL AND EFFICIENT OPTIMIZATION TECHNIQUES.
  10. JSCODESHIFT: HELLO WORLD export default function transformer(file: FileInfo, api: API)

    { const j api.jscodeshift; const root j(file.source); const variableDeclarators root.findVariableDeclarators('foo'); variableDeclarators.renameTo('bar'); return root.toSource(); = = = }
  11. JSCODESHIFT: HELLO WORLD export default function transformer(file: FileInfo, api: API)

    { const j api.jscodeshift; const root j(file.source); const variableDeclarators root.findVariableDeclarators('foo'); variableDeclarators.renameTo('bar'); return root.toSource(); = = = }
  12. STATIC ANALYSIS ENABLED… GRADUAL ROLLOUT OF TWO ENTIRELY DIFFERENT, FEATURE

    -FLAG-PROTECTED, BUILDS OF THE SAME CODEBASE, WITH: ↝ DIFFERENT VERSIONS OF DEPENDENCIES. ↝ DIFFERENT STRATEGIES USED FOR BUNDLING.
  13. HYRUM'S LAW & ME — BASICS OF THE G2 +

    MEDALLIA INTEGRATION • G2 DOCUMENTATION
  14. CASE STUDY: FINDING PATTERNS const selector 'span.validation'; $(selector).each((_, element) const

    $element { $(element); if ($element.text().trim() === 'Required') { console.log('Pattern found: Required field'); } > = = = });
  15. CASE STUDY: FINDING PATTERNS const selector 'span.validation'; $(selector).each((_, element) const

    $element { $(element); if ($element.text().trim() === 'Required') { console.log('Pattern found: Required field'); } > = = = });
  16. STATIC ANALYSIS ENABLED… ↝ METRICS AROUND USER-GENERATED CONTENT BASED ON

    PLUGIN COMPOSITION. ↝ ACTUAL DATA IS THE SINGLE SOURCE OF TRUTH AND CONSISTENCY IS GUARANTEED ACROSS ALL API ENDPOINTS AND THE REACT APP. ↝ RAPID ITERATION WITH INSTANT TYPED APIS AND ENHANCED DX WHEN IMPLEMENTING NEW METRICS.
  17. TS-MORPH: HELLO WORLD BEFORE interface Welcome { } AFTER interface

    ApiResponse { the_user_data?: UserData; userData?: UserData; "api-version"?: string; apiVersion?: string; isActive?: boolean; isActive?: boolean; user_preferences?: any; userPreferences?: UserPreferences; }
  18. TS-MORPH: HELLO WORLD sourceFile.getInterfaces().forEach(iface { Convert snake_case to camelCase const

    newName toCamelCase(iface.getName()); iface.rename(newName); Transform properties iface.getProperties().forEach(prop const propName { prop.getName(); if (propName.includes('_') const camelName propName.includes('-')) { toCamelCase(propName.replace(/["-]/g, '_')); prop.rename(camelName); } Replace 'any' types with proper interfaces if (prop.getTypeNode()?.getText() === 'any') { prop.setType('UserPreferences'); } }); > = > = | | = = = / / / / / / });
  19. TS-MORPH: HELLO WORLD sourceFile.getInterfaces().forEach(iface { Convert snake_case to camelCase const

    newName toCamelCase(iface.getName()); iface.rename(newName); Transform properties iface.getProperties().forEach(prop const propName { prop.getName(); if (propName.includes('_') const camelName propName.includes('-')) { toCamelCase(propName.replace(/["-]/g, '_')); prop.rename(camelName); } Replace 'any' types with proper interfaces if (prop.getTypeNode()?.getText() === 'any') { prop.setType('UserPreferences'); > = > = | | = = = / / / / / / }
  20. BREAKING CHANGES DETECTION ↝ THE RENDERED DOM (TAGS, CLASSES, ID,

    ETC.) IS A CUSTOMER CONTRACT. THEY WRITE CSS/JS AGAINST IT. ↝ WE NEED TO CATCH WHEN A PR CHANGES IT WITHOUT A HAND-MAINTAINED SELECTOR LIST. ↝ FOR THAT, WE CAN PARSE EVERY COMPONENT'S TSX/JSX AND WALK THE TREE TO EXTRACT A STRUCTURAL DOM CONTRACT: TAGS, RESOLVED CLASS TOKENS, ID/NAME…
  21. TYPESAFE DOM LOCATOR DSL ↝ QUALITY ASSURANCE TEAMS NEED STABLE

    SELECTORS TO AUTOMATE AGAINST, BUT HAND-WRITTEN LOCATORS IN TEST CODE OFTEN DRIFT FROM THE ACTUAL DOM. ↝ TO IMPROVE THIS, WE CAN SCAN THE ACTUAL SOURCE OF TRUTH (E.G. JSX + SCSS) AND GENERATE A LOCATOR DSL QE CONSUMES.
  22. COMPILERS, USER INTERFACES & THE REST OF US Compilers are

    no #1 longer just for of 2 systems programming.
  23. COMPILERS, USER INTERFACES & THE REST OF US Understanding #2

    compilers can of 2 make you a better JavaScript developer.