Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×

Larry Wall on Perl 6 265

Nate writes "Linux Format magazine has an interview with Larry Wall, the eccentric linguist and coder behind Perl. Larry discusses some of the new Perl 6 features ready to rock the world, and if you're not planning to move from Perl 5.8, he has a few musings on that too."
This discussion has been archived. No new comments can be posted.

Larry Wall on Perl 6

Comments Filter:
  • by Anonymous Coward on Tuesday December 20, 2005 @08:48AM (#14298048)
    Gentlemen, the time has come for a serious discussion on whether or
    not to continue using Perl for serious programming projects. As I will
    explain, I feel that Perl needs to be retired, much the same way that
    Fortran, Cobol and C have been. Furthermore, allow me to be so bold
    as to suggest a superior replacement to this outdated language.

    To give you a little background on this subject, I was recently asked
    to develop a client/server project on a Unix platform for a Fortune
    500 company. While I've never coded in Perl before I have coded in VB for
    fifteen years, and in Java for over ten, I was stunned to see how
    poorly Perl fared compared to these two, more low-level languages.

    Perl's biggest difficulty, as we all know, is the fact that it is by far
    one of the slowest languages in existance, especially when compared to
    more modern languages such as Java and C#. Although the reasons for
    this are varied, the main reasons seems to be the way Perl requires a
    programmer to laboriously work with chunks of memory.

    Requiring a programmer to manipulate blocks of memory is a tedious way
    to program. This was satisfactory back in the early days of coding,
    but then again, so were punchcards. By using what are called
    "pointers" a Perl programmer is basically requiring the computer to do
    three sets of work rather than one. The first time requires the
    computer to duplicate whatever is stored in the memory space "pointed
    to" by the pointer. The second time requires it to perform the needed
    operation on this space. Finally the computer must delete the
    duplicate set and set the values of the original accordingly.

    Clearly this is a horrendous use of resources and the chief reason why
    Perl is so slow. When one looks at a more modern (and a more serious)
    programming language like Java, C# or - even better - Visual Basic
    that lacks such archaic coding styles, one will also note a serious
    speed increase over Perl.

    So what does this mean for the programming community? I think clearly
    that Perl needs to be abandonded. There are two candidates that would be
    a suitable replacement for it. Those are Java and Visual Basic.

    Having programmed in both for many years, I believe that VB has the
    edge. Not only is it slightly faster than Java its also much easier to
    code in. I found Perl to be confusing, frightening and intimidating with
    its non-GUI-based coding style. Furthermore, I like to see the source
    code of the projects I work with. Java's source seems to be under the
    monopolistic thumb of Sun much the way that GCC is obscured from us by
    the marketing people at the FSF. Microsoft's "shared source" under
    which Visual Basic is released definately seems to be the most fair
    and reasonable of all the licenses in existance, with none of the
    harsh restrictions of the BSD license. It also lacks the GPLs
    requirement that anything coded with its tools becomes property of the
    FSF.

    I hope to see a switch from Perl to VB very soon. I've already spoken
    with various luminaries in the Perl coding world and most are eager to
    begin to transition. Having just gotten off the phone with Mr. Alan
    Cox, I can say that he is quite thrilled with the speed increases that
    will occur when the Linux kernel is completely rewritten in Visual
    Basic. Richard Stallman plans to support this, and hopes that the
    great Swede himself, Linux Torvaldis, won't object to renaming Linux
    to VB/Linux. Although not a Perl coder himself, I'm told that Slashdot's
    very own Admiral Taco will support this on his web site. Finally,
    Dennis Ritchie is excited about the switch!

    Thank you for your time. Happy coding.
    • I think clearly that Perl needs to be abandonded. There are two candidates that would be a suitable replacement for it. Those are Java and Visual Basic.

      For relatively simple cgi tasks, Perl is still, by far, my favorite:

      • It's simple and relatively easy to learn.
      • It doesn't have to be compiled.
      • It doesn't require any special software to write Perl programs or modify them.
      • There is still a very active Perl open source community.
      • And it's almost universally supported on virtually every web server and platform
      • maybe I'm just saying this because I'm an old dog and haven't learned the latest tricks....

        How about the trick of noticing a joke?

        Did you actually read the whole thing? If so, can you honestly believe in VB/Linux?

        No, this is Geek Satire at its finest.
    • I hope everyone reads this post entirely. It is obvious satire. It would be a troll if you don't read it all.
    • Ouch, such cutting edge satire. Thank you for reminding us that brevity is the soul of wit.
    • I was reading your post as if you were the stupidest person alive until I hit "harsh restrictions of the BSD license" and then I knew this could not be anything but a joke. The final paragraph assured me of that. Very good post. Viva VB/Linux!
  • by YA_Python_dev ( 885173 ) on Tuesday December 20, 2005 @08:49AM (#14298055) Journal

    The virtual machine that will run Perl 6 [perl.org] is Parrot [parrotcode.org], an innovative register-based JITed VM optimized for dynamic languages.
    It can also run a subset of Python (compiled with Pirate [tangentcode.com]), Ruby, Tcl, brainf*ck, Ook!, Common LISP, BASIC, Lua, m4 and a few others, all of which are more or less incomplete.

    More details on the Parrot site [parrotcode.org] and the Wikipedia page on the Parrot VM. [wikipedia.org]

    If you like that sort of things, you can help! [parrotcode.org]

    • by porkThreeWays ( 895269 ) on Tuesday December 20, 2005 @09:09AM (#14298162)
      For as long as I've been following Perl 6, I've felt Parrot is more interesting than Perl 6 itself. Parrot is in many ways like .net (obviously there are many internal differences, but the idea is the same). Compile to a common bytecode that a virtual machine understands. This is interesting because it already supports (albeit incompletely) more languages than .Net and is a whole hell of a lot newer. I think Parrot is going to get the attention of a great chunk of languages haven't really considered using a VM before. We could see the age of 3 common bytecodes in practice. Java VM (whatever it's called), .Net, and Parrot. Maybe one day instead of seeing "Ruby 1.8 or greater required" we'll see "Parrot X.X or greater required". It'd be nice if we actually saw the day of the Parrot VM browser plugin or (pipedream) Windows coming with the parrot VM.
      • his is interesting because it already supports (albeit incompletely) more languages than .Net

        Does it? I'd like a reference on that. That would be interesting, since .Net supports a boatload of languages including python, perl, cobol and two kinds of pascal.
      • by Jaykul ( 597144 ) on Tuesday December 20, 2005 @10:41AM (#14298781) Homepage
        This is interesting because it already supports (albeit incompletely) more languages than .Net and is a whole hell of a lot newer

        I'm all for another multi-language VM, especially if it's built from the ground up for dynamic typing, but you're joking about the languages, right?

        I count 33 Parrot Languages [parrotcode.org] (including duplicates) but only 15 that have ANY tests [parrotcode.org] (even ones that fail).

        Of all the lists [66.102.7.104] that I checked [startvbdotnet.com], the only one [dotnetlanguages.net] that short [gotdotnet.com] was the one for the Mono Project [mono-project.com] (and they list 13)...

        I mean, it's certainly fair to claim that Parrot is newer, if by newer you mean "still not done" (at the current rate, we might see .NET 3 before Parrot 1.0), or "released a beta most recently" (0.4 came out JUST after .NET 2 went gold). But to say it has more languages is just ignorant.

      • This is interesting because it already supports (albeit incompletely) more languages than .Net

        All good points. Unfortunately I don't think supporting a bunch of languages will cut it (even if all the languages are well supported and not just shoddy one-shot incomplete implementations). I think the main thing that sets .net apart is not so much language support, but the rich software library which is conveniently accessable from *any* of those languages.

        First and foremost you need a *good* GUI package,

        • I think the main thing that sets .net apart is not so much language support, but the rich software library which is conveniently accessable from *any* of those languages.

          You do realize that the goal of Parrot is to allow exactly that, right? So a Python programmer could, conceivable, leverage modules from C6PAN, or vice versa. But, like .NET, whether this will work in practice remains to be seen.
          • I don't think the CPAN approach quite gets it. It's great there's a dumping ground for code out there, but anything you're very likely to want should be in a more integrated, well-defined construct so you don't have to go hunting around or fighting version incompatibilites just to run some little script. The language either needs to come with a big monolithic CLASSPATH-type thing, or dynamically and automatically fetch its own dependencies from the network.
    • Here's something I've been wondering about Parrot for a while. How will extensions work? How can I extend Parrot-based languages with C, either to optimize an algorithm, or to wrap a C library?

      In my opinion, Parrot needs to get this right to be useful.
  • So what's he doing after O'Reilly?

    I figured he was there for life, especially now that the dotcom bust seems to be un-busting again.

    D
  • by AltGrendel ( 175092 ) <ag-slashdot&exit0,us> on Tuesday December 20, 2005 @08:57AM (#14298101) Homepage
    We're not interested in telling people what they can't do.

    I like that.

    • by code65536 ( 302481 ) on Tuesday December 20, 2005 @09:34AM (#14298314) Homepage Journal
      Me too. :) And expanding that wonderful philosophy to the language itself, that is exactly why I don't like Python--I like the freedom of Perl (even if it results in syntactical messiness... but that freedom of expression leads to some of the most elegant code in the world, in a non-syntactical sense). I don't want some paternalistic syntax dictating how I should best express using the langauge.
      • Having a language that allows you to freely express whatever you are thinking in whatever form occurs to you at the time is, of course, great for rapid development of scripts. It is also a nightmare when it comes robustness and maintainability of code - it encourages cute tricks, neat hacks, and idiosyncratic expressions that leave the maintenance coder baffled and the person ding debugging wondering about what bizarre side-effects this particular way of expressing this idea might have.

        I love Perl, and for
      • by asdfghjklqwertyuiop ( 649296 ) on Tuesday December 20, 2005 @10:52AM (#14298864)

          Me too. :) And expanding that wonderful philosophy to the language itself, that is exactly why I don't like Python--I like the freedom of Perl (even if it results in syntactical messiness... but that freedom of expression leads to some of the most elegant code in the world, in a non-syntactical sense). I don't want some paternalistic syntax dictating how I should best express using the langauge.


        The freedom of the language has nothing to do with its syntactic cleanliness. I don't know what makes you say Python dictates how you express yourself. If you had said Java instead I might agree more. Python is very clean and simple, but dictates very little at a higher level.

        • Excuse me... have I stumbled into the wrong conference room^H^H^H^H^H...programming language? You are talking about Python, right - the language that *begins* by forcing a style of indentation....? No?

          Ok, maybe it's your assertion:

          > The freedom of the language has nothing to do with its syntactic cleanliness.

          That's off. On the contrary, having a flexible grammar allows you to do, well, flexible things. I for instance was able to throw together my own data modelling syntax using Perl's function prototypes
          • Excuse me... have I stumbled into the wrong conference room^H^H^H^H^H...programming language? You are talking about Python, right - the language that *begins* by forcing a style of indentation....? No?

            I knew somebody would start bitching about the indentation. The indentation is just Python's syntax for denoting block structure. It doesn't remove any power from the programmer, it is just a different syntax. Does Perl (5, anyway) grant the freedom to denote blocks with indents instead of curly braces? No? S

    • by hackstraw ( 262471 ) * on Tuesday December 20, 2005 @11:04AM (#14298966)
      We're not interested in telling people what they can't do.

      And on the same vein, "There is more than one way to do it".

      I love Perl.

      Is it pretty? Not really.

      Does it do OO? Pretty much, but its not pretty.

      Can it go from a one liner to a pretty large app? Yup.

      Is it portable and extensible. Hell yeah.

      Is it fast? Fast enough. -- I remember on older machines you would run a perl script, and you could "feel" it compile itself by a slight lag before input or output, but I only notice a lag on machines that have not used that perl app yet (not cached) and uses tons of modules or whatever that need to be found on the disk. Once the program has been run, it starts as fast as any other. The runtime speed is anywhere between much slower to 4x slower than C or C++, but being that it usually takes 10x time to write C or C++ that Perl can do better, I'll go by the maxim of optimize later if needed.

      I've not looked into Perl 6. 5 is fine with me. 6 embeds 5, so there is supposed to be no or very little backwards compatibility issues. 4 was not that good compared to 5, and the compatibility was not as good. Yuck, those people who still do &subroutine(); Thankfully, I don't see module'subroutine() syntax any more if it is still even supported (I think I remember the syntax correctly).

      Perl is very powerful. Not the right tool for every job, but many of them. For most everything you want to do, there is a module that can be easily and portably installed (or 2 or 3) that can reduce the "reinventing the wheel" issue. The CPAN module and module dependancy can not be as fun as apt-get install CGI.pm, but perl is excellent and I hope it does not become an "old school" language. Its simply too easy to start to use, and go from there.

  • by Anonymous Coward on Tuesday December 20, 2005 @09:04AM (#14298133)
    I'm not going to debate the fact that Perl is an immensely powerful language. It can do an amazing amount of stuff...but I'm worried about giving the programmer control over the actual grammar of the language itself. It seems that that will cause some of the same issues that C macros can cause (which is why Java doesn't include them), in terms of making the code just next to impossible to follow. Perl is hard enough to maintain with how obfuscated it can get. I'm not sure this is going to help.
  • by digitaldc ( 879047 ) * on Tuesday December 20, 2005 @09:04AM (#14298134)
    O'Reilly had run into really tough times because of the plunge in book sales, which was already starting before 9/11 but very much accelerated at that point.

    I remember on 9/11 thinking: That's it, I will never buy any more books! The terrorists have won.
    • by skribble ( 98873 ) on Tuesday December 20, 2005 @10:35AM (#14298745) Homepage

      Well actually that's apparently exactly what happened. Maybe not just to computer books, it could have been more of a global . o 0 { I'm not buying anything except bottled water, canned food and shotgun shells } but it certainly had a hugh effect on computer book sales. Part of this was happening anyway, it -seemed- when the burst of the .com bubble stifled innovation and there just wasn't anything that new that people needed a book to learn. While that was true to a point what really was going on was that people needed to learn different things and no publisher was providing it (and largely still don't today). In overly simplistic terms, the bulk market shifted from how do I use my computer to how do I accomplish "x" with my computer. It's also important to realize that the "x" changed too. Most publishers on a whole still don't get this (some do, but the industry on a whole is very reactive so change is slow). O'Reilly has been burned by this just like everyone else. While there is still a good market for well written programming books which has traditionally been O'Reilly's market (and has saved it many times since it traditionally avoided the fickleness of end user consumers) even that is changing. Right now to try to save themselves most Publishers are just attempting to do the same thing by making superficial changes in how books look and selling this facelift as the next big thing ("Head First Java" anyone?) The problem is these books still teach the same old topics which have diminishing interest. It's not the approach... Heck.. IMO "The C Programming language" by K.&R. is still the best computer book out there and much of that has to do with the simple presentation of the material without all the pretense and gimmicks of today. The problem isn't the approach, it's the topic.

      But a babble off on some rant... the fact remains 9/11 hurt the book industry along with everyone else, the computer book industry took an extra hit because when people started to buy stuff again they realized that none of the computer books on the shelves dealt with the topics they wanted to learn.

      • Right now to try to save themselves most Publishers are just attempting to do the same thing by making superficial changes in how books look and selling this facelift as the next big thing ("Head First Java" anyone?).

        I've been buying, reading, using O'Reilly Books for almost 10 years now. If I need to buy 'blind', I buy O'Reilly and only have been disappointed once (their MySQL/mSQL DG sucks). I was disappointed when I saw them leaving the Animal Rule with the Head First series.

        Then I looked into "Head Firs
  • by Dystopian Rebel ( 714995 ) on Tuesday December 20, 2005 @09:15AM (#14298188) Journal
    This lets different kinds of grammatical mutability sneak into the language, and lets people experiment with different syntaxes and different ways of attaching those syntaxes to new kinds of semantics.


    Translation: "Perl 6 code will be the most unreadable Perl ever."

    • Perl: Innovating new ways to be obfuscated since 1987.
    • by code65536 ( 302481 ) on Tuesday December 20, 2005 @09:43AM (#14298371) Homepage Journal
      Ahem! There is a difference between syntactical messiness and semantic messiness. Perl is very ugly syntactically, but I've found it so very beautiful semantically, and its fluidity is exactly what makes Perl so perfect: it allows the fusion of functional (e.g., Lisp-like), imperative (e.g., C-like), and OO paradigms of programming. While many languages fuse the latter two (like C++), few are able to successfully fuse in the first (with things like functions being first-class expressions and something similar to an equivalence of statements and expressions) (and no, just because Python has "lambda" doesn't make it more Lisp-like in the broad picture--in fact, they are even thinking about retreating from that--grrr).

      If someone feels that using the full scope of Perl results in messiness, they aren't forced by any means to use that full scope. There are many Perl coders who limit themselves to the "C subset" of Perl. But unlike certain other unnamed languages, Perl doesn't try to play the role of parent in telling you what you can and can't express so those who are more comfortable with a wider breadth of linguistic forms can take advantage of that and make code that is, in a word, elegant.

      As for the syntactical ugliness (the $, @, %, etc.) that most people are referring to when they say that Perl is ugly... well, you learn to live with that pretty early on. But beneath that superficial ugliness lies a sparkling beautiful language.
      • But beneath that superficial ugliness lies a sparkling beautiful language.

        So you are telling me that once I kiss the frog it will turn into a beautiful prince? Forget it! I think you are just trying to trick me... ;-)
      • I confess that I am a Perl user and (horror!) I like Perl...

        Perl is very ugly syntactically, but I've found it so very beautiful semantically


        but your rapture exceeds mine... Are you a linguist? ;^)

      • > If someone feels that using the full scope of Perl results in messiness, they aren't forced by any means to use that full scope. There are
        > many Perl coders who limit themselves to the "C subset" of Perl. But unlike certain other unnamed languages, Perl doesn't try to
        > play the role of parent in telling you what you can and can't express so those who are more comfortable with a wider breadth of
        > linguistic forms can take advantage of that and make code that is, in a word, elegant.

        Hmmm, I find
    • Yeah, I read that same line and thought the same thing. Great! Now you can make Perl look like Java, or C# or ... assembler! I'd say you could make it look Klingon but it already does if you include much regex.

      I love perl and I love perl modules, but debugging code written using perl modules makes me want to tear out my already thinning hair. I was going to write a "quick and dirty" script using the libwwwperl module but ended up going with some cURL calls in a shell instead. It was easier to see what the p
    • While you read as:
        Translation: "Perl 6 code will be the most unreadable Perl ever."

      This may be explained by the author who called Larry Wall an eccentric linguist .

      Maybe the syntax is really just part of an elaborate hoax Larry is playing on us, like an open source reality show.
  • Cover Quote (Score:5, Funny)

    by holdp ( 24965 ) on Tuesday December 20, 2005 @09:23AM (#14298224)
    The dead tree version had on the cover a very Larryish
    quote - (roughly) We have 80% of Perl6 done and we are now working on the next 80%.
  • it's the community (Score:5, Informative)

    by SmallOak ( 869450 ) on Tuesday December 20, 2005 @09:54AM (#14298426)

    I think one of the strength of Perl is a very active community and, dare I say it, they are nice bunch of people.

    I have been to two Perl YAPC and found the people very helpful and very welcoming to people with limited programming background like myself.

    The other big strength of Perl is CPAN, it's like a huge store for free. I used the CPAN shell a lot at one point and I was very pleased in the way it resolved dependencies. IN general I found the documentation for the CPAN Libraries I was using very good. Your mileage may vary. Sitll I found that creating your own Classes is a bit more work than in some other languages.

    I worked on a big project that was pretty much all in Perl. How did they do it? Good old fashion project discipline. They set coding style rules (programming and indentation), Perl's Perldoc for documenting, good versioning, and object naming conventions.

    • SmallOak, hello...

      Was one of them YAPC::NA 2005 in Toronto? I was the organizer, so if so I just wanted to say hi and thanks for coming. :-) It was the greatest pleasure being able to give people a fun conference to be at. Even if not, I know what you mean -- being a long-time YAPC conference goer was what made me want to be a conference organizer. It's a wonderful community with lots of accepting, helpful and nice people at all levels.

      Cheers,
      Richard

    • It's funny... people seem to get so caught up in the fact that if you're a bad programmer you'll do *really* bad in Perl... and they miss all of the things that Perl and its community have contributed to make life better.

      Just look at how many comprehensive and powerful testing modules are available, for example, and how many quality module distributions make extensive use for them.

      If someone reading this thinks it's impossible to write maintainable Perl code, I ask you to look at CPAN which is simply by far
  • Larry Wall is eccentric?

    Then I must be loony as a kookaburra.
    • Yup! you should see the shirts he is wearing for his photographs in the print edition, plus his moustache, woof! woof!

      There's photos of his family too they're all ..er..eccentric.
  • by Billosaur ( 927319 ) * <wgrother@optonline. n e t> on Tuesday December 20, 2005 @10:00AM (#14298474) Journal

    Larry Wall has announced plans to hardwire Perl 6 into his brain to make it easier for him to do updates in the shower.

  • Better critics (Score:3, Interesting)

    by VincenzoRomano ( 881055 ) on Tuesday December 20, 2005 @10:27AM (#14298668) Homepage Journal
    It would be much better for the communities to have Larry talk about PHP [wikipedia.org] and maybe Rasmus [wikipedia.org] provide his thoughts about Perl [wikipedia.org].
    At least we'd get an interesting cross-flame session!
  • Who's using Perl 6 for a serious project? And what is the project? More than a 1000 self-written lines, no comments (as if you r would...) or white space (ditto)?
  • by FellowConspirator ( 882908 ) on Tuesday December 20, 2005 @10:47AM (#14298834)
    OK, I'm a computational biologist by profession, so it goes without saying that I use gobs of Perl. I also use gobs of PHP, Java, R, Python, and to a lesser extent C++ and C.

    I end up using all of those languages of course, because all of them have their strengths and weaknesses. Perl is not the best performer, but much of my work is working ad hoc problems and Perl is very simple and concise for many common problems. It also is a great alternative to shell programming. I love it for those things.

    However, I hate writing web-based stuff in Perl because the ease of use and clarity (basically speed of me getting somethign done tempered by the chance that I can figure out what I did later when I need to) are not as high as, say, when using PHP. It pains me to see awfully written Perl code when thigns could more clearly and easily be solved using something else -- in which case I hate it. I frequently get legacy stuff that is over engineered or fanatastically complicated because someone didn't recognize or didn't know how to use something that would have been simpler; doubly an issue since this also tends to produce more opportunities for bugs.

    I could go on, but I've been doing this for some time now and have a very good feel for which language is the best tool for a specific aspect of my job and I use that (because the language used to implement a solution is NEVER a concern for those whom I'm providing solutions to).

    I'm really interested in Perl6 -- the new VM (looks like .Net has some serious competition) and the greatly improved performance, but more importantly the language features allow grammars and rules for natural language processing in a very clean and efficient style. I've a number of projects analyzing literature where this would be a boon and there's nothing comparable in other general purpose languages...
  • Does anyone know if programming actually started in 2000 for this? It seems like Perl 6 has been in development for forever.
    • That's right, it has taken a long time. But that's because its primarily driven by volunteers (with some funded development via perlfoundation.org).

      Keep in mind that it was over 6 years between the Netscape code fork and Firefox 1.0, and they had all of the Netscape coders being paid to work on Mozilla during most of that time.

        -- Chris
  • "We're not terribly interested in telling people what they can't do."

"To take a significant step forward, you must make a series of finite improvements." -- Donald J. Atwood, General Motors

Working...