> I'd love to think that one day there will be no difference between storage
> and memory and programmes will run from where they are and merely
> be added to the 'stack' or running applications - rather than having to write
> them from one place to another in RAM et*c, but I am not sure if computer
> architecture and OSes are ready for this yet.
Real computers always did this, those with true computer architecture. Microprocessor-based computers have to copy data out of RAM, into on-board memory locations, and after processing is done, they have to copy the results back. I learned Assembly on the TI-99/4A, which was one of the only true computer-architecture microcomputers that was ever sold to the public. It used the TI TMS9900 chip, Its Assembly language included the LWPI (Load Workspace Pointer Immediate) instruction ... which does not exist in assembly languages for the Intel microprocessor lines. Because in those chips there is no workspace sitting in RAM along with programs and memory-mapped I/O, instead the workspace is replaced by on-board registers.