2025-05-05 Stable platform is a dead platform

Quick thought. To make sure that software written for given platform will keep working forever you have to kill that platform. The smallest update can break some assumption made when writing a program for that platform [1].

Dead game console platforms seems to live forever. Even on different hardware, thanks to emulation.

Emulation itself is not the solution either. In projects like Uxn [2] stability will persist as long as there will be no updates to virtual machine design.

Very recently Pebble Smartwatch platform was such dead platform [3]. But after 10 years the Pebble OS is being updated again. It already affected development. I had to update freshly made watch face to accommodate for upcoming change in version 4 release of Brutal watch face project [4].

So maybe relaying on stability is just a bad idea. Just keeping the platform layer of your C program small ensures longer survival. But platform layer can be small only if the current and future platforms are somehow similar. As it's not possible to make universal software that runs on everything.

Even programming language itself can become obsolete. That's why I think it's better to bet on C because it's developed as standard first, and then compilers are made from that standard. How many Zig or Rust compilers are out there? Will we have more in the future? I don't think so, because the Go programming language can already answer that question for us.

Memory might be the only stable thing in your software. This is probably another good argument in favor of data oriented design.

[1] xkcd: Workflow
[2] Uxn
[3] 2025-01-29
[4] Brutal Pebble watch face

EOF