Originally posted by: degibson
Originally posted by: Markbnj
Something like the CLR/VM will eventually be running in firmware.
I'm really against you on that -- runtimes and VMs are just too big for firmware, for one. And its not like these things don't themselves change all the time.
If there's one thing history has shown about software evolution, its that software accumulates in layers, and the old layers rarely, if ever, die. I fully think that future application layers will expose managed languages primarily, but managed languages may never be able to compete with raw C for performance-critical enterprise systems (e.g. commercial databases, big $) and performance-critical non-enterprise applications (e.g. games, also big $). Web applications, GUIs, etc., are of course all non-critical and can easily take a 10x slowdown on the client side without the user noticing. (not to say that the managed language impact would be 10x, that was just a number)
Well, you're certainly right that no matter how fast the processors and memory get, or how much of the latter we have available, native code will always run faster by definition. On the other hand, the risks inherent in native code development, as well as the difficulty of training people with the appropriate skills, will relegate its use to a smaller and smaller subset of development over time. Eventually I still believe the managed code environment will run on the hardware, but I admit it could take a long time to get there.