Kort svar för som du nämner är området stort han pratar om och framförallt svårt. Inte så att tekniken är svår för har polletten trillat ner är det enklare programmering. Men att ta sig dit är inte helt lätt. Det var lättare förr i tiden för att få flexibel kod (återkommer) i äldre miljöer, då var man nästan tvungen att tänka i de termer han pratar om.
Men iktigaste av allt enligt mig är att man kan referera till videon och visa att flera av "superhjärnorna" kanske inte haft 100% rätt. Därmed inte sagt att andra har rätt. Ofta när denna typ av diskussion tas upp kommer det genast upp flera stycken med länkar till kända utvecklare som säger "så här skall du göra". Sedan är diskussionen död.
Tolkar lite fritt vad han menade även om det med uteslutning går att förstå.
Kärnan i problemet: Att bygga kring fel domän
Tror han sa något om system domain eller domain, och när han säger domain tolkar jag att han menar "user domain". Alltså den domän programmet är satt att hantera. Och där nästan alla gör fel är att de bygger kod (klasser) runt "user domain".
Varför det är så illa är att den domänen normalt ändrar sig hela tiden, det är en domän utvecklare måste läsa på. Vad programmet används för är inte programmeringskunskaper utan just specifikt för varje applikation.
Istället för att bygga koden kring användardomänen, menar han att man bygger kod kring systemet (datorns system). Den typen av domän ändrar sig inte alls lika mycket, nästan inte alls. Skrevs applikation mot Win32 för 25 år sedan fungerar samma kod idag. Är koden däremot skriven mot hur en användardomän var för 25 år sedan har troligen applikationen jobbats med ordentligt eller så är koden död.
Det här är också orsaken till varför OOP blir så svårt när man väljer att bygga arkitekturen kring fel domän. OOP kopplar ihop mycket kod och när logiken ändrar sig blir det så mycket mer att skriva om. Det blir snabbt sådana mängder att hålla reda på att utvecklare tröttnar. Koden blir för tungjobbad och utvecklare behöver koncentrera sig bara för att komma ihåg alla hack.
Han beskriver då även tagged unions (taggad data). Och för att förstå varför det är så bra så behöver man förstå hur jobbigt det är att skriva om saker där mycket kod är beroende av varandra.
För när data är taggad kan man ofta göra små lösningar för att fixa edgecases mm, kanske bara lägga till en tagg för något speciellt och annan kod påverkas inte. Taggningen gör att kod blir så mycket mer flexibel på djupet.
Med taggad data kan man enkelt lägga till metod med if/switch sats eller lägga till i befintliga lösningar för att förändra utan att annan kod påverkas.
När koden är så flexibel är den också återanvändbar och det är där säkerheten kommer in. Kod som återanvänds är mycket säkrare än kod som inte gör det. Skulle ett fel inträffa smäller det ofta mycket snabbare eftersom samma kod körs hela tiden. Det blir också mindre mängd kod och mindre kod som gör mer saker är säkrare än mer kod som gör mindre saker.