The reason I left Perl 6

luqui on 2006-05-23T13:07:33

Sometime around January or February, I suddenly disappeared from the Perl 6 scene. Before then, I was actively discussing, proposing, hacking on pugs, and everything. In an instant, it all stopped. I've had some time to reflect on that, so I'll write it down because it is presently keeping me from sleeping.

I'll first say that it wasn't out of disgust for the language or its process. I like Perl, and I like the direction Perl 6 is going for the most part. The forces at work were much more subtle than that.

Before I begin, I'd like to say that I'm writing this from memory, not checking my records. The dates may be inaccurate, and my comments, particularly those about Damian, are probably emotionally biased in some respect. If I went back and looked at the details, the result would probably be even more mild than I describe here, but the "feel" of the situation is really what is important to this article, so that's how I'm going to keep it.

Designing Perl has interested me for so long because it has satisfied two fundamental desires I have had. First, I could exercise my mathematical creativity (something that is very difficult to do in a math program where you are working with traditional math which has been very well explored). Second, I have discovered that the last few years of my life have been about social artistry. I tried to start the Miki (music wiki) project and I love game design for this reason. The design of Perl, though I did not realize it at the time, is social artistry.

Gradually a tension in the design team arose between me and Damian. I usually credit Damian as the one who taught me to argue, because if my arguments were not rock solid, he would poke holes in them until they were nothing. This was wonderful for certain debates, but it soon became a problem. He and I probably have some different principles of language design, but I was never able to identify where we fundamentally differed. In any case, it came to a point where he would respond in opposition to almost every proposal I had. This isn't an attack on him—he definitely had good reasons—but it had an effect on me.

I can demonstrate most clearly with the Junctions debate (this was the most accented, but the same thing happened subtly a couple more times). Perl was a work of art to me, and I saw the semantics of Junctions as a big ugly spot. I would propose a solution and be opposed (because the solution had some semantic holes; we don't want to take away functionality). So I would get out my paper and my whiteboard, working on a solution, mulling, exploring, for several weeks both actively and passively until I came up with what I considered more beautiful but still accomplishing the same semantic ideas, in some cases with a little more work (allow an asymptotic constant; they were in the same order of expressibility). Damian would find a yet smaller hole, we'd argue for a bit, then I would go back to the drawing board and start the process over again. When I was not opposed entirely, Larry would usually pick the bits of my proposal that enabled some feature and give a variant of my syntax to it. This didn't satisfy me at all, because my proposals were not about adding a particular feature to Perl 6, but about the beauty of the interplay of some features that previously seemed unrelated.

In the end, I did some of my best work during these minidebates. I had reached my limit on several proposals in November or December, and the holes that were found (not always, but usually, by Damian) seemed small, obscure, and without support (as if the word "useful" were a universally understood and accepted metric not needing support). I respect Perl for not ignoring programming's linguistic heritage, but the virtue of mathematical creativity was extinguished when most of the design team substituted that for attention to programming's mathematical heritage, which also must not be ignored! The virtue of social art was extinguished when the solutions that I had worked for weeks on and I considered truly beautiful lost to syntax bloat and "DWIM tables". It bascially came down to the rest of the team considering Perl much more pragmatically than I did, which may end up better for the end result anyway—it is hard to tell.

Yet I persevered until school interfered. In January, I was taken by surprise when two of the three "easy math classes" I took turned out to be very challenging. In particular, the homework for my Set Theory class was usually about four proofs. These proofs were not simple; they required insight, understanding, and ingenuity. Each one usually took an hour or more and ended up being only three or four lines long. This exhausted my brain, but also fulfilled my desire for mathematical creativity. Now I have a masters thesis in the area to work on.

In the middle of February, I started a fortnightly musical jam night with a few of my friends. This group of inexperienced musicians made some vaguely tolerable music sometimes, nothing I would ever pay money for. Yet it became the most exhilarating, most enjoyable thing I had ever done. Very gradually we improved, recruited guest musicians every once in a while, and the more fun it became. Now that school is out again, in addition to these (which are now weekly) I have joined a band of quite competent musicians and am touring around some other jam groups having fun with them. I found fulfillment for my desire of social artistry, and it was music—in particular, improvisation.

Working on Perl 6 was wonderful; I may never again have the pleasure of working with so many polite, diplomatic, intelligent people on one project. Even the conditions that caused me to inadvertently leave were very mild. But it's not too likely that I'll be coming back as a language designer, simply because I've found other avenues for these desires to travel. I'm not the kind of person to multitask in my interests.


Sorry to see you go

Limbic Region on 2006-05-23T13:46:29

I wish you the best in everything

Cheers,
L~R

From your arch-nemesis....

Damian on 2006-05-23T22:34:55

Luke,

I just wanted to thank you publicly for the work, support, and fellowship you have given the Perl 6 community over the past few years.

No doubt you and I have had many arguments on points of design in that time, but always (I hope) with mutual respect and a common desire to make Perl 6 as good as it can possibly be...even when we couldn't agree on what that would look like.

I'm not sure that you lost those debates as often as you seem to think. You've had a profound influence on Perl 6's type system, and even on junctions, whose fundamental composition behaviour now follows your (much superior) logic. Perl would not have sets had you not championed them. And I couldn't count the number of times that it was you who pointed out the fatal flaw in an otherwise enticing proposal.

Your enthusiasm and passion for good design will be deeply missed, as will your vital contribution as the most publicly responsive member of the design team.

It sounds like you will have many other interests to occupy your exceptional talents and abilities and I sincerely wish you all the best with them.

Damian

PS: Even though you're now out on parole, I do hope you realize that being on the Perl 6 design team is a lifetime sentence! Or, to put it another way: you'll always be welcome back at the madhouse. ;-)

Thanks and good luck, from a list lurker

grumpY! on 2006-05-24T04:49:40

thanks for all of your hard work. sometimes getting out is the best thing to do.