4 ms·
Mind that in .NET or JVM tooling has total control over underlying machine, which is also the same on any platform. So VMs have a lot of sense nowadays, especia
by juskrey 7y ago
Mind that in .NET or JVM tooling has total control over underlying machine, which is also the same on any platform.
So VMs have a lot of sense nowadays, especially with multithreading. No one can now dismiss them because they are "heavy" or "unnecessary", unlike, say, 10 years ago.
- pjmlp 7y agoC and C++ also have a runtime, that should take that role. In fact, bare metal deployments without runtime are non-conforming from ISO point of view, if I am not mistaken. Ironically managed environments go back to Burroughs Large Systems, Xerox, UCSD, ETHZ, it is just that we had a couple of decades where focus went elsewhere, and just like containers and VMs they are being rediscovered. EDIT: typo "with" => "without"
- gpderetta 7y ago> In fact, bare metal deployments without runtime are non-conforming from ISO point of view, if I am not mistaken. a freestanding implementation is conforming.
- pjmlp 7y agoThanks for the correction.
- dehrmann 7y ago> C and C++ also have a runtime What do you mean by "runtime?" libc just makes it so you're not writing your own system calls. Things like attaching a profiler post-hoc, hot-replacing code, optimizing code, remote debugging, etc. aren't really things in C-land.
- pjmlp 7y agoI mean startup code that runs before main(), code that runs registered atexit() functions at application exit, floating point emulation for ISO C float semantics regardless of hardware support, thread local storage, threading (as of C11). And keeping all of the above when targeting bare metal deployments as well. All of that falls into the language runtime from compiler design point of view.
- acqq 7y ago> in .NET or JVM tooling has total control over underlying machine I don't understand at all which kind of control which is different from something else related to C or C++. Can you please be a bit more cpecific in describing what you think that .NET and JVM have? Edit: to the reply below, in full "A virtual machine." Duh. Of course .NET or JVM have a virtual machine each. But what's the support for the rest of the claim: > VMs have a lot of sense nowadays, especially with multithreading. No one can now dismiss them because they are "heavy" or "unnecessary", unlike, say, 10 years ago I failed to see how that follows from the starting statement.