Slashdot Mirror


Happy Birthday Perl!

Puppet Master writes: "Just remembered that Perl was created on this day (12/18) in 1987 by Larry Wall..." Check out the Time Line and the discussion on use.perl.org and I'll take this chance as a reminder to donate to the Damian Conway/Dan Sugalski slavery fund.

26 of 168 comments (clear)

  1. In the words of Larry by Erasei · · Score: 3, Funny

    Let's just call it an accidental feature. --Larry Wall


    My motto in life, well, at least my programming :)

    --
    visit my free wallpaper collection, wp.erasei.com
  2. For everyone who wants to learn perl too.. by linuxrunner · · Score: 5, Informative

    I don't normally plug things but, this is free, and it seems appropriate:

    Currently Barnes and Nobles and their partnership is currently offering FREE Learn Perl courses online....

    They try and sucker you in to buy the book, but it is not necessary for those who don't want to, but again, it is a very good book, therefor I would recommend it.

    So if you ever wanted to know what we were all talking about when we say "PERL", now's your chance...

    --
    www.slightlycrewed.com - Because aren't we all?
  3. Re:This post... by Frothy+Walrus · · Score: 5, Funny

    what part of

    $_='while(read+STDIN,$_,2048){$a=29;$b=73;$c=142 ;$ t=255;@t=map{$_%16or$t^=$c^=(
    $m=(11,10,116,100,11,122,20,100)[$_/16%8])&110 ;$t^=(72,@z=(64,72,$a^=12*($_%16
    -2?0:$m&17)),$b^=$_%64?12:0,@z)[$_%8]}(16..271 );if((@a=unx"C*",$_)[20]&48){$h
    =5;$_=unxb24,join"",@b=map{xB8,unxb8,chr($_^$a[- -$ h+84])}@ARGV;s/...$/1$&/;$
    d=unxV,xb25,$_;$e=256|(ord$b[4])<<9|ord$b[3] ;$d=$d>>8^($f=$t&($d>>12^$d>&gt ;4^
    $d^$d/8))<<17,$e=$e>>8^($t&($g=($q =$e>>14&7^$e)^$q*8^$q<<6))<< 9,$_=$t[$_]^
    (($h>>=8)+=$f+(~$g&$t))for@a[128..$#a]}p rint+x"C*",@a}';s/x/pack+/g;eval

    don't you understand??

  4. It's about that time... by MicroBerto · · Score: 5, Funny
    Ahhh, 14 years old. Perl is now going to become (even more) rebellious, may stop talking to its parents, and will insist on being called a man, or more mature.

    Don't be surprised if you begin seeing Perl tend to lean towards more pornography and opposite-sex modules. Excitement will soon begin for the car and driving modules as well!

    Larry, although Perl doesn't want to talk with you as much during these rebellious years, please make sure that it takes care of itself during its bodily changes, including washing its face, as acne outbreaks are rampant during these years and can ruin its complexion forever.

    --
    Berto
  5. 14 years of Perl by Krapangor · · Score: 4, Funny
    have taught us one thing:

    You don't have to use C to confuse people.

    --
    Owner of a Mensa membership card.
  6. Laziness, Impatience, and Hubris by kryzx · · Score: 5, Interesting
    Here are a bunch of interesting conversations with Larry Wall:
    http://paulagordon.com/shows/wall/

    Also, this would be a good time to remember the principles of good programming:
    • LAZINESS: The quality that makes you go to great effort to reduce overall energy expenditure. It makes you write labor-saving programs that other people will find useful, and document what you wrote so you don't have to answer so many questions about it. Hence, the first great virtue of a programmer.
    • IMPATIENCE: The anger you feel when the computer is being lazy. This makes you write programs that don't just react to your needs, but actually anticipate them. Or at least that pretend to. Hence, the second great virtue of a programmer.
    • HUBRIS: Excessive pride, the sort of thing Zeus zaps you for. Also the quality that makes you write (and maintain) programs that other people won't want to say bad things about. Hence, the third great virtue of a programmer.
    --
    "I don't know half of you half as well as I should like, and I like less than half of you half as well as you deserve."
    1. Re:Laziness, Impatience, and Hubris by Hard_Code · · Score: 3, Funny
      LAZINESS: The quality that makes you go to great effort to reduce overall energy expenditure. It makes you write labor-saving programs that other people will find useful, and document what you wrote so you don't have to answer so many questions about it. Hence, the first great virtue of a programmer.

      LAZINESS: The quality that make you go to great effort to reduce *immediate* energy expenditure, and little effort to reduce *future* energy expenditure (after all, it takes energy to reduce energy expenditure). It makes you write slap-shod quick and dirty programs that others may or may not find useful and will be SOL if they have a problem because you were too lazy to write documentation for it.
      IMPATIENCE: The anger you feel when the computer is being lazy. This makes you write programs that don't just react to your needs, but actually anticipate them. Or at least that pretend to. Hence, the second great virtue of a programmer.

      IMPATIENCE: The anger you feel when a correct program is not working fast enough for you. This makes you write programs that don't necessarily react correctly to your needs, but react *faster*.
      HUBRIS: Excessive pride, the sort of thing Zeus zaps you for. Also the quality that makes you write (and maintain) programs that other people won't want to say bad things about. Hence, the third great virtue of a programmer.

      HUBRIS: Excessive pride, the sort of thing Zeus zaps you for. Also the quality that makes you introduce that "harmless" bug fix or feature into production at 4:59 PM on a Friday.
      --

      It's 10 PM. Do you know if you're un-American?
    2. Re:Laziness, Impatience, and Hubris by dangermouse · · Score: 4, Insightful

      That's False Laziness. A real lazy programmer documents his code thoroughly, so that he doesn't have to put any effort later into understanding or explaining it.

  7. I would like to say Happy Birthday by Pinball+Wizard · · Score: 4, Interesting
    to the fastest and most complete cross-platform language that I know of. Yes, this includes C# and Java.


    Seriously - what else can do system admin scripting(on many different systems), database programming, web programming, network programming, and do it all on just about any platform, not to mention virtually everything C, awk, sed and shell scripting can do.


    Nothing, that I know of.

    --

    No, Thursday's out. How about never - is never good for you?

    1. Re:I would like to say Happy Birthday by smallpaul · · Score: 3, Insightful
      Seriously - what else can do system admin scripting(on many different systems), database programming, web programming, network programming, and do it all on just about any platform, not to mention virtually everything C, awk, sed and shell scripting can do.

      Python, Tcl, Ruby, Scheme, ...

  8. Perl, Perl, the musical fruit by Dancin_Santa · · Score: 4, Interesting

    Perl is really the reason I stay with programming. Trained in Cobol, Pascal, C, and C++, I thought that coding was an adventure like delving into the depths of Mayan pyramids - difficult and yet rewarding. There's only so much grinding one can take, though, and I was at the point of giving it all up to focus all my time on engineering new toys for all the boys and girls.

    Then I found Perl. Built-in data structures, a text-parsing mechanism that's second to none, and a community that's more interesting than a barrel of camels. Programming in Perl is like painting, it's fun, engaging, and every bit of creativity that rolls from the tips of your fingers is reflected in the code.

    Besides, I've had the opportunity to have lunch with Randal, and he was much more interesting than Bjarne (who couldn't be bothered, but I'm sure is a nice guy).

    No coal for you this year, Larry.

    Dancin Santa

  9. Why perl is the holy Grail by TeleoMan · · Score: 4, Insightful

    Because it has all the great functional features that can make Lisp programmers happy.
    Because it has a wonderful OO model which can make all OO programmers happy.
    Because it has super fast compilers that can make C and C++ programmers happy.
    Because it is great for imperative programming and for functional programming.
    Because it is great for procedural programming and for OO programming.
    Because it is as multiplatform and portable as Java.
    Because it is designed to please everyone without compromising on anything, and, put more simply, because it can reconciliate the C, Java, Lisp and C++ community.
    Because it can even be used indifferently as a scripting or a system language.
    Because it is great for teaching AND for the real world.
    Because its compilers are libre software and its design and developement are made in a very open fashion.

    --
    "buckle your seatbelt, dorothy - kansas is going bye-bye."

    --
    $6.21 is the number of the beast before sales tax. Meh.
    1. Re:Why perl is the holy Grail by jtdubs · · Score: 5, Informative

      > Because it has all the great functional features that can make Lisp programmers happy.

      Yeah. Of course it does. It support first-class functions perfectly, and of course, can handle lambda abstractions and currying without breaking a sweat. It can also do perfect continuations. It prefers recursion to looping and eschews side-effects too. Well, actually, perl 6 does do currying and first-class functions.

      > Because it has a wonderful OO model which can make all OO programmers happy.

      Yes, naturally. It's obvious perl was designed from the ground up to be the holy grail of OO programming. But seriously, it does have increasingly good OO support. OO in Perl 6 is nice. It's not the best OO language around, though. It's not even in the top 10. Well, maybe top 10. There aren't many OO languages that don't suck.

      > Because it has super fast compilers that can make C and C++ programmers happy.

      I mean, yeah, it's not slow. It doesn't have the god-awful long start-up time of Python. It's not C. It's not C++. It's not assembler. It is fast for a language of it's kind.

      > Because it is great for imperative programming and for functional programming.

      Imperative programming, fine. Functional programming, I think not. Not being lambda-calculus based, Perl may have a rough time with that whole mathematical provability of correctness thingy. It also doesn't do list comprehension for shit. Hell, who needs that stuff anyway. :-)

      > Because it is great for procedural programming and for OO programming.

      Procedural, fine. OO, see above.

      > Because it is as multiplatform and portable as Java.

      Multiplatform, check. Portable as java... are we counting GUI's? If not, check.

      > Because it is designed to please everyone
      > without compromising on anything, and, put more
      > simply, because it can reconciliate the C, Java,
      > Lisp and C++ community.

      You CAN'T please everyone without compromising on anything. Plus, nothing will ever reconsile the Lisp community with anyone... :-)

      > Because it can even be used indifferently as a scripting or a system language.

      Ok.

      > Because it is great for teaching AND for the real world.

      Real world... yes... for smallish programs. You don't see many enterprise-class million-line-long programs written in Perl.

      Teaching... good god i hope not. If you ever get my kids started with a language as cryptic as perl with it's magic variables that it uses without asking you and it's $var syntax I'll shoot someone. You may want to check out Python though. Imagine Perl without nearly as much support or maturity, but with beautiful syntax and good OO, and it's improving real quick.

      > Because its compilers are libre software and its
      > design and developement are made in a very open
      > fashion.

      Ok.
      Anyway, I like Perl. It's a wonderful language for some things. I mean, it IS the glue of the internet. But it is NOT the holy grail of programming. It does not satisfy everyone, it can not do everything. It is a good language though.

      Justin Dubs

    2. Re:Why perl is the holy Grail by Ian+Bicking · · Score: 3, Informative
      You may want to check out Python though. Imagine Perl without nearly as much support or maturity, but with beautiful syntax and good OO, and it's improving real quick.
      Why would you say Python isn't mature? Some of the libraries are still in the process of maturing -- XML libraries and such, mostly because their domain isn't generally understood yet anyway. But the basic language seems extremely mature to me, and recent improvements (which have actually been quite radical) don't effect normal programs written in Python -- they only occasionally effect programs that are more advanced/introspective, and allow new uses and optimizations.

      This is nothing compared to what's being proposed for Perl 6. Python has been changing very incrementally (and we still have more than enough punctuation left... though I don't think anyone has proposed using any of it). In many ways it seems like it's moving to where Ruby is, but in a very different way -- Python has been practical for a long time, and is getting more and more pure as time goes on. Ruby started very pure, and is now getting to be more practical. I don't think pure and practical are in conflict, but you can only work on so much at a time, and the two languages have paced themselves differently.

      As far as support, yes, the Python community is smaller. On the internet I don't think this makes a difference -- both communities are large enough that you can't be a part of them in their entirety. There are more Perl modules than Python, but for the most part there's a sufficient number of Python modules. Though in the real world -- where geography matters -- Perl is significantly better supported. You can find a Perl hacker and hire him or her fairly easily in comparison to a Python hacker.

  10. Ummm .. hold on here ... by TheViffer · · Score: 4, Informative
    Dec 18 .... Dont you mean October 18!!!

    Come on guys ... lets check these facts before posting them!!

    --
    -- Knowing too much can get you killed, but knowing who knows too much can make you rich.
    1. Re:Ummm .. hold on here ... by tycage · · Score: 5, Informative

      The Perl Timeline says December 18th.

  11. What about the foot test? by Anonymous Coward · · Score: 3, Funny

    Personally I like Perl because I can shoot myself in the foot faster and with less effort with it.
    :-)

    "Science, like Nature, must also be tamed, with a view turned towards its preservation." - Carl Sagan

  12. Don't judge Perl based on the article by TeleoMan · · Score: 4, Offtopic

    Look, a lot of you people come from what I call the Computer Science Student mentality. This unfortunately something I've noticed as a side effect of the way computer science is taught in most schools. It's quite unfortunate, because that clearly isn't the aim of the Professor's when they are teaching classes this way.

    I'll use my school as an example. When I started at the University of Dayton, about 7 years ago, every class was taught in ADA. It was a horrible horrible expierence. The ADA compilers were horribly lacking at the time, and anybody who has done any work in ADA will know that it is an extremely strict and picky language. That has it's good and bad sides when it comes to teaching programming, but I'll save that for a different discussion. I had no problems, since, well, I had a good solid 4 years for Pascal and C/C++ programming experience before I even started college, but this seriously affected the other students in my class.

    The problem was, about two years into the program, my school decided (thank god) to switch the department over to C++. This was a great move, because now the students were being taught a language that they could actually apply in the real world (beyond the confines of the Wright Patterson Air Force base anyway). It worked out quite well for the newer students, but my classmates were blindsided. Most of them suffered through half a semester of C (the other half of the semester was 360 assembler) and never even touched upon C++. They should have just been able to pick up a C++ book, apply the concepts they learned from their ADA classes and the syntax from the C++ book and their C course and move on, but most of them had a hard time doing it.

    Why was that? They all knew the concepts. They all knew how to write their algorithms, and their trees, and their stacks and queues. Yeah, they weren't taught how to write real software, but they clearly knew the basics. I spent more time helping others learn these concepts than I did doing my own homework the first two years, so I know what they were capable of from first hand experience.

    The problem was entirely in their minds. C++ is a huge ugly beast, and it is a bit imposing when you first start. But if you've got two solid years of programming behind you, it should be a relatively smooth and easy transition. Most of them didn't realize this though. They were scared of C++, they were scared of new languages, and they suffered as a result.

    The simple fact of the matter is, if you know one language, you know them all. It's not the syntax that makes the difference, it's the concepts that you express within the framework of the language's syntax that are the real guts of programming. My classmates took awhile to realize this (and I'm sure many of them still don't). That's the same thing with Ruby, or Python, or Perl, or just about any language. Unless you are making the jump from procedural to OOP, or OOP to Functional for the first time, you *CAN* pick up a book and learn a new language in a days time. The only thing stopping you is yourself.

    Now, the other part of this is, why would you do that? I love learning new languages, and I love learning new languages for a few reasons. These reasons apply to every programmer, and I honestly don't understand why some people are so opposed to learning something new. I guess that's what seperates a good programmer from a bad programmer. So if you want to know why you should learn Perl, or LISP, or Haskell, or even Visual Basic, I'll tell you why.

    1. It helps keep your skills in tip top shape. Perusing a computer manual may remind you of algorithms or techniques you haven't used in a long time and forgotten.

    2. You always seem to learn something new. Not some new technical trick that only works in one lanuage (although that definitely happens), but just a different way of approaching problems that sometimes can transcend language boundaries.

    3. You may find a new language that allows you to get the job done faster!

    4. You're enhanced knowlege of languages looks great on your resume no matter what you use as your primary language.

    5. You learn the way other people think. And I don't want to gloss over this one. As a programmer, you frequently have to work with other programmers. Learning new languages is a *GREAT* way to see how other people do things. To learn the way other people think, so to speak. By learning Perl and Smalltalk, you start to learn why people in those communities are so die hard about OOP programming styles. By learning LISP or Haskell you start to learn why Functional styles even exist! And it all comes back full circle. Techniques I learned from Haskell I now use when writing C++ programs and vice versa. It only made my C++ code better.

    Knowlege is power, and learning new languages is one (of many) ways of increasing your knowlege. Go ahead and try it, even if you think you won't use the language, and even if you're just starting out and don't think the transition from your learning language to a new one will be easy. You just might be surprised by how much you already know, and how much you have yet to learn. That's the real benefit of it.

    It's overkill, of course. But you can never have too much overkill." - Anonymous Slashdot Coward

    --
    $6.21 is the number of the beast before sales tax. Meh.
    1. Re:Don't judge Perl based on the article by wackybrit · · Score: 3, Interesting

      You're right. There's a lot of unnecessary elitism in programming (just like in anything else.. choosing an OS, video card, etc) which gets in the way of the task at hand. I admit it, I've done it myself.

      Perl is often put down for no reason, although a specifically Win32 based programming language that also gets a lot of unnecessary ribbing is Delphi. Visual C++ diehards don't really care about the fact Delphi's compiler is faster or that you can do practically everything quicker in Delphi, but they blast it anyway.

      While Visual C++, Perl, VB, ADA, Delphi, x86 are all good languages, it'd indeed be a dull world if you only stuck to one of them without learning others.

      I just can't wait for the day that you can inline other languages easily, just like you can do with x86 into many current languages.

      Imagine writing away in C++ and suddenly dropping in:

      inline perl {
      $_ = $argv['myvariable'];
      s/etcetc/etcetc/g;
      }

      That would rule! (Especially since languages such as C and Pascal are awful at the things Perl is good at.)

    2. Re:Don't judge Perl based on the article by Ambassador+Kosh · · Score: 3, Informative

      I have to disagree with you to a certain extent I have seen a fair number of people that knew C, C++. perl, python, java etc and the one thing they had in common is that they wrote C in every language.

      The point is that learning the syntax of a language is very different from understanding the real powers, drawbacks etc of a language. For example in python I find multiple inheritance, introspection, object capabilities to be very useful features.
      However with my experience in C++ if I had to do something in C++ I would do it it a different way this C++ has a different language philosohpy and design.

      Overall knowing the syntax of many languages is okay but I think for real understanding you should master 1 or a few languages. From personal experience I have noticed that a master at a language can run circles around those that learned it in a few days and also build very elegant solutions someone with less experience could not easily do. Many times the differences in productivity are drastic. Not 10% to 20% but more like an order ot two of magnitude difference.

      --
      Computer modeling for biotech drug manufacturing is HARD! :)
    3. Re:Don't judge Perl based on the article by stripes · · Score: 3, Interesting
      Unless you are making the jump from procedural to OOP, or OOP to Functional for the first time, you *CAN* pick up a book and learn a new language in a days time

      I agree with the thrust of your argument, but there are a lot more then the 2 exceptions you listed above that can seriously lengthen the learning gap, and many are losses of language/lib features.

      Going from explicit to implicit memory management will generally not be too hard, but going from only languages that GC (or reference count) for you to ones that don't is a big jump. Going from things with random access pointers (C, and assembly) to things that don't (Java, Pascal...) will also be a bit of a hinderance. Losing floating point can be a shock (most languages to FORTH). Oh, going to a stack language can be a shock (PostScript and FORTH). So can going from strongly typed languages (Java/ADA) to weakly typed ones (C) can be a shock as well, but so can going to untyped languages (FORTH), and this shock works both ways. Oh, and losing exception handling (APL/C++/ Modula-3 to C) can be a shock as well.

      There are dozens more that can throw one for a loop (Hmmm, explicit flow control, vs. data flow languages anyone?). Not every languages has them (some have many), and once you start learning lots of languages chances increase that the new language won't have any new concepts, but just a new (and hopefully more useful) combination of them.

      Oh, and learning some of the finer points of languages can take some time ("resource acquisition is object creation" for example), I used C++ for five years before I stumbled across that one (to be honest, I think I used C++ for two years before one could fully apply that one).

  13. Re:wow! by plover · · Score: 5, Funny
    And on the second day, Larry rested.

    (It didn't start out big enough to take seven days!)

    John

    --
    John
  14. Let's get that fund growing! by Marx_Mrvelous · · Score: 4, Insightful

    I don't know abouy you guys, but Perl has become a huge part of my livelyhood. Let's try to all donate at least $5, we've got enough slashdotters that we could really make a huge difference.

    I may be a poor college student, but without Perl, I wouldn't be able to be here at all!

    --

    Moderation: Put your hand inside the puppet head!
  15. Perl Poetry by Misch · · Score: 3, Funny

    "O, Perl is a language,

    As muddy as muddy can be.

    First it gave me headaches,

    and now it's killing me!"

    In all reality though, I like Perl. It's dirty, it's cheap, it works, it makes my web pages a bit easier to work with.

    --

    --You will rephrase your request for me to go to hell. Goto statements are not acceptable programming constructs
  16. Ok .. its Dec 18 ... by TheViffer · · Score: 4, Informative
    after spending a little time with google newsgroups I was able to find this post from the camels mouth



    Larry Wall stating where to get perl and when it was put there

    --
    -- Knowing too much can get you killed, but knowing who knows too much can make you rich.
  17. Timeline discrepency, Yes to Dec 18th by Dave21212 · · Score: 4, Interesting
    Another poster pointed out that there are two birthdates published in different areas of the perl.org website. This interesting entry from the recent timeline should clear things up... of course the significance of "publicly released" as it relates to "birthday" is up to the reader ;)

    The Oxford English Dictionary investigates the origin of the word "Perl" while considering it for an entry in the next edition. Perl will be included and the entry will resemble the entry below.

    Perl Brit.
    Perl, perl, irreg. PERL
    Computing.
    perl n. ,
    arbitrarily chosen for its positive connotations, with omission of -a- to differentiate it from an existing programming language called Pearl. Coined by Larry Wall in the summer of 1987; the program was publicly released on 18 December of that year. Acronymic expansions of the name (such as Practical Extraction and Report Language and Pathologically Eclectic Rubbish Lister), though found in the earliest documention for the language, were formed after the name had been chosen. Coinage details confirmed by personal communication from L. Wall, May 2000. A high-level interpreted programming language widely used for a variety of tasks and especially for applications running on the World Wide Web. The form Perl is preferred for the language itself; perl is used for the interpreter for the Perl language.

    1988 J. Vromans Perl Reference Card.
    --
    "Whoever would overthrow the liberty of a nation must begin by subduing the freeness of speech."--Benjamin Franklin