Isn't the Objective-C runtime a kind of VM? It might not be byte code based, but it does lots of other things that we need VMs for generally, like dynamic dispatch and such. I realize the machinery is different, but if it walks like a duck…
Seems like the linked paper is another example of the "use the most popular VM" strategy, rather than an argument that "VMs are dead" to me. Feel free to fire back if I'm completely and dead wrong, but it just doesn't seem that different from Smalltalk on the JVM, etc…
Casey On Sat, Dec 14, 2013 at 12:04 AM, Clément Bera <[hidden email]> wrote:
|
In reply to this post by Clément Béra
Hi Clément, On Sat, Dec 14, 2013 at 12:04 AM, Clément Bera <[hidden email]> wrote:
Personally no. In fact I think the trend is towards ever more virtualization, ever more language-to-language translation, ever more modelling of computation (for example reversible debuggers). The cloud actually implies that computation is better managed virtually because hardware improves, crashes, moves, etc, and if there are long-running computations tying them down to one piece of hardware seems limited. Azul systems already build java-specific server that allows for processors to evolve their ISA over time.
I don't know and I don't think the author knows enough to differentiate. It's not a well-written article. He claims AOT is a new concept; it's not. Microsoft's .Net has done this for a while. He claims "This code is mostly uncompiled. That means it’s slower than compiled code would be, but your device gets the “insulation” advantages that VMs provide" which is comparing apples to oranges (one can produce safe native code; a VM is an example of it, and there's no fundamental reason why jit code is slower than native code and in some cases it can be faster). So I don't think it's worth worrying. I'd rather read a well-written paper on KitKat than spend any more effort on this article.
best, Eliot
|
2013/12/17 Eliot Miranda <[hidden email]>
I don't think the concept of no VM is so clear or straightforward. There are some projects (like BeeSmalltalk and Mist) that are claiming that they low-level implementation produce in some way a straight executable attached to the language application and not a VM. But does that not mean to have fewer abstraction levels or no virtualization. That means that progress on compilation toolchains and moving as much as possible to language-side loadable libraries provides lot of advantages and that perhaps you don't need to have a separate concept of a VM outside your language.
|
Free forum by Nabble | Edit this page |