Slashdot Mirror


The Perl Foundation Gets New Leadership

Andy Lester writes to tell us that the Perl foundation has named a new president and steering committee members. Bill Odom landed the seat of president, replacing Allison Randal who has occupied the seat since 2002. From the article: "Founded in 2000, The Perl Foundation (TPF) is a non-profit 501(c)(3) corporation based in Holland, Michigan, established to advance the use and development of the Perl programming language through open discussion, collaboration, design, and code."

7 of 145 comments (clear)

  1. Keep them both? by neelm · · Score: 5, Funny

    Why not keep both on as president? That way there would always be more than one way to get something done... I'm sure that never leads to problems. /who let this python guy in the room?

  2. Perl's place in todays world? by rockinrobotix · · Score: 5, Insightful

    Other than for products (or news aggregating websites) that were originally coded in Perl is there any reason to start a project today in Perl instead of any of the more modern scripting languages?
    This is not a rhetorical question (or in Slashdot: I am not trolling). I would actually like to know why developers would choose Perl over alternatives today on a new project.

    1. Re:Perl's place in todays world? by publius_ovidius · · Score: 4, Interesting

      As one of the people who was elected to the steering committee, I don't mind taking a poke at this question.

      Many of the complaints about Perl stem from the fact that Perl was a pioneer in getting "dynamically" typed languages before the public eye. It certainly wasn't the first (was LISP the first major one?), but it has been the largest. Unfortunately, because Perl has been blazing a trail it's had many years of going down promising paths only to find them dead ends (pseudo-hashes anyone?). Languages such as Python and Ruby have been happily running down this path and ignoring the trails they already know to lead to oblivion.

      This suggests an obvious question: what's wrong with Perl? Well, there's plenty wrong with Perl that I can point out, but interestingly, I've discovered that the complaints which Perl experts have are radically different from the complaints that casual Perl users have (amusingly, many folks who criticize Perl couldn't tell simple Perl and PHP snippets apart).

      Just as I have serious complaints with Perl, those who are experts in Ruby and Python probably have serious problems with those languages which do not mirror my own objections. Python, for example, is eliminating the badly implemented lambda function and getting rid of all hope for closures (feel free to correct me if I'm wrong). Ruby has mixins in lieue of multiple inheritance and traded one set of problems for another (trait composition seems to offer the best of both worlds but it hasn't caught on yet). However, those complaints probably reflect my imperfect understanding of those languages and I strongly suspect that those using these languages have other fish to fry.

      A big problem with Perl is that it's being taught incorrectly. Few teaching materials really focus on the linguistic basis of the language. Once you really, really understand the linguistic basis, the difference my $foo = ... and my ($foo) = ... becomes second nature. The idea of "topics" and "topicalizers", though more explicitly stated in Perl 6, are also quite important but not taught well. It's quite natural, but it's such an unusual feature for programming languages that those who come to Perl who pick up the language in a haphazard manner get annoyed at the seeming fickleness of the language even though many of these behaviors are quite predictable if you understand the linguistic underpinnings. That's not to say there aren't quite a few quirks in the language whose behavior is not predictable, but many languages suffer strange quirks and are still widely used.

      People complain about Perl's "line noise" characteristics and unmaintainable programs and ignore that much of this stems from heavy regular expression use (yell at regexes, not Perl) and people without a strong programming background finding the language easy to use (yell at those people, not at their tool). Professional programmers who use Perl often build large, robust systems in a fraction of of the time that developers in Java or C++ would. Of course, good programmers are implementing robust test suites, automatic builds and other tools to catch them when the fall.

      When all is said and done, were it not for Perl 6, I'd probably start using Ruby. I have really enjoyed Ruby the few times I used it but it had such limited use (prior to Rails) that I didn't want to jump ship.

    2. Re:Perl's place in todays world? by King+Babar · · Score: 4, Insightful
      This suggests an obvious question: what's wrong with Perl? Well, there's plenty wrong with Perl that I can point out, but interestingly, I've discovered that the complaints which Perl experts have are radically different from the complaints that casual Perl users have (amusingly, many folks who criticize Perl couldn't tell simple Perl and PHP snippets apart).

      What you say is true, but misses a major, major point. Perl right now has a pretty horrible reputation in some quarters, and even though it might be the result of kvetching from a lot of uninformed people, pointing this out is not a solution to the problem. More than a couple of political campaigns have gone down in flames when candidates made no useful response to baseless negative campaigning. Right now, I'm finally getting more excited by Perl6 now that there looks like there will be one, but we're still realistically looking at January 2007 for that, which is about seven years after the effort started.

      Given the comment at the very end of your post about Ruby, you realize the kind of mortal peril that Perl finds itself in. If Matz had not been Japanese, and therefore more of the Ruby docs had been available in English maybe 3 years earlier, Perl could have ended up stone cold dead. What the new leadership has got to keep in mind is very simple: if we don't finish Perl6 *right now*, we're all going to die. This was not the only way to have done things, but so much has been invested in Perl6 for so long that there is really no way to make Perl5 better in ways that will convince people that it isn't last year's language. If only a bit more thought had gone into Perl5 these last five years or so, we'd be in better shape right now.

      But I have one more point to make, while I'm on the soap box:

      People complain about Perl's "line noise" characteristics and unmaintainable programs and ignore that much of this stems from heavy regular expression use (yell at regexes, not Perl) and people without a strong programming background finding the language easy to use (yell at those people, not at their tool).

      That's not completely true. Like it or not, every Perl variable name has a piece of line noise attached to it that 90% of the time clarifies nothing. For that matter, there is the madness surrounding lexical variables in Perl. Using them is good programming practice, but every declaration of such a thing adds another "my" to the list. It would have been SO EASY to define a flag or a pragma noting that all of the declarations in a file were implicitly of "my" variables, but this never happened. And then there is the fiasco of function argument declarations. As in: Perl, unique among all other scripting languages doesn't yet have useful parameter lists in function definitions Every time I type somehing like my ($foo, bar, $baz) = @_; I think to myself "lame lame lame". Sure, Perl6 solves this one quite handily, and gives eleventy-seven different ways to call and declare function parameters, but Yeesh! Did we really have to wait for the One Great Perl to arrive to get something that sucks less than Javascript 1.0 in this respect?

      I have been a Perl programmer for 14 years now, and I think the world of what it can do. But I am telling you this: if we don't fix Perl, we will die. The seven lean years will kill us unless we make it completely obvious to people how superior Perl6 is, and unless we make sure that it really is out there to hack with. If betas of Perl 6 don't arrive before the middle of 2006, I swear we are doomed. Please do everything in your power to make sure this doen't happen.

      Thanks for listening. :-)

      --

      Babar

    3. Re:Perl's place in todays world? by publius_ovidius · · Score: 4, Interesting

      I do agree that pointing out how invalid some criticisms of Perl are does not solve the perception problem. We're trying to figure out a good strategy to deal with this and suggestions are always welcome.

      As in: Perl, unique among all other scripting languages doesn't yet have useful parameter lists in function definitions Every time I type somehing like my ($foo, bar, $baz) = @_; I think to myself "lame lame lame".

      And later you wrote: I have been a Perl programmer for 14 years now ...

      I sometimes hear the criticism about Perl's argument handling, but I don't hear that as much as the line noise issue. The fact that you've been a Perl programmer for 14 years means that you are probably more keenly aware of this than most. I've released a module named Sub::Signatures which helps to deal with this (and allows multi-(?:method|function) dispatching (MMD) based on the number of arguments) but because it's a source filter, people are afraid to try it. Frankly, given the reputation of source filters, I can't say I blame them.

      In any event, this criticism is perfectly valid and it's one of my strongest complaints about the language. It's inherently tied to the MMD issue so the latter cannot be resolved easily without the former. Another major issue is lack of encapsulation in standard object creation. Class::Std helps to minimize the problem, but it has problems running under persistent environments such as mod_perl, thus limiting its usefulness in the sort of environment which is designed to scale and thus truly needs that encapsulation. These issues combined with a lack of proper introspection capabilities are my strongest complaints. Solving them would go a long way to making Perl a truly robust language.

      These issues aside, I specialize in building huge systems in Perl. I have worked on systems that tell Hollywood how much money their movies make while collecting and collating data from thousands of movie theaters across the USA. I currently work on software used by little-known companies such as the Rand Corporation, the World Health Organization and the Congressionally funded Radio Free Asia (they use my employer's software to publish their Web site in 10 different languages). The major requirement for building large systems such as these is having a robust test suite. Given the latter requirement, you can achieve powerful scalability with just about any language capable of it. Fortunately, because I choose to use Perl, I can roll out solid, robust code much faster than Java or C++ programmers. I have some amusing stories about destroying competitors using those languages because they couldn't keep up with our speed of development but NDAs compel me to keep quite :(

      As for Parrot and Perl 6, they solve these problems and many more. However, Parrot is revolutionary in its approach and given that that we are a volunteer organization, it is difficult to get qualified full-time developers to solve truly unique problems. Fortunately, we're finally getting there. Perl 6 is worth the wait but those who haven't been following it closely (and perhaps those who have been following it too closely :) are getting frustrated. I don't blame them, but we don't have a huge staff on hand to crank this stuff out the door.

      Patches welcome :)

  3. Re:There will always be a place for Perl. by chromatic · · Score: 5, Informative

    Multi-dispatch, junctions, roles, rules and grammars, a much improved VM, asynchronous IO, working threads, an event system, continuations and coroutines, optional typing and type inferencing, an immensely improved FFI, interoperability with other languages including Perl 5, an improved object system, hyperoperators, unification of blocks and closures, properties, object-like built-ins, improved reflection and introspection, improved consistency, improved clarity, and improved distribution possibilities.

  4. Re:Catch-up by publius_ovidius · · Score: 5, Interesting

    80% catch up? I think your math is off.

    Catch up:

    • multi-dispatch
    • asynchronous IO
    • working threads
    • an event system
    • immensely improved FFI
    • properties
    • object-like built-ins
    • improved reflection and introspection
    • improved consistency
    • improved clarity
    • improved distribution possibilities.

    Revolutionary (items in parentheses explain why some "common" features are included here):

    • an improved object system (revolutionary in its approach)
    • Register-based VM
    • junctions
    • roles
    • rules and grammars
    • continuations and coroutines (not widespread)
    • optional typing and type inferencing (other languages typically don't make this optional)
    • interoperability with other languages including Perl 5 (because of how easy it is)
    • hyperoperators
    • unification of blocks and closures

    (Before you criticize those things I put in the revolutionary list, you'd have to take the time to read up on them and realize why I put them there rather than just assume that I don't know what I'm talking about. I've programmed in many languages and I have a very good idea of what's common and what's not -- though perhaps I'm just smoking crack.)

    Of course, I could make similar comments as yours about Java (I don't know C++ well). Java languished for a long time without regular expressions. Autoboxing in Tiger was an attempt to get around some of the difficulties inherent in typing the container. The latest Dr. Dobb's has an interesting article about functional programming in Java -- something many other programs have allowed for years. Of course, Java still doesn't have closures (that's sooooo 1980's and interfaces were a neat idea which introduced a different set of problems for the ones they solved). Further, Java's decision to type the containers instead of the data means they must focus more on class types than class capabilities, thereby eliminating many of the benefits of allomorphism. And not even get into how ridiculously verbose the language is. I don't play "Perl golf". I take the time to write out clear code. It's still far shorter than equivalent code in Java.

    Mind you, just because I list these issues with Java does not mean that I think it's a bad language. On the contrary: I happen to like Java. I sometimes program in it and just as Perl has some benefits over Java, the reverse is often true. Java and Perl are both crazy but Perl is my type of crazy.