You don't need a new programming language for that - any type safe, memory safe language with capabilities can do it. Java or C# are good candidates. Especially with the work on Project Loom in the JVM, you could get cooperative multi-tasking controlled by the compiler rather than using processor interrupts (in theory). See Singularity for an example of what kind of interesting OS architectures are enabled by it.
The elephant in the room is Spectre. It's no longer clear you can actually keep any secrets inside an address space on speculating CPUs. So if all your code runs in a single address space, even if it works in theory, it may not work in practice. But this opens up the interesting research problem of Spectre mitigations :)
One idea I've wondered about is whether you can use the very new Intel features to rapidly change access permissions on page table entries, such that you could have a totally unified but segmented heap, but entering or leaving lower privileged code modules triggers a fast address space transition.
It turns out the perfect OS already exists: Inferno OS [1]. It doesn't need a MMU and runs with less than 1 MB of RAM. I did not dive into Limbo yet but at first glance it looks rather sane.
I think “remote resources are files” paradigm has been definitively attempted and rejected.
At its heart it’s a lie: network resources are not files. They are not yet in RAM.
Unifying two abstractions into one is great, IF the data behaves in a perfectly analogous way. Otherwise the “unification” actually makes the domain of interaction more complex.
The elephant in the room is Spectre. It's no longer clear you can actually keep any secrets inside an address space on speculating CPUs. So if all your code runs in a single address space, even if it works in theory, it may not work in practice. But this opens up the interesting research problem of Spectre mitigations :)
One idea I've wondered about is whether you can use the very new Intel features to rapidly change access permissions on page table entries, such that you could have a totally unified but segmented heap, but entering or leaving lower privileged code modules triggers a fast address space transition.