Main menu:

Site search

Categories

Archive

Parrot and Perl 6

During the six years of working before grad school, my primary programming language was perl. I had only written a couple of short scripts as an undergrad, but I wound up in a sw position within an operations group, and there was no avoiding perl.

Not that I would have wanted to. After getting used to reading perl code, I really enjoyed the CPAN libraries and the cultural ties that it had to C and UNIX.

But unfortunately it remains such a complicated language that it doesn’t get much notice in academic circles.

Which may be partially why “Parrot” piqued my interest a few years ago. It promised to create a virtual machine which dynamic languages like python and perl could run on.

One aspect of this — the incredible cross-platform support of perl — goes unquestioned a big win for any language that would be able to translate itself to parrot.

But I’m a bit wary of this project’s direction overall. One big checklist item in my head lately is this “declarative language descriptor” idea. I feel strongly that a language should be explicitly described rather than implicit in a compiler/translator. And as discussed in previous posts, defining the syntax does not define the whole language. We have decades’ worth of experience with yacc, bison, antlr, and similar tools, but until we bite off more of the operational semantics, we won’t be getting nearly as much reuse of the tools as we could be.

More interestingly, this factoring of the problem will lead to much more natural tie-ins for IDE’s, source code control, debuggers, code generators, and other related tools. If done right, this should change the way we think about languages and software engineering.

Parrot comes so close. I like its platform independence as well as the fact that it targets many different languages. But something seems to be missing in the overall direction and vision. I don’t have enough experience with them to comment with any kind of authority, but my guess is that the dynamic language community still doesn’t quite realize how much it misses from Smalltalk. The Smalltalk environment was capable of providing a lot of functionality that we normally think of as only something that a statically typed language can do. So many dynamic languages seem to have taken the “dynamic” part without taking a lot of the other goodies that Smalltalk provided that made it a good general purpose language and environment.

Share and Enjoy: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google

Comments

Comment from chromatic
Time: September 2, 2007, 4:43 am

I’m very interested to hear what you think Parrot is missing in this sense.

Write a comment