Infographic 10 · D3 · Aliens block
Ripley does not get stronger. She gets a bigger machine and keeps the judgement. Every language on this climb made the same trade, and naming what each one gave up is more useful than ranking them.
The y axis is a judgement rather than a measurement, and the figure is better for admitting it. Two rungs deliberately dip: Go and Rust both took back control that the rungs before them had given away.
| Year | Language | Gave up | Bought |
|---|---|---|---|
| 1949 | Assembly | nothing at all | names for the opcodes |
| 1957 | Fortran | the register file | an expression a physicist can read |
| 1972 | C | the instruction set | one program, many machines |
| 1991 | Python | the memory model | an afternoon instead of a week |
| 1995 | Java | the memory model, formally | a runtime that outlived its hardware |
| 2009 | Go | inheritance, and generics for a decade | compile times and a concurrency model |
| 2010 | Rust | a gentle learning curve | memory safety without a collector |
| 2014 | Swift | C compatibility by default | nil that has to be admitted |
Hardware is what you cannot change while it runs. That definition travels further than one about silicon, and it puts firmware on the software side and a baked container image on the hardware side, which is the correct answer in both cases.
| Side | Properties |
|---|---|
| Hardware | Cannot change while it runs. A baked image behaves like this. Being wrong here costs a recall. |
| Software | Can change while it runs. Firmware belongs on this side. A matrix multiply used to live here. |
Campaign day 81. The written piece is in the writing index.