Question: I just saw that there is a Ruby to [`Parrot`](http://en.wikipedia.org/wiki/Parrot_virtual_machine) compiler called [`Cardinal`](http://cardinal.github.com/), which can create code to run on [`Parrot`](http://en.wikipedia.org/wiki/Parrot_virtual_machine), which is a VM that can run byte-code. How is the performance of Ruby or any language compile to it and run there because for example, Ruby probably doesn't have pre-compiled byte code. Can it be faster running on [`Parrot`](http://en.wikipedia.org/wiki/Parrot_virtual_machine)? Python probably will be better off running as it is because it has .pyc.

Answer: 
[`Parrot`](http://parrot.org/) development hasn't focused on optimisation yet. The roadmap always listed this at version 3 or 4 ([`Parrot`](http://parrot.org/) is currently at version 2.9).

A big refactor branch which includes ripping out the JIT and replacing it with a new one is currently happening (refs: [Lorito](http://trac.parrot.org/parrot/wiki/Lorito) & [JITRewrite](http://trac.parrot.org/parrot/wiki/JITRewrite)). 

The fruits of this should start showing as part of Parrot 3.0 which I think is due next spring. 

**Update**

A likely [roadmap](http://whiteknight.github.com/2010/11/04/parrot_of_the_future.html) has been posted by a Parrot Developer in his [blog](http://whiteknight.github.com/). Here is a summary of what he thinks the next 3 years maybe:

* 3.0 - New Garbage Collector
* 3.3 - Lorito prototype
* 4.0 - New object metamodel
* 5.0 - New JIT
* 6.0 - New concurrency system

/I3az/
Edit: I was looking at older results when [newer ones are available](http://programmingzen.com/2007/12/03/the-great-ruby-shootout/). As of the most current benchmarks, which are still quite old, parrot beats the vanilla vm on a few tests, but is slower on others. A few tests it's not even able to complete.

yarv is the hands-down speed king for ruby performance.