Benefits of addressability - clean management of mutation
summary
Platform adds a node annotation via a Scala compiler plugin, a scheduler and a cache so referentially‑transparent functions become addressable and their results retrievable by an address made of entity + method + params + scenario. The team runs this across ~3M LOC with ~500 developers and reports hotspots like 73M allocations in a compiler profile motivating the approach. Changes are expressed as lightweight tweaks/scenarios applied with a given block; only one new object per tweak is created, reducing copying and enabling cached, parallel execution and reactive UIs in production.
AI-written summary · about
chapters (4)
- 0:00Start
- 8:18Functional Programming
- 19:15Memorization or Caching
- 44:37We Also Have Various Ways Where We Know We Can Improve Performance by Taking Shortcuts because of Information That We Have Available because in the Model We Want To Do Better with like Our Programmer Experience Which at the Moment Is Slightly Open and It Needs To Be More Possible for People To Control like What Can Be Can Be Changed Which We Use on Obviously under Advisory of What Can Appear To Change and Then We Have like a Whole Bunch of Other Things Where We Have Problems like Dealing with the Jvm It Gets Confused by the Fact that We Just Allocate Caches Which We Don't Care if We Lose Them because if You Lose some It's Referentially Transparents Not a Big Deal You Can Just Create It Again so There Are Lots of Things That We We Still Want To Build
related talks
43mMutating the immutable
33mRethinking Effects with Effect Systems
01h 44mFunctional Programming: Technical Reasons to Adapt
33mAnalyzing Functional Programs
30mTroubleshooting Techniques for Complex Codebases
34mPatterns of a pragmatic functional architecture
27mUnison: A Friendly Programming Language from the Future Part 2
32mThe Evolution of Object-Oriented Programming
