Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Parrot VM v1.0.0 released (parrot.org)
61 points by johnm on March 18, 2009 | hide | past | favorite | 29 comments


I commend the poster for having the will power required to omit an exclamation mark from the end of that title.


:-)

Since the separation of Parrot from the development of Perl 6, I do think it's fair to say that progress has been good.


Site is down, I was curious so I googled a bit: http://en.wikipedia.org/wiki/Parrot_virtual_machine

Parrot is a register-based virtual machine being developed using the C programming language and intended to run dynamic languages efficiently. It uses just-in-time compilation for speed to reduce the interpretation overhead. It is currently possible to compile Parrot assembly language and PIR (an intermediate language) to Parrot bytecode and execute it.

Parrot was started by the Perl community, and is developed with help from the open source and free software communities.


Parrot's biggest issue is that they don't have a First-among-equals language that they can do better than anyone else. JVM has Java, CLR has C#, even Perl 6 has moved to PUGS. I commend the Parrot team for the amazing effort they've been showing, but I'd liken this to Duke Nukem Forever finally settling on a Physics Engine...


Perl 6 hasn't moved to Pugs. Although anything that passes the Perl 6 test suite is Perl 6, the "real" Perl 6 is Rakudo, which runs on Parrot.

Pugs was really just a prototype. Read the source code some time, and you'll see why.


Perl 6 hasn't moved to Pugs. Pugs was an experimental prototype that was already abandoned by the time work started on Rakudo (Perl 6 on Parrot).


Thanks for the update... it's been a good 6 months or so since I last checked on Perl 6's progress...


What language do you think would be best for them/someone to move to Parrot as their base platform?

Given Parrot's very dynamic nature, a dynamic language seems like a good idea. Io would be quite interesting but it's too esoteric at this point so perhaps a more popular prototype-based language like JavaScript? What about dumping the old, crappy C-based implementation of Ruby for Parrot?


Actually, JavaScript would be kind of interesting as a First-among-equals language. The more I work with JS, the more I get the feeling that it's a wonderful language crippled by a tragic standard library and a horrible run time.


JavaScript has some great runtimes; V8 and Tracemonkey are very fast. The standard library is also fine, you probably only dislike the W3C DOM. Pretty much everyone agrees that that is one of the worst APIs ever designed, and that's why it's been replaced (or rather, hidden) by things like jQuery.


There is already an implementation of Ruby on Parrot called "Cardinal". Don't know its status but it can now be found in GitHub http://github.com/cardinal

There is also a Python implementation called "Pynie" http://code.google.com/p/pynie/

List of language developments are kept on the wiki at https://trac.parrot.org/parrot/wiki/Languages.

If language developers get behind Parrot it could become a very interesting alternative to JVM & .Net


Last I checked Cardinal was dead... and even if not, is it 1.9 compatible?


I haven't worked on Cardinal in ages, besides moving it to an independent repository recently and updating it to actually build on its own last night.

The grammar is fairly complete, but the standard library isn't there, several builtin classes are missing completely, or don't have all their methods filled out, etc.

I was targeting 1.9, yes.

The big problem is that I don't actually know or really like ruby. That's the main reason I stopped working on it.

I'd love to see someone else take up work on it. I'd be glad to give commit privs on the repo to anyone, and I'd love to help anyone get up to speed in working on it.


One of the things I love about HN.. You ask a question like that - and out of nowhere - the author of the code responds.


They should have waited another 14 days.


What 31st March? ;-)

Parrot 1.0 was released on 17th March.. as scheduled.


Parrot is out but perl 6 is only half way complete. The closest implementation has (warning!: second hand knowledge) passed 7,000 spec tests. There will be an estimated 15,000 spec tests when they are finished being written.


Here are the actual test stats... http://rakudo.org/status

BTW... "half way complete" != "passes half of the tests". I would have thought the hard stuff was done first ;-)


Halfway complete means Perl 6 will drop sometime around 2020. Sounds about right to me.


Not quite.

What it means is Parrot now has a stable API for language developers.... http://perlbuzz.com/2008/11/parrot-10-will-be-out-in-march-2...

Its looks like Rakudo 1.0 (Perl6 on Parrot) is earmarked for next year... 10 years earlier than you feared ;-)


Sounds good, but at this point I take any Perl 6 date projections with a big fat salt lick.

Years ago, I slacked on updating my 2nd edition Camel Book to 3rd edition, figuring that I would just wait for the Perl 6 version. Ten years ago. The book is not in very good shape these days.


Well Perl5 isn't disappearing because Perl6 is coming around the corner.... in fact the opposite there are lots of cools things happening right now in Perl5 world (see Moose, MooseX::Declare, etc).

So perhaps you should upgrade your Camel book or look at "Perl Best Practices" by Damian Conway. Also keep an eye on http://www.modernperlbooks.com

As for Perl6/Rakudo... no need to wait its already here! Clearly its still "beta" but that shouldn't stop you downloading and playing with it.


I've read Perl Best Practices. Good book. I don't agree with every single one (the deep ?: structures in particular) but everything in there is very sane. I've also found that with http://perldoc.perl.org, I don't have to refer to the book much at all.

However, these days I favor Ruby over Perl. Especially now that the interpreter is not dog-slow anymore.


I'd move to ruby but the OO's a bit limited for my tastes - no multiple inheritance and a fairly minimalist mixin system just doesn't cut it after doing perl/python OO and using assorted lisps for prototyping.

Of course, every ruby dev I've spoken to about this has basically said "you don't need anything more, and if you do want it, that means your design is wrong" - which brings us immediately into a question of opinion so I can't really argue either way about it.

I do find perl5 v10 w/MooseX::Declare to be very much "ruby, but with a more flexible object system" though ...


One of the things I was looking forward to in implementing Ruby on Parrot was using real OO. I don't really mind ruby's syntax too much, but the OO was frustrating.


- That website is dead!

+ No it's not, it's just resting.

- Resting? I know a " operation timed out" when I see one.

+ It's pining for the fjords.

... etc.


Ah, so the script that automatically posts this skit to Reddit whenever the word "Parrot" is mentioned works with HN now. Very nice.

Or should I say, this joke was funny about 5 years ago. After being used 150 times since then, it's really lost its charm.


"whenever the word "Parrot" is mentioned"? No, I posted it because the website as as dead as a parrot. And ended with "etc" quite quickly because, yeah, old gag.


To be fair, the web server really was dead for quite a while (and I really hate that movie).




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: