Preventing the Collapse of Civilization
00:15 talking about public space programs
02:00 “Neon” documentary about Apollo 11 mission.
04:00 the attitude in the 2000s about space is “Isn’t it a shame [we don’t do more]”
05:00 now rich people are privately-funding space programs. Elon Musk clip: “being a space-faring civilization is definitely not inevitable. […] People are mistaken when they think that technology just automatically improves. […] Egypt built the pyramids and then they forgot how to do that. The Romans built the aqueducts and then they forgot how to do that.”
06:45 The Lycurgus Cup (300 AD), built out of glass – “the world’s earliest nanomaterial” – which exhibits strange colors depending on how light shines through, which we only understood in the 1990s. Clearly evidence of doing materials science.
09:15 byzantine empire had flamethrowers that would fire napalm-like substance (not extinguishable with water)
10:00 Antikythera Mechanism (200-80BC) mechanical calendar. Lots of gears, possibly hundreds, believed to be in the complete device.
12:30 We believe that technology always marches forward, but it goes backward all the time. Great achievements get lost a lot when a civilization falls or when it simply fails to propagate knowledge forward.
13:15 interview with Bob Colwell, chief microprocessor architect of Intel. Found bugs in the chips from Texas Instruments. TI knew their chips were buggy. TI said that the transistors that were available were being designed by people who couldn’t predict how a change in packaging would cause voltage spikes that cause unpredictable behavior.
15:30 Without generational transfer, even full civilizations can die. Late Bronze Age, 1700-1200BC, there was a huge interconnected network of trade, and for some reason they started a bunch of infighting and each independently failed, many of their languages needed to be reconstructed.
18:00 Software is in decline right now (collapses look slow from the inside)
22:00-28:00 “We simply don’t expect software to work anymore”. He counts/tallies the number of times per day that software does something that’s obviously broken/he can’t understand
28:00 consider the “five 9s” movement
30:00 people say, “the market won’t pay for robust software”. well, ok. but if the industry has never produced robust software, what makes you believe they could do it even if they wanted to?
31:00 a tech company used to be something that builds things that never existed before. tech company nowadays means a software company that stumbles into a market niche it hopes is exploitable, but to do so using computers.
32:00 working at high level of abstraction is said to boost productivity. but it also has a converse tradeoff we don’t try to reason about: loss of capability
34:00 in reality, productivity per programmer may be approaching zero. look at degree of functionality change divided by number of engineers and the value seems to be in decrease. how much direct-to-user value do you see getting added to facebook per month (divided by number of engineers working there)?
35:00 compare interview excerpt with ken thompson, who says “there was a moment i realized that i was 3 weeks of work away from having a complete operating system, and luckily my wife and child were going out of town for 3 weeks to visit my in-laws […] and then we had UNIX”
36:00 if robustness and productivity are in decline, then software is in fact not advancing in general
37:00 what’s the cause? we’re adding too much (unnecessary) complexity to everything. best exemplified by any sentence starting with “It turns out you can’t just …”. examples: installers&containers; shading languages; compiling or linking; …
44:30 “meanwhile, while we’re spending all this time overcomplicating stuff that we used to be able to do in 1960, in the games industry we’re not even able to do the things that we’ve needed to do forever.” render at a smooth frame rate is hard, even running consistently in fullscreen is a significant engineering effort
45:30 complication accelerates knowledge loss: more to know, so you can know a smaller percentage of the total; deep knowledge is replaced by trivia (deep=>how cache coherency works; trivia=>how to work around idiosyncracies of Unity game engine); good information is drowned by noise (bad opinions are harder to differentiate from good ones, so bad info drowns out good info)
47:30 complexity creates fragility which contributes toward institutional decay. we behave now as if the upper limit on complexity we can handle is infinite. we need to find a way to account for difficulty of generational transmission.
48:30 video games used to be about maximizing the machine, nowadays it’s much more about interfacing with and appeasing Unity.
50:00 what’s going to happen when there aren’t enough engineers to make the successor game engines? when Unity and Unreal were created, everyone was rolling platform-dependent game code in order to maximize hardware utilization, and saw an opportunity to keep hardware utilization high while also building games in a way that’s platform-agnostic. In that environment, there was a huge pool of engineers who knew when that tradeoff was in imbalance and how to manage that tradeoff when building such an engine. Nowadays everybody works on top of these engines and so nobody knows what would need to go inside of a successor, even if we knew when it’s time for a successor to be started.
53:53 Even if civilization doesn’t collapse because of software, the future will be deeply mediocre if we continue on this path. [in the way that America’s space future was going to be deeply mediocre if not for patrician class building private space programs]
55:00 [Even if your objective is to ship and make profit,] removing complexity is still the right short-term play. In the act of simplifying in order to solve your local problems, you’re also building institutional knowledge about how to simplify, which sounds really basic, but I would claim we probably don’t even have that anymore.