The real difficulty of systems programming in C is due to syscall/POSIX/libc semantics like the interplay between signal handling and async readv/writev resumption. These things are way beyond what the borrow checker and coverage-guided fuzzers can deal with and consist the bulk of vulnerabilities. Rust won't save you from CopyFail; you would need hardcore formal verification like TLA+ coupled with F* /Low* /Pulse to catch it before release. AI (or manual) Rust rewrites of well trodden C code is calling for trouble more than anything else.
Too true. I realized that the only way to do an actual review is to have wrote it yourself in the first place. The relatively slow speed of writing code reflects the amount of subtleties and effort to think through all of them. Only when LLMs are used as hint givers, are they actually doing an essential speedup. This goes to show how shallow programming and code review had always been. The right impression is that of studying real analysis.
Too true. This is why Rudin's little book, Principles of Mathematical Analysis, normally takes a whole year to cover: one has to work through the proof line by line in order gain enough understanding to do the exercises. Programming gives you the false sense of ease with leaky "interfaces" and quantum-entangled "decoupling". LOL, one microservice in one separate git repo, and tested with mocks and Gherkin syntax BDD. Just LOL, I call this hyperreal programming. With "spec-driven" AI generated code that is reviewed and tested by AI, it is certain that "the programming did not take place". In this "brave new world", "the map has overcome the territory", and "the twelfth camel" was never returned. Programmers certainly don't need "the mythical man-ager" to go delulu and full ouroboros, i.e. "there is no big Other".
I've come to believe that democracy doesn't work because most citizens don't want to work it. Many of the legislations passed are harmful to the majority even when the intentions are good. Milton Friedman, Thomas Sowell, and Friedrich Hayek have been saying this for a century.
This was the sentiment for programmers well-versed in assembly languages (counting cycles, self-modifying code, story of Mel) when compilers came out, yet the advances in compiler technology enabled the creation of OCaml and Coq. What I think will actually happen is that a new breed of programmers with extensive mathematical background will start designing unprecedented software (or even digital circuits through high-level synthesis) that are almost correct by construction at a much faster rate with the combination of formal specification and AI coding. The field of computer aided design (CAD) will likely explode, and we will witness spaceships, nanobots, etc. being churned out at the rate of React websites. The whole computing field will become so high level that applied mathematics like optimal control, optimal transport, information geometry, etc. will become bread and butter for any programmer.
At the same time, there will be a new breed of artists that starts making games, movies, etc. with AI alone. We will witness a whole new form of artistic expression.
reply