Follow Slashdot stories on Twitter

 



Forgot your password?
typodupeerror
×
Perl Programming

Happy Birthday Perl! 168

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.
This discussion has been archived. No new comments can be posted.

Happy Birthday Perl!

Comments Filter:
  • by Erasei ( 315737 ) on Tuesday December 18, 2001 @02:23PM (#2721606) Homepage

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


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

    • I had a really great piece of perl code I was going to post in celebration of the day, but the slashdot lameness filter won't let me. Considering slashcode is written in perl, you'd think the authors wouldn't have a problem with the occasional perl obfu postings, but my sig is about the best I can get through it seems. Oh well.
  • by linuxrunner ( 225041 ) on Tuesday December 18, 2001 @02:25PM (#2721624)
    I don't normally plug things but, this is free, and it seems appropriate:

    Currently Barnes and Nobles [bn.com] 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...

  • wow! (Score:2, Funny)

    by genkael ( 102983 )
    Wow, Perl was created in 1 day? I think we're celebrating the fact that perl was released to the world on this day 14 years ago.
  • Why would I celebrate Perl's [mst3kinfo.com] birthday. All she does is send horrible movies to those nice 'bots....

    Oh, wrong Perl. Nevermind..

    I'll send them cheesy movies
    The worst I can find <la-la-la>
    They'll have to sit and watch them all
    And I'll monitor their minds <la-la-la>
  • by MicroBerto ( 91055 ) on Tuesday December 18, 2001 @03:10PM (#2721977)
    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.

  • by Krapangor ( 533950 ) on Tuesday December 18, 2001 @03:14PM (#2722015) Homepage
    have taught us one thing:

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

  • by kryzx ( 178628 ) on Tuesday December 18, 2001 @03:15PM (#2722027) Homepage Journal
    Here are a bunch of interesting conversations with Larry Wall: [paulagordon.com]
    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.
    • 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.

      Are you serious? No self-respecting lazy programmer documents anything. It's way too much energy...almost as much as answering questions about it later. Besides, they'll eventually figure it all out on their own anyway

    • 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.
  • PERL's a Saggitarius. The most philisophical of all the signs.

    A week before Christmas isn't too bad.
  • by Pinball Wizard ( 161942 ) on Tuesday December 18, 2001 @03:19PM (#2722045) Homepage Journal
    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.

    • 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.

      All of them but none of them very well.

      Jason.
    • 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, ...

  • by Dancin_Santa ( 265275 ) <DancinSanta@gmail.com> on Tuesday December 18, 2001 @03:20PM (#2722060) Journal
    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
  • by TeleoMan ( 529859 ) on Tuesday December 18, 2001 @03:24PM (#2722091)
    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."
    • by jtdubs ( 61885 ) on Tuesday December 18, 2001 @03:56PM (#2722333)
      > 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
      • 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.

        • I apologize for the slight against Python. I truly do enjoy that language. This was a classic case of the misplaced adjective. I meant for the "nearly" to apply to the level of support and not the maturity.

          There is clearly not "nearly" as much support.

          The maturity I believe to be slightly less as well. Let me explain.

          As far as the syntax of the language itself, it is wonderful. It is beautiful. And I love it.

          By maturity what I meant, although probably not what I said, and I aplogize for the confusion, was the maturity of the supporting libraries and supporting codebase. There is no Python equivalent of CPAN. There are many Python modules , and they are generally very nice, but there are some issues.

          First, there aren't nearly as many. Perl has infinite modules.

          Second, some overlapping packages. How many numeric packages are there for Python now? Why aren't they unified?

          Third, still some language features that are under debate. The list comprehension syntax for more complex comprehensions is still heavily debated. The syntax for doing ranges is not widely liked and there are numerous debates and PEPs suggesting new ones, ranging from Haskell's [1,2..] to using numbers themselves as in "for i in 5". Frankly, I depsise that last one, but that's just me.
          Python is wonderful, and is one of my favorite languages from a design standpoint. It just needs a few more years and some more users to get up to Perl's level of support in terms of online references and in terms of the libraries available. And maybe even to stabalize a bit in terms of the language syntax, although it has remained very backwards compatible and has evolved very gradually and incrementally. What a great language.

          Again, sorry for the confusion. Have a wonderful day,

          Justin Dubs
        • Why would you say Python isn't mature?

          He didn't say that python isn't mature, he said it wasn't as mature as perl.
          Check the title of the slashdot story again and think for a minute :-)

      • 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.

        Um, just a minor quibble, but I'm pretty sure that you spelled "Ruby" wrong up there.
    • Because it has a wonderful OO model which can make all OO programmers happy.
      Because it is great for procedural programming and for OO programming.


      You must be kidding. I love Perl, but its idea of OO is afterthought and a complete joke.
  • Break out the PERL camels and dolphins!
  • by TheViffer ( 128272 ) on Tuesday December 18, 2001 @03:29PM (#2722145)
    Dec 18 .... Dont you mean October 18 [perl.org]!!!

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

  • by Anonymous Coward on Tuesday December 18, 2001 @03:29PM (#2722146)
    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
  • by TeleoMan ( 529859 ) on Tuesday December 18, 2001 @03:33PM (#2722178)
    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
    • 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.)
      • I think you're looking for the Inline [cpan.org] module for Perl.

        Dancin Santa
        • I think you're looking for the Inline [cpan.org] module for Perl.

          Kind of, though that's more for inlining C (or other languages) into Perl. But it's also a good way to provide "glue" by writing small functions with Inline::C that you can call from Perl, and those functions call your real code, which is presumably in a library. But the program still starts with Perl.

          If you want to start with C (that is, your main() is not Perl's main() but one you write on your own, and embed a Perl interpreter), you've been able to do that for quite a while, but it's not really been all that easy.

    • This is one of the most insightful, intelligent analyses of college CS mentality, that I've ever read. I can only say: Amen, brother.

      Indeed, I don't understand why students (not only CS students, mind you) are just so unwilling to think outside of the box. They're just afraid of anything new, of any change. I'm glad there are people like you who are well aware of these issues and put a lot of effort into helping their fellow students.
    • It's times like these when I wish I were a moderator.

      I had exactly the same sort of experience, when I was in school, with teaching my classmates to transcend "language" to get at the roots of programming/computing. I still face this problem every single day in my workplace. Language/platform zealots are everywhere.

      My colleagues find it amusing that in my spare time at work I try to learn a new language/platform. When they don't have anything to do, I tell them that they should learn a new language and give the same reasons that you do. It is sad that they never take my advice.

      Oh well...
    • Knowing lots of languages is good, it also lets you identify which features of a language are better.

      There is more than one way to do something, is bad. Compared to other languages perl seems to promote unreadability and thus unmaintainability and thus no value. One-liners are great for nothing.

      C is bad enough.

      SO yes, learn other languages, learn perl in order to understand what is wrong with it. Break the myth of obfuscated code and pointless optmiziations and complexity.
      Of course this is mostly for application programming, OS programming is entirely different.

      And NEVER assume that a one-off quick script you write for yourself is not going to be maintained by others.
      • You know, I have no idea why some people have the idea that perl promotes unreadability (and thus unmaintainability). Maybe I'm biased, since Perl was my gateway to the art of programming, but I find perl wonderfully easy to work with.

        Sure, if I were writing enterprise-server type programs, I wouldn't choose perl, but only because its an interpreted language. Its not very fast compared to some other langauges, but then, a crappy C programmer's code is *NOT* better than a decent perl programmer's code.

        I don't know what Larry Wall had in mind when he first thought about creating perl (haha, and so would many wonder, I admit.. heh), but I use perl for various reasons:

        • I'm smart, but I'm no mensa. When I can't figure something out, good documentation helps. Perl has great docs.
        • The syntax makes sense to me. Again, it just seems simple and sane to me.
        • Because of the first two points, its a relatively painless process from the idea to the finished working program.
        • Most of my programs are hacks for things I am too lazy to take the time to do (organizing MP3's, updating my guitar tab archive, etc etc), and as such, they probably won't be seen by anyone besides me. I don't care if anyone else understands my code (though I think I keep it pretty clear).


        Now, my opinions are admittedly biased. Like I said, Perl was my first language. Obviously for you older geeks, its not. It raises the interesting question of if/how your first language influences your thought process. Its funny that I can visualize hashes (and ones containing hash refs no less), and actually use that visualization to remember stuff. Shopping lists usually tend to be arrays if I'm at one store, and a complex hash when I'm at the mall. I also think in a logic similar to:
        if($capitalism_level_of_us > $global_breaking_point) { $fate_of_the_world = &GlobalConflict($capitalism_level_of_us); } else { $continued_prosperity = &CalmBeforeTheStorm(); }

        I don't remember being to so easily visualize my thought process before I learned to program. I'd be interested to know if anyone else has considered this.
        • Problems with perl.

          Default variables (explicit is better than implicit)
          Too many %&$.
          All the things that make one-liners possible.
          Side effects. Assignement in ifs.
          if ( $a = func() )

          Basically all the things that python doesn't do, or lisp for that matter.

          Too many ways to do things is like using big words in an essay. Good code should be like Hemingway, short and sweet and clear.
        • "The syntax makes sense to me." -- The opposite is precisely the reason I never got too deep into Perl, although I've done a couple projects with it. There was just SO MUCH syntax, and so many wierd things that were hard to remember. I actually learned to program in Pascal, then a bit of C++, and most of my experience in PHP (how ironic), but to me Python has near-perfect syntax; writing Python feels to me like writing pseudo-code, like breathing.

          Perl, NEVER. I wonder what it is about some people that make them call Perl's syntax intuitive; we can't be that different. Perhaps it's that the syntax takes forever to learn, but once you've learned it you've also learned everything else about the language. Whereas in Python, anyone can learn all the syntax in a few hours, but mastering the language takes just as long as any other.

          I'm learning German and I think the difference is similar; I absolutely hate all the grammar, genders, cases, stuff like that, but once you've got that down you mostly have the language. Whereas English is the opposite; desceptively simple at a low level, but terribly hard to master. (This implies German:Perl::English:Python, though, and I'd say it's almost the opposite, so maybe my argument is confused.)

    • 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.
      • Well I think mastering only 1 language might be a bit drastic. With constant usage, I think you could probably master a language in about 3 or so years. I do agree that learning a language is more into its philosophy. Looking at my older perl programs, I see that they are basically C programs with '$' in front of the variables. It worked, but I was obviously missing the true power of the language. Now I struggle between the power of Perl, ballenced with readability (and yes, that can be a challenge in Perl). Oh well, that's what comments are for...
    • Teleoman makes a decent case for learning a new language now and then, but that has very little to do how we should judge Perl. It doesn't change the fact that Perl is a huge, ugly beast.

      Maybe it's my failing, but I honestly don't know why any one chooses to use it with so many other (better) alternatives. Perl manages to be even more ugly and opaque than VB, with none of the (ostensibly) helpful ease-of-use features that VB has.

      • >Maybe it's my failing, but I honestly don't know
        >why any one chooses to use it with so many other
        >(better) alternatives.

        I used it extensively to supplement a java/oracle project on Solaris. The main modules were in Java, we used Perl to do the following:

        a) Ad hoc reporting.
        b) Utilities used by the Helpdesk people for routine checks
        c) plumbing&interfacing with the OS, substituting shell scripts.
        d) scripts to migrate/update data in the DB when required by a new version of the main sw.

        Some of these (except "c") could have been done in Java, but by choosing Perl we could do some quick experiments or testing directly on the (remote) production machine using "vi", without the hassle of compiling code on it (which we considered a bad thing by itself).

        We were also able to "subsidize" some of our development effort: most of the perl scripts were created and/or mantained by people who were not proficient with Java (like our DBA), and we found that this worked well enough: people armed with the Perl Cookbook could create a lot of functionalities in a short time.

        The application field was related to remote management of telecom devices, so the ability to interface through telnet, sockets (even snmp, but we never needed to use it) was a real boon.

        I left the original project, but keep in touch with people working on it, and Perl is still used a lot.

        Please consider that nobody in the group knew Perl at the start. Most of the things I've listed had to be done by using Java, bash, awk. Even plain old C in a case.
        We decided to introduce a scripting language before this hodgepodge of ad-hoc scripts reached "critical mess", and it worked for us.
    • The problem was entirely in their minds. . . . 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.
      That depends on what you mean by "learn." Sure, any experienced programmer could dive into a book and pick up the on the obvious elementary issues such as assignment statements, conditionals, loops, etc. But that does not mean you have "learned" a computer language any more than memorizing a few words and phrases from a tourist guide book means you have "learned" a natural language.

      I know I'm a bit of a slow learner and I don't think any easy change of attitude will remedy that. But I have, over my career, developed a truly powerful command of some languages. Really, when I know perl as well as i once knew 370 assembler I am going to be one 1337 dude! But I don't think there are too many people who can acquire that level of skill in a single day.

      I also have a problem with trying to gain even a basic working familiarity with the nuts and bolts of too many languages, especially if they are highly similar. The different constructs tend to get mixed up in my head. I have to think about syntax, not the problem I'm trying to solve. I keep having to look things up. That was why I gave up on Visual Basic. Of course it isn't suitable for many kinds of program, but beyond that, I didn't want to deal with all the quirky (and probably pointless) little differences between VB, VB for applications, Access VB, VB for Nose Picking, hell, I don't even remember all the weird variations MS came out with back when I cared.

      What I really like to do is get to a point where I can type in a modest GLP of a hundred lines or so very quickly, without needing to look anything up, and then have it run correctly the first time I try it. Again, most people cannot get to that point in a single day. And to the two or three /. posters who can: I don't know who you are... but I don't like you! ;)

    • 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).

    • by Anonymous Coward
      Cut and paste straight from here [slashdot.org] (http://slashdot.org/comments.pl?sid=20215&cid=215 3745), a comment by Dalroth about Ruby. In the "Programming in the Ruby language" story. All he did was replace Ruby with Python. And why was this modded up, anyway? Does "offtopic" mean nothing to you people? I don't care if he wrote "War and Peace", if I'm reading an article about Perl's birthday then I want to read related posts - things about Perl's history, or Perl's current situation- not some essay trying to convince me to use Rub^H^H^HPerl.
  • Hi!


    I, too am a perl fan. It does almost any sort of programming I need it to. I can do it quickly. And, I can port the script near-seamlessly accross almost every platform I deal with--except my Palm.


    In fact, I have convinced my teammates to take it up as our de facto standard scripting language.


    Now, if I could just port it to all platforms I deal with (hint for perl for palm)

  • by Marx_Mrvelous ( 532372 ) on Tuesday December 18, 2001 @03:36PM (#2722200) Homepage
    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!
  • According to this list my florist gave me, you shouldn't celebrate with Pearl until your 30th year of marriage...
  • Perl Poetry (Score:3, Funny)

    by Misch ( 158807 ) on Tuesday December 18, 2001 @04:28PM (#2722547) Homepage

    "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.

  • Of Eric Raymond's five hacker languages [tuxedo.org] - that is, Python, Java, C/C++, Perl and LISP - Perl is probably the one which inspires the strongest feelings either way.

    Love it for its ability to get stuff done with no messing, hate it for the way it can really bite you in the ass, Perl is hard to ignore.

    Happy Birthday, ya adorable scuzball camel-type language.

  • by Dave21212 ( 256924 ) <dav@spamcop.net> on Tuesday December 18, 2001 @05:27PM (#2722957) Homepage Journal
    Another poster [slashdot.org] pointed out that there are two birthdates published in different areas of the perl.org website. This interesting entry from the recent [perl.org] 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.
  • ...
    On the 18th day, he created Perl, and it was good.
    On the 19th day, he rested.
    ...

    Magius_AR

  • from fortune on this page:

    The prayer of serenity applies here. To both of us. :-) -- Larry Wall in
  • If you read the history section closely, the date is when Perl 1 was released. I don't think that was the day Larry completed it (he was over in R&D by that time), but it certainly isn't the original birthday of Perl. I should know. I was there.

    To tell the story yet again. Larry and I were sharing an office at SDC. Larry needed a program to support a configuration management system he was developing for the BLACKER program. Awk wouldn't do the job of marching through the news directories. And so he developed perl (version 0). I know; for I was the first user, using a combination of perl and other programs to support a data dictionary for the ACC portion of BLACKER, where we would maintain the data dictionary in nroff, and the pascal source would be automatically derived.

    So, celebrate if you will, but remember exactly what you are celebrating. And drink and drive responsibly :-)

    Daniel
    Perl's Maternal Godparent.
  • Are we all invited to the Bar Mitzvah?
    (I know Larry is a Christian, but his brainchild is experimenting with Judaism).
  • Notwithstanding the justified celebration of Perl 1.0, Perl was already significant enough to be marked by Dan Faigin and Mark Biggar as "Age 3mo" in this announcement of another fine product [google.com]:

    the occasion was the birth Larry's third child, in May of 1987.

    On that reckoning, Perl will be fifteen years old this coming February.

  • there [google.com] is a post about the birth of Geneva Marie (Wall?) on may 12 1987, listing previous "off the wall software products", among them perl with the age given as "3mo".
    however, as perl was publically announced on dec 18, and we don't have any other specific date, we should stick to it.
    now, if we would know the date when the first print(hello world!\n); was sent through the perl interpreter, that would be a good date.
  • What an odd coincidence! No wonder I like Perl so much... it's almost like Larry Wall gave me a gift on my 12th birthday. Well... maybe not.. but funny anyway! :-)
  • I wish I could write a programming language in a day. I can hardly write a solitare program in a day, let alone all of perl!

    Shouldn't it say, "released on this day", or, "completed on this day"? It's just a bit misleading :)

"Conversion, fastidious Goddess, loves blood better than brick, and feasts most subtly on the human will." -- Virginia Woolf, "Mrs. Dalloway"

Working...