A lot of modern complexity is kind of incidental. We need to deal with GUIs, protocols, out of order execution, parallel and concurrent programming. The core of things didn't change that much, you store a bunch of things in memory, you sort then, you search things, you move them to disk storage, you retrieve them and so on.
If you wanted to run a factory floor and the machines in it just by using either assembly or C and our knowledge of a bunch of algorithms, it would probably work, but without all the advantages we leverage by modern technologies. Instead of "Select ProdOrders where....", considering we once have done a bunch of "create table" and "create index", we would have to manually define the disk structures layouts by hand, hand write sorting routines for each one. It would take armies of programmers, but a single iphone would suffice for all IT needs of a large multinational bank. The user interface would be terrible, you'll need speacialized operators for simply entering data on the system, or extracting results.
But in a space probe, you don't need to care about user interfaces, ever-changing business requirements, nice integration points, so you could probably get away with a very simple and primitive time-sharing os, in a single-threaded CPU, by using only C and a barebones standard library, dropping from time to time to inline assembly.
Actually it is an interesting imagination exercise. It makes me think that even if a catastrophic event happened like an EMP, we would probably be using computers again to help rebuild the world in less than 20 years. As long as we had people with the knowledge to deal with the basics.
A lot of modern complexity is kind of incidental. We need to deal with GUIs, protocols, out of order execution, parallel and concurrent programming. The core of things didn't change that much, you store a bunch of things in memory, you sort then, you search things, you move them to disk storage, you retrieve them and so on.
If you wanted to run a factory floor and the machines in it just by using either assembly or C and our knowledge of a bunch of algorithms, it would probably work, but without all the advantages we leverage by modern technologies. Instead of "Select ProdOrders where....", considering we once have done a bunch of "create table" and "create index", we would have to manually define the disk structures layouts by hand, hand write sorting routines for each one. It would take armies of programmers, but a single iphone would suffice for all IT needs of a large multinational bank. The user interface would be terrible, you'll need speacialized operators for simply entering data on the system, or extracting results.
But in a space probe, you don't need to care about user interfaces, ever-changing business requirements, nice integration points, so you could probably get away with a very simple and primitive time-sharing os, in a single-threaded CPU, by using only C and a barebones standard library, dropping from time to time to inline assembly.
Actually it is an interesting imagination exercise. It makes me think that even if a catastrophic event happened like an EMP, we would probably be using computers again to help rebuild the world in less than 20 years. As long as we had people with the knowledge to deal with the basics.