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