Reflections|Projections '08: Studies in the Ballistic Arts

The ACM chapter at UIUC is hosting the annual Reflections | Projections conference again this year. And like every year before, we have a impressive selection of speakers for the event.

Larry Wall, the creator of Perl, was speaking on the opening night. I have heard (or maybe read) about him and how he is a funny and interesting person. His talk tonight definitely confirmed that. He even did a little dance as he came in. I don't know the name for that dance, but it is the one where you would hold a bar horizontally between your hands as you skipped across the stage.

The first half of his talk was all about the philosophy of Perl. His term for this was that the process of creating Perl was a "ballistic art" (hence, the title for the talk). His best metaphor for ballistics was the game of golf, where you hope to have the ball go into the hole but more often than not, the ball moves around in weird ways that don't always take it closer to the hole. And to him that is how designing a language is. Designing a language, is almost like a weird science that does not have definite steps. While trying to add or remove a feature you are bound to please some people and displease other people.

He took a few stabs at Python and Ruby but they were hilarious nonetheless and who could blame him. He even said that he was surprised that even though Lisp is the most beautiful language in the world, every big Lisp program out there just looks ugly. This is obviously meant as a joke though I personally think that there is truth to this (at least on the syntax level).

In the second half of his talk, he went through the features of Perl 6 -- but he cleverly avoided setting a definite release date for it :-) He even joked that it would take 40 - 8 more years. 40 being the number of years that the Israelites had to be spend in the dessert before reaching the promised land. And 8 being how he has been working on Perl 6. I don't really use Perl but I have seen it enough that his examples made sense. He started off with the easier/common Perl constructs and showed how some of them are going to be standardized in Perl 6.

One thing that bugged me about Perl (and this is also present in some extend in Ruby) is the use of sigils to denote the characteristic of variables. For instance $ are for scalar values, @ for arrays and % for dictionaries. Maybe it just takes some getting used to; perhaps once you have used it long enough, you would embrace the philosophy. But anyway, it seems that Perl 6 is going to make the use of sigil more standardized so there should be less confusion.

Now, I have never really dwelled too much into the internals of Perl 6 but I have heard rumors about how bloated it is. And the more advanced features that Larry showed toward the end of his talk seemed to confirm my suspicions. I mean the features are really cool but they seem to contribute to a rather bloated language. And all these features are defined at the language level -- meaning that the core of the language has to support those features. And there are a lot of features to support....

At the other extreme end of this spectrum would be languages like Smalltalk and Lisp where the core of the language is simple but it is powerful enough to allow you to define the other constructs of the language using that core. And at the middle of the spectrum would the languages like Java and C# that most programmers are familiar with.

This means that maintaining/evolving the language later could be harder since once you have committed to something as part of the language, you generally have to support it in future versions. While thinking about this, I am reminded of the fact of how Fortran has evolved to the beast that it is today. It is really bloated because it has accumulated so much craft and never bothered to remove any because it wanted to be fully backwards-compatible.

Anyway, from the talk, it was obvious that Larry was passionate about Perl. He created Perl to fill the niche between C and shell scripting in Unix. And now it has evolved to a language that is being used by many different people. Notice that I use the term people instead of programmers because Perl has this appeal that even normal people can use it. They might not write the best code (heck, they might not even know what a function is the way based on the way that functions work in Perl) but they can definitely get stuff done with Perl with its low entry barrier.

Where Perl sits

Larry had an interesting slide on where Perl fit into the Unix World. I am pretty sure I spelt the words on the axes.

So we'll just have to wait to see when Perl 6 comes out to see if it continues with its philosophy of manipulexity + whip-up-titude.


comments powered by Disqus