Nikolay Ananiev wrote:

So, is one of parrot's biggest strengths gone? Are we too late?
Why would the developers use Parrot instead of JVM/CLR/Mono?

We're certainly pleased that we kicked off a revolution in virtual machines, and that others are beginning to catch on to the fact that they'll have to support dynamic languages to compete. But, it would be a little silly to throw in the towel just when others are beginning to follow your lead. (And I do mean beginning. They're making great strides, but I still hear strange comments like "We support all features of dynamic languages. Of course some features, like multiple inheritance, may be slow, but we don't encourage the use of those features." from the JVM team.)

The plan to run Perl, Python, PHP, Ruby, etc. is not the only innovative feature of Parrot. To list a few:

- PGE provides parsing tools that are light years ahead of what's in common use today (what's commonly used today hasn't seen much in the way of technological advances in the past 20 years).

- TGE is a powerful tool for manipulating trees of data, like the output of a parse, or an abstract syntax tree (think of it as XSLT on steroids).

- Those parsing and transformation tools are valuable both for writing compilers and for data processing tasks (handling database output, screen scraping, combination and modification of Atom streams in an AJAXian way, etc.), giving a big boost in ease of use for both areas.

- Parrot is a register-based virtual machine instead of stack-based like .NET, Mono, JVM. Register-based machines require fewer instructions to complete the same operations (no need to push and pop the stack), eliminating some unnecessary overhead. JIT-ed code is also register-based (since the actual machine under the virtual machine is register-based), so the register-based bytecode makes that transformation simpler.

- Parrot moves beyond the fragile stack-based control flow common to virtual machines today, to a continuation-based control flow. (I can recommend a few good books and articles if you're curious.)

While the other VMs are catching up to supporting the features of dynamic languages from 10-40 years ago, we plan to open the way for a whole new breed of dynamic languages. Will others follow our example? I won't complain if they do. "Imitation is the sincerest form of flattery."

Allison

Reply via email to