Slashdot Mirror


Larry Wall on Perl 6

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

265 comments

  1. Arg!! by TooCynical · · Score: 1, Funny

    "For the full interview, in which Larry discusses more about O'Reilly and the upcoming Perl 6, grab a copy of LXF 75."

    Annoying.

    R

    --
    Homer: Facts are meaningless, you can use facts to prove anything that's remotely true!
    1. Re:Arg!! by Anonymous Coward · · Score: 0

      No, @ARGV!!

    2. Re:Arg!! by Anonymous Coward · · Score: 0

      Not as annoying as dark grey letters on black background. Must be British web design ... :-)

  2. About Larry by Walterk · · Score: 0, Redundant

    Larry Wall (b. September 27, 1954), programmer, linguist, author, is most widely known for his creation of the Perl programming language in 1987. Wall earned his bachelor's degree from Seattle Pacific University in 1976.

    Wall is the author of the rn Usenet software and the nearly universally used patch. He has won the International Obfuscated C Code Contest twice and was the recipient of the first Free Software Foundation's award for the Advancement of Free Software in 1998.

    Beyond his technical skills, Wall is known for his wit and often ironic sense of humor, which he displays in the comments to his source code or on Usenet. For example: "We all agree on the necessity of compromise. We just can't agree on when it's necessary to compromise."

    Larry Wall is a trained linguist, and has used this training in the design of Perl. He is the co-author of Programming Perl (often referred to as the Camel Book), which is the definitive resource for Perl programmers. He has edited the Perl Cookbook. His books were published by O'Reilly.

    Wall's Christian faith has informed some of the terminology of Perl, such as the name itself, a biblical reference to the "Pearl of great price" (Matthew 13:46). Similar references are the function names bless and confess and the organization of his talks into categories such as apocalypse and exegesis. Wall has also alluded to his faith when he has spoken at conferences, including a rather straightforward statement of his beliefs at the August, 1997 Perl Conference and a discussion of Pilgrim's Progress at the YAPC (Yet Another Perl Conference) in June, 2000.

    Wall continues to oversee further development of Perl and serves as the Benevolent Dictator for Life of the Perl project. His role in Perl is best conveyed by the so-called 2 Rules, taken from the official Perl documentation:

                  1. Larry is always by definition right about how Perl should behave. This means he has final veto power on the core functionality.
                  2. Larry is allowed to change his mind about any matter at a later date,regardless of whether he previously invoked Rule 1.

            Got that? Larry is always right, even when he was wrong.


    Larry's personal home page
    Larry Wall wiki quotes

    1. Re:About Larry by Anonymous Coward · · Score: 1, Informative

      Karma Whore... are you just riding the daypass wagon?
      Your earlier comment: http://slashdot.org/comments.pl?sid=171673&cid=142 97763

      I can do wikipedia searches myself, thank you
        actually
      add in a bookmark with keyword W
      and list this:

      http://www.google.com/search?q=site:en.wikipedia.o rg %s&btnI=%22I'm Feeling Lucky%22

      then just type in \ w larry wall \ w perl \ w whtatever \ etc...

      it will do a google i'm lucky search on en.wikipedia and bring you to the right page. Beat's wikipedia's search. Even detects misspellings

    2. Re:About Larry by mike77 · · Score: 4, Funny
      He has won the International Obfuscated C Code Contest [ioccc.org] twice

      So much has now become clear about Perl!

      Don't get me wrong though, Perl is my code of choice.

      --

      --Keeping the flame wars alive, one post at a time

    3. Re:About Larry by H0p313ss · · Score: 2, Funny

      Larry is a God but Perl makes my head hurt just thinking about it...

      Obfuscation by design?

      --
      XML is a known as a key material required to create SMD: Software of Mass Destruction
    4. Re:About Larry by H0p313ss · · Score: 3, Funny

      Now that would make a great O'Reilly title:

      Application Development in Perl: Obfuscation by Design

      Forgive me Larry... I must be grumpy today.

      --
      XML is a known as a key material required to create SMD: Software of Mass Destruction
    5. Re:About Larry by jacksonj04 · · Score: 1

      But which animal would it use as the cover?

      --
      How many people can read hex if only you and dead people can read hex?
    6. Re:About Larry by llamaguy · · Score: 1

      The Camel-Platypus. What else could represent such a wonderful book and fusion of methodologies?

      --
      HAH! I just wasted a second of your life making you read this, but I wasted a minute of mine thinking it up. DAMN.
    7. Re:About Larry by Anonymous Coward · · Score: 1, Funny

      No, that would be Intelligent Obfuscation.

    8. Re:About Larry by SCHecklerX · · Score: 1

      Perl is the only language I have used that I can sit down and be productive with after a couple years of non-programming without having to look at a single reference book. Try that with C or Bash.

    9. Re:About Larry by Fahrenheit+450 · · Score: 1

      Meh. I just did that last week with C.
      Other than the usual issues with the crap Algol-esque syntax and having to look up the order of parameters to a few calls it went swimmingly. For me Perl is much trickier to keep all the various punctuation straight in my head without plunking away at it for a while.

      --
      -30-
    10. Re:About Larry by Lost+Found · · Score: 3, Insightful

      Have you ever been in perl's guts? It shares a property of Perl that I find most interesting... when you first look at it and try to become comfortable with it, well, it makes grown men cry.

      But then you have this moment where something in your head *clicks* and then you understand... and after that it is beautiful and logical and makes infinite sense.

      It really was better than acid...

    11. Re:About Larry by Phroggy · · Score: 1

      Obfuscation by design?

      Nonsense - it takes some effort to really obfuscate perl!

      Actually, your two main problems with perl are: 1) understanding the difference between sigils, and 2) learning the myriad of operators. For example:

      $scalar
      @array
      %hash
      $array[$index]
      $hash{$key}
      @array[0..$index]
      $#array

      Type "perldoc perlop" at a command prompt to get a list of operators.

      == tests numeric equality, eq tests string
      != tests numeric inequality, ne tests string inequality

      So if $a="3" and $b="3.0", $a==$b but $a ne $b.

      =~ is the associative operator; it binds a regular expression to a variable, to make the regex apply to that variable. If you use a regex without associating it with anything, $_ will be used by default (this is the standard default variable for a lot of things). !~ is also an associative operator, but returns the opposite, e.g. false when a pattern match is true or true when there's no match. Not used very often.

      && and || behave mostly the same way as in C. "and" and "or" are also operators that mean the same thing, but are very low on the order of operations list, so they can be used without parentheses in places where if you used && or || you'd have to put parentheses around something. Perl programmers are lazy, so the fewer characters we have to type, the better.

      These are all equivalent; sometimes one makes more sense than the others in any given situation. They're used interchangeably depending on which one seems to be clearer, with a preference toward the versions that don't require curly braces (perl differs from C here).

      if($expr) { dostuff(); }
      dostuff() if($expr);
      unless(!$expr) { dostuff(); }
      dostuff() unless(!$expr);

      There you go. Master all of that, and you'll have no trouble with perl.

      --
      $x='S24;r)>63/* h@<5+oZ)32"5cz';$me='phroggy'x$];
      $x=~y+ -xz+\0-Tx+;print$_^chop$me for split'',$x;
    12. Re:About Larry by Nexus7 · · Score: 1

      You write:
      >$scalar @array %hash $array[$index] $hash{$key} @array[0..$index] $#array

      All that's well and good, but the fun starts when you can nest them.

      print "The array is this big: ".@{$my_hash_ref->{$key}[$index]}[$start..$end]."\ n";

      Yeeeeeeeeeeehaaa!

    13. Re:About Larry by ZioCantante · · Score: 1

      This is the cover of the first perl6 book:
      http://www.bleaklow.com/blog/images/p6_cover.html

      How appropriate...

    14. Re:About Larry by jms1 · · Score: 1

      you forgot one...

      $expr && dostuff() ;

      depending on what "$expr" really is, you may need parentheses around it.

    15. Re:About Larry by Q2Serpent · · Score: 1

      > $scalar
      > @array
      > %hash
      > $array[$index]
      > $hash{$key}
      > @array[0..$index]
      > $#array

      Don't forget my favorite:

      @hash{ key1, key2, ... keyn };

      Remember folks, $ means the result is a scalar ($scalar, $array[index], $hash{key}) and @ means the result is an array (@array, @array[1..n], @hash{key1, ...keyn}).

    16. Re:About Larry by try_anything · · Score: 1

      Wow! You and I must have minds that work in very different ways. I can do that with every language I've programmed a bunch in except Perl. That's why I gave up on it and settle on Python instead, in spite of a serious case of conciseness envy.

    17. Re:About Larry by Phroggy · · Score: 1

      Ah, yep, hash slice - I did forget that one. I don't believe I've ever used it myself. Thanks. :-)

      --
      $x='S24;r)>63/* h@<5+oZ)32"5cz';$me='phroggy'x$];
      $x=~y+ -xz+\0-Tx+;print$_^chop$me for split'',$x;
  3. Perl is a trainwreck - retire it by Anonymous Coward · · Score: 4, Funny

    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.

    1. Re:Perl is a trainwreck - retire it by elrous0 · · Score: 2, Insightful
      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 out there (hardly the case with VB or Php).

      Now maybe I'm just saying this because I'm an old dog and haven't learned the latest tricks. But I think it's way too early to be writing Perl's obituary. It has saved my butt many times and continues to do so today.

      -Eric

      --
      SJW: Someone who has run out of real oppression, and has to fake it.
    2. Re:Perl is a trainwreck - retire it by musterion · · Score: 2, Informative

      I hope everyone reads this post entirely. It is obvious satire. It would be a troll if you don't read it all.

    3. Re:Perl is a trainwreck - retire it by Anonymous Coward · · Score: 0

      Java and VB are *not* replacements for perl. Perl is very good for quick jobs where you're processing input and producing output (it even has the ability to generate reports builtin to the language, but that's not used much). It's very quick to produce - you can make a script to do what you need in a few minutes, and requires no extra infrastructure since it's installed by default on nearly all systems anyway.

      OTOH I wouldn't want to write a large app in perl, but that's not what it's for anyway.

      Python is a reasonable replacement should you want to (It's not available on all servers though)... it's a neater language, certainly. PHP for the purely web based stuff.

      A fully fledged language like Java is massive overkill for the smaller jobs that perl is good at. As for VB... that was a joke, right?

    4. Re:Perl is a trainwreck - retire it by Short+Circuit · · Score: 1

      Perl is compiled every time you run a Perl program. It causes an annoying slowdown in my programs.

    5. Re:Perl is a trainwreck - retire it by ocelotbob · · Score: 1

      You can compile perl, y'know. Look at the perlcc program for more info.

      --

      Marxism is the opiate of dumbasses

    6. Re:Perl is a trainwreck - retire it by LarsWestergren · · Score: 2, Funny

      Ouch, such cutting edge satire. Thank you for reminding us that brevity is the soul of wit.

      --

      Being bitter is drinking poison and hoping someone else will die

    7. Re:Perl is a trainwreck - retire it by Short+Circuit · · Score: 1

      Doesn't help much in the development process. :-/

    8. Re:Perl is a trainwreck - retire it by garaged · · Score: 0

      unless you have a 10,000 lines script, it takes really very short time to compile, thanks :-)

      --
      I'm positive, don't belive me look at my karma
    9. Re:Perl is a trainwreck - retire it by cerelib · · Score: 1

      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!

    10. Re:Perl is a trainwreck - retire it by Waffle+Iron · · Score: 1

      And where did you find these languages that don't need to compile or parse your code when you're developing with them?

    11. Re:Perl is a trainwreck - retire it by SanityInAnarchy · · Score: 1

      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.

      --
      Don't thank God, thank a doctor!
    12. Re:Perl is a trainwreck - retire it by jqh1 · · Score: 1

      you forgot to

      use Post::Troll;

      I don't think your post will pass taint checking.

      --
      who's moderating the meta-moderators?
    13. Re:Perl is a trainwreck - retire it by networkBoy · · Score: 1

      rotfl

      that's all I've got to say about that.
      -nB

      --
      whois gawk date unzip strip find touch finger mount join nice man top fsck grep eject more yes exit umount sleep dump
    14. Re:Perl is a trainwreck - retire it by Short+Circuit · · Score: 1

      QBASIC and Forth don't require compiling. But I never said anything about parsing.

      Part of the annoyance is that some bugs only show up once in a blue moon, so rerunning the program multiple times can be necessary to be sure they're fixed. perlcc might speed up that process...I'll have to look into it.

  4. The Perl 6 VM is Parrot by YA_Python_dev · · Score: 5, Informative

    The virtual machine that will run Perl 6 is Parrot, an innovative register-based JITed VM optimized for dynamic languages.
    It can also run a subset of Python (compiled with Pirate), 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 and the Wikipedia page on the Parrot VM.

    If you like that sort of things, you can help!

    --
    There's a hidden treasure in Python 3.x: __prepare__()
  5. I wanted to read... by Kutsal · · Score: 1

    TFI (I=interview) for once before I wrote about it, but the page says

    "For the full interview, in which Larry discusses more about O'Reilly and the upcoming Perl 6, grab a copy of LXF 75.".....

    --
    Karma: Bad (but who really cares anyway?)
  6. An interesting question by daviddennis · · Score: 1

    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

    1. Re:An interesting question by Anonymous Coward · · Score: 0

      He's eating pink taco with this girl. He is a missionary linguist, after all!

  7. Wow by gowen · · Score: 1, Funny
    the plunge in book sales, which was already starting before 9/11 but very much accelerated at that point.
    And the George W. Bush award for using 9/11 as an explanation for something completely unrelated to 9/11 goes to .... Larry Wall.

    George W. Bush was second, though.
    --
    Athletic Scholarships to universities make as much sense as academic scholarships to sports teams.
    1. Re:Wow by bhima · · Score: 1
      For a lot of folks 9/11 became a significant milestone... sort of like getting divorced. So events are marked as happening BC or AD.

      As for attaching causality, you did that yourself... It certainly wasn't Larry or the interviewer.

      --
      Nothing in the world is more dangerous than sincere ignorance and conscientious stupidity.
    2. Re:Wow by gowen · · Score: 1

      "Very much accelerated at that point" : Folks, that's causality.

      --
      Athletic Scholarships to universities make as much sense as academic scholarships to sports teams.
    3. Re:Wow by Bwian_of_Nazareth · · Score: 0

      No, it isn't. That's concurrence.

    4. Re:Wow by j-pimp · · Score: 4, Interesting

      And the George W. Bush award for using 9/11 as an explanation for something completely unrelated to 9/11 goes to .... Larry Wall.

      I don't know about nationally, but there was a major recession in the NY area after 9/11 for a good year and a half. I was stuck workign at burger king at one point. Granted, I choose the worse time to drop out of college, it was even hard for a high school graduate with some college and a solid skillset at the time for entry level IT work to get a minimum wage service job.

      The company I work for now is an ISP/developmenthouse. They are based out in eastern longisland 36.9 miles from my house in Queens according to google. There business core was out east. They had inroads and a solid plan to break into Manhattan, but they were, and still are a longisland company. Before september 11th they were looking at adding phone lines. Afterwards, the phones stopped ringing. There development work almost stopped. They had to lay off several people.

      Anyway, claiming September 11th had a negative aspect on the business of computer book publishing is far from unbased.

      --
      --- Justin Dearing http://www.justaprogrammer.net/ We're just programmers.
    5. Re:Wow by Elvis+Parsley · · Score: 1

      Things had already not been going well for computer book publishers, but the last quarter of 2001 was, in fact, disastrously bad for the publishing industry. O'Riley took a serious hit, the publisher I was working for at the time had to let a number of people go, and another small publisher (Coriolis? I don't recall clearly) pretty much went under. And the preciptious drop in sales does seem to date to mid-September of that year. Even if that wasn't ultimately an effect of the attacks (and I suspect it was, in fact, a major factor; the weak publishing industry was in no shape to withstand any kind of economic stress such as that experienced in the immediate aftermath), 9/11 is a good signpost for a time when things in computer book publishing went Very Bad Indeed.

    6. Re:Wow by mooingyak · · Score: 1

      No, that's correlation.

      --
      William of Ockham had no beard. The most likely explanation is that it was chewed off by squirrels every morning.
    7. Re:Wow by Anonymous Coward · · Score: 0

      workign
      choose the worse time
      There business core was out east.

      ...

      to drop out of college

      Yeah, we can tell.

    8. Re:Wow by tacolicker · · Score: 0

      Your knowledge of the English language is incredible. Why'd you give up on a degree from a university?

    9. Re:Wow by superdude72 · · Score: 1

      Anyway, claiming September 11th had a negative aspect on the business of computer book publishing is far from unbased.

      I was working at a Silicon Valley dotcom at the time, had friends who worked in tech publishing, and the collapse was already well underway. Tourism in San Francisco also steeply declined, but I can't imagine that many people beyond a 25-mile radius of the WTC actually changed their vacation plans because of 9/11. Corporate scandals and the dotcom collapse were far greater cataclysms as far as our economy was concerned. With the stock market in the dumps after years of irrational exuberance, people just didn't have the money to travel. And with the dotcoms collapsing, many people simply no longer had a reason to travel to the Bay Area. People who would have visited Fisherman's Wharf while in the city on business no longer had business to conduct (except for, I guess, Google, which was busy buying up acre upon acre of data center space at fire sale prices...)

    10. Re:Wow by j-pimp · · Score: 1

      to drop out of college Yeah, we can tell.

      Yes, because that electrical engineering degree would have taught me to proofread my slashdot postings.

      --
      --- Justin Dearing http://www.justaprogrammer.net/ We're just programmers.
  8. Why I like Larry Wall. by AltGrendel · · Score: 4, Insightful
    We're not interested in telling people what they can't do.

    I like that.

    --
    The simple truth is that interstellar distances will not fit into the human imagination

    - Douglas Adams

    1. Re:Why I like Larry Wall. by code65536 · · Score: 3, Interesting

      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.

    2. Re:Why I like Larry Wall. by Coryoth · · Score: 1

      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 come projects it is definitely the right choice because of its remarkable flexibility. I have also come to admire more restrictive languages like Python, or Ada, or Eiffel, particularly for projects where maintainability has any part to play. You should also note that the three languages mentioned are also languages that are all quite easy to read even if you don't know the language, which is to say, they are all very readable and maintainable.

      Jedidiah.

    3. Re:Why I like Larry Wall. by asdfghjklqwertyuiop · · Score: 3, Insightful

        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.

    4. Re:Why I like Larry Wall. by hackstraw · · Score: 3, Interesting

      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.

    5. Re:Why I like Larry Wall. by Lost+Found · · Score: 1

      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. When the language is willing to *bend over backwards* to accomodate you, no matter how unreasonably outrageous of a demand you make, you can twist it into the wildest contortions and pure art emerges.

    6. Re:Why I like Larry Wall. by chromatic · · Score: 1
      You should also note that the three languages mentioned are also languages that are all quite easy to read even if you don't know the language...

      What good is that? The only possible reason I could see is that if you're trying to learn the language.

      Certainly someone who doesn't know the language has no business maintaining the code.

    7. Re:Why I like Larry Wall. by Bastard+of+Subhumani · · Score: 0
      Certainly someone who doesn't know the language has no business maintaining the code.
      Not everyone has a 4 digit ID and is in consequence born knowing everything. Us mere mortals have to learn, somewhere.

      --
      Only three things are certain; death, taxes, and apocryphal quotations - Ben Franklin.
    8. Re:Why I like Larry Wall. by bani · · Score: 1

      Yes, python syntax is very strict. However it is also very rich. Despite a rich syntax, python applications tend to be very easy to read. It's sort of like a perl which doesn't suck.

      Flexible grammar has its disadvantages too, yahoo stores was written in lisp, and had to be rewritten in c++/perl because the lisp code became unmaintainable.

    9. Re:Why I like Larry Wall. by asdfghjklqwertyuiop · · Score: 2, Interesting

      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? So does that aspect make it less expressive than python? No, it is just a different syntax.



      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. When the language is willing to *bend over backwards* to accomodate you, no matter how unreasonably outrageous of a demand you make, you can twist it into he wildest contortions and pure art emerges.


      Perhaps I worded that wrong. What I meant and should have said was: A clean, simple syntax (or as you deemed it, paternalistic") does not imply lack of power or expressiveness. See Lisp for example, which has less syntax than perl or python.

      But anyway, getting down to specifics, I'm not sure about your perl prototypes example. Prototypes in perl have a few different effects: some degree of compile-time type checking, ability to imply pass-by-reference (irrelelvant in python since, like Java, almost everything is a reference anyway) and making paren-less function calls even less clear.
    10. Re:Why I like Larry Wall. by Anonymous Coward · · Score: 0

      Right, wake us all up when you have a real job. As a typical cloistered professional open source wanker, you have no idea how the real world works. Hint: its not as simple as you think. But WTF, I'm telling all this to someone who's "name" is "chromatic", so I guess it goes without saying that yourself and the real world will remain forever separated.

    11. Re:Why I like Larry Wall. by chromatic · · Score: 2, Insightful

      If you're a decent programmer and you have productive experience in a couple of languages already, it's likely you can pick up enough of a new language (especially an Algol-derivative) in a week or two and be productive. Perl and Python and Ruby and PHP aren't too different in that sense.

      If you're not a programmer, it really doesn't matter how the language looks. Not only do you have to learn the purpose of the system and the design of the code already, you have to learn how to program. If your manager threw you into that point, not knowing the language is just one of many, many problems.

    12. Re:Why I like Larry Wall. by Bastard+of+Subhumani · · Score: 0
      someone who doesn't know the language has no business maintaining the code.

      If you're a decent programmer and you have productive experience in a couple of languages already, it's likely you can pick up enough of a new language

      Make your mind up.
      --
      Only three things are certain; death, taxes, and apocryphal quotations - Ben Franklin.
    13. Re:Why I like Larry Wall. by argel · · Score: 1
      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.

      What about Perl Poetry? Or JAPH's? Here's a really good JAPH example: Latent JAPH. Obviously Python's forced tabs do indeed restrict expression.

      --

      -- Argel
    14. Re:Why I like Larry Wall. by ClamIAm · · Score: 1
      I don't know what makes you say Python dictates how you express yourself.

      But if you can't argue over half a dozen indentation styles, there's NO WAY you can call a language expressive!

    15. Re:Why I like Larry Wall. by Peaker · · Score: 1

      We're not interested in telling people what they can't do.

      I like that.


      It is actually very important what people cannot do, in order for programs to be readable.

      The less a writer can write, the easier it is for a reader to read.

      If you impede write-ability by just a bit (even assuming that offerring just one obvious way to do things, you reduce write-ability, ignoring increased code compatability) you increase readability by orders of magnitude, and I know where I want to be on that tradeoff scale.

      Another way to say it, is that if the language offers and encourages developers to use one of 10 different incompatible unreadable ways, they will use them. Maybe YOU won't, but the code you will have to read and use will.

    16. Re:Why I like Larry Wall. by chromatic · · Score: 2, Interesting

      Hm, I didn't type my full thought.

      If you're a good programmer already and you learn the language, you can maintain the code. Then it doesn't matter if you could read the program before you knew the language. You know the language.

      If you don't know how to program, you have no business maintaining the program before you learn to code. It doesn't matter if you think you can read the program.

      If you're a good programmer and you suddenly have to maintain a program written in a language you don't know, the learnability of the language is important... but you're still in trouble.

      In one job, I had to fix a website for a client developed in ASP with VBScript. I don't know VBScript, but it was close enough to other languages I knew so that I could stumble through a book and figure out just enough to fix things. It wasn't a brilliant solution and it probably wasn't even the optimal solution, but it worked. Still, it was a bad situation.

      I think it was only VBScript's similarity to other languages I'd used (and my familiarity with web programming at that point) that made it possible to fix the bugs. If it had been another language designed for human readability (COBOL, for a totally unfair example, or AppleScript), I'm not sure the readability of the language would have helped at all.

      Fortunately, the client only needed that little bugfix and I didn't have to learn VBScript and ASP to keep supporting them. Sure, my rule about not maintaining code in a language you don't know is an ideal rule and you can't always avoid it, but if people stuck with it we might be in a lot less trouble code-wise.

    17. Re:Why I like Larry Wall. by Coryoth · · Score: 1

      I wasn't suggesting people who don't know the language should be maintaining the code, I was simply suggesting that, as a measure of clarity of expression and readability, the ability of a novice to follow the code rates pretty high. If someone without any knowledge of the language, its quirks, warts, and idiosyncracies can sit down and follow most anything anyone can write in the language then it's a good bet that in general that code is going to be easy to read and maintain. If you require knowledge of the finer points of the language to even be able to grasp what is going on then, chances are, there are going to be enough people who make use of all manner of subtle language intracacies to produce dense, convoluted and hard to follow code that you'll find some maintanability nightmares.

      Jedidiah.

    18. Re:Why I like Larry Wall. by try_anything · · Score: 1
      I know where I want to be on that tradeoff scale

      Personally, I think this depends on the situation. There are some languages like Perl and C++ that can only be used to their full potential by people who put a serious amount of effort into learning them. This is a disadvantage, but there tends to be a trade-off between language complexity and design complexity: language features sometimes enable simpler designs. If you can ensure that your coders are all fluent in the target language, it's advantageous to go with the language that gives you a simpler design. In other situtations, you might accept a slightly more complex design to make it possible for a wider pool of programmers to contribute.

    19. Re:Why I like Larry Wall. by Bastard+of+Subhumani · · Score: 0
      Hm, I didn't type my full thought.
      That's whose fault, exactly?
      If you don't know how to program, you have no business maintaining the program before you learn to code.
      Sorry, but that isn't what you originally wrote. Seems you're squirming. Still, you seem to be getting modded up, though I suspect that's the low user-id effect. It sure as heck isn't what you say.
      --
      Only three things are certain; death, taxes, and apocryphal quotations - Ben Franklin.
  9. Re:Full article text by gowen · · Score: 5, Funny
    you have to buy the magazine to get the full text...
    And yet you felt the need to copy and paste the bit they gave you, and title it "Full Article Text".

    You sir, are a cretin.
    --
    Athletic Scholarships to universities make as much sense as academic scholarships to sports teams.
  10. Hard Enough to Understand by Anonymous Coward · · Score: 5, Interesting

    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.

    1. Re:Hard Enough to Understand by popeyethesailor · · Score: 1

      People have survived ML, Lisp variants, m4 and other assorted macro processing languages. One more isnt going to hurt.

    2. Re:Hard Enough to Understand by H0p313ss · · Score: 2, Funny

      This must be an obscure usage of the word survive of which I was previously unaware.

      --
      XML is a known as a key material required to create SMD: Software of Mass Destruction
    3. Re:Hard Enough to Understand by Anonymous+Brave+Guy · · Score: 3, Insightful

      Then again, it could also cause some of the issues LISP macros can cause. Powerful language features aren't inherently bad things, but powerful language features in the hands of unskilled users are dangerous things, so it depends a lot on who you're trying to help.

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    4. Re:Hard Enough to Understand by daVinci1980 · · Score: 1

      That also explains their immense popularity outside the 'toy problem' arena.

      --
      I currently have no clever signature witicism to add here.
    5. Re:Hard Enough to Understand by Phroggy · · Score: 1

      What? Hard to understand? How do you mean? ;-)

      --
      $x='S24;r)>63/* h@<5+oZ)32"5cz';$me='phroggy'x$];
      $x=~y+ -xz+\0-Tx+;print$_^chop$me for split'',$x;
    6. Re:Hard Enough to Understand by mysticgoat · · Score: 1

      I find Perl to be great for exploring problem spaces and prototyping. It is also an excellent tool for one-shots, and for persons who have to learn programming while focusing on something else (for instance, grad students and research assistants). But I think there are much better languages for large projects and long term maintenance.

      I don't think this is a limitation of Perl. It arises because any large or long term project is going to involve some programmers who have only a year of experience-- and what's worse, some programmers who have repeated their first year experience 9 times over. There is a need to protect the code base from these people, and a restrictive language is necessary to do that. At least for now.

      What I would like to see in Perl 7 (better yet, in Parrot 2) is a metalanguage construct that would allow project leaders to specify what must be done and what is forbidden. The compiler is the appropriate place to enforce such rules (and in this sense, Perl is a compiled language). Maybe this is already being addressed with the ability to modify Perl's grammar?

      As to speed issues, I've never noticed any after running perl code through perl2exe (I've been working on WinXX boxes). The binaries produced seem as fast as any others, though to be honest I've never been concerned about the speed. I've just wanted to avoid putting Perl itself on the computers of clever employees who aren't wise with regard to programming.

      Perl/Tk rocks.

    7. Re:Hard Enough to Understand by Gnight · · Score: 1

      Just be thankful all the Perl programmers out there are experts obsessed with elegant code.

    8. Re:Hard Enough to Understand by jbolden · · Score: 1

      The .Net compiler is written in F# (functional). Most microcode on most chip is written in functional. There are things other than business applications that aren't toys.

  11. Terrorists caused book sales to plunge by digitaldc · · Score: 4, Funny

    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.

    --
    He who knows best knows how little he knows. - Thomas Jefferson
    1. Re:Terrorists caused book sales to plunge by skribble · · Score: 3, Insightful

      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.

      --
      --- Nothing To See Here ---
  12. Re:Perl? Are you kidding me? by arevos · · Score: 1, Offtopic
    Basically, perl is like Emacs or the CLI: it's a cult.

    Whilst I agree with you generally, why did you consider the CLI to be 'a cult'? And to which CLI do you refer? Bash has its deficiencies and irregular syntax, but I don't know of anything better. Do you?

  13. Parrot more interesting than Perl 6 by porkThreeWays · · Score: 4, Interesting

    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.

    --
    If an officer ever threatens to taze you, say you have a pacemaker.
    1. Re:Parrot more interesting than Perl 6 by StrawberryFrog · · Score: 1

      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.

      --

      My Karma: ran over your Dogma
      StrawberryFrog

    2. Re:Parrot more interesting than Perl 6 by Jaykul · · Score: 4, Informative
      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 (including duplicates) but only 15 that have ANY tests (even ones that fail).

      Of all the lists that I checked, the only one that short was the one for the Mono Project (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.

      --
      Anger is never without a reason, but seldom with a good one. -- Benjamin Franklin
    3. Re:Parrot more interesting than Perl 6 by timeOday · · Score: 1
      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, and by "good" I mean something you can use to implement apps that look great and run well - regardless of whether the API is elegant (I'm looking at you, Tk and AWT and Swing). Maybe this just means a QUALITY, well-supported integration between Parrot and wxWidgets.

    4. Re:Parrot more interesting than Perl 6 by Abcd1234 · · Score: 2, Informative

      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.

    5. Re:Parrot more interesting than Perl 6 by timeOday · · Score: 1

      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.

    6. Re:Parrot more interesting than Perl 6 by jsight · · Score: 1

      Actually, there are 4 fairly major multi-language VM. You missed LLVM, which is also a register based VM. The nice thing about it is that the design allows all GCC frontends to target it directly (whereas no stack based VM can currently be targetted by GCC, unfortunately).

  14. Re:Perl? Are you kidding me? by Phreakiture · · Score: 1

    Chop() belongs on the scrap heap of history with malloc(), as far as simple end-user-focused programs go.

    ...this is why it was replaced with chomp().

    /me ducks

    --
    www.wavefront-av.com
  15. Grammatical mutability... by Dystopian+Rebel · · Score: 5, Funny
    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."

    --
    Rich And Stupid is not so bad as Working For Rich And Stupid.
    1. Re:Grammatical mutability... by syle · · Score: 1

      Perl: Innovating new ways to be obfuscated since 1987.

      --

      /syle

    2. Re:Grammatical mutability... by code65536 · · Score: 5, Insightful

      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.

    3. Re:Grammatical mutability... by diggem · · Score: 2, Interesting

      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 problems were and cURL did all the "heavy lifting" for me.

    4. Re:Grammatical mutability... by LarsWestergren · · Score: 1, Funny

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

      --

      Being bitter is drinking poison and hoping someone else will die

    5. Re:Grammatical mutability... by Anonymous Coward · · Score: 1, Funny
      Translation: "Perl 6 code will be the most unreadable Perl ever."

      Is this one of those different sized infinity problems?

    6. Re:Grammatical mutability... by the+big+v · · Score: 1

      A few years back, Damian Conway demonstrated a Klingon interpreter layer on top of Perl. He literally wrote code in klingon that ran on the perl interpreter.

      Last summer at OSCON 2005, he demo'd his LATIN version.

      Unfortunatly, I don't believe he has released source code for either one.

      --
      The only ``intuitive'' interface is the nipple. After that, it's all learned.
    7. Re:Grammatical mutability... by Ed+Avis · · Score: 0, Redundant

      Unfortunately perl has a great deal of semantic nastiness too. A lot of it relates to the magic builtin variables like $! or $1, $2, $3. My favourite is http://rt.perl.org/rt3/Ticket/Display.html?id=2314 0>.

      --
      -- Ed Avis ed@membled.com
    8. Re:Grammatical mutability... by Pharmboy · · Score: 1

      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.

      --
      Tequila: It's not just for breakfast anymore!
    9. Re:Grammatical mutability... by Anonymous Coward · · Score: 0

      > Translation: "Perl 6 code will be the most unreadable Perl ever." ....except for the stuff I'm expected to maintain now our lead "developer" has moved on. Sucks to be me, I guess.

    10. Re:Grammatical mutability... by Dystopian+Rebel · · Score: 1
      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? ;^)

      --
      Rich And Stupid is not so bad as Working For Rich And Stupid.
    11. Re:Grammatical mutability... by fatphil · · Score: 1

      One thing that might surprise you is the fact that JavaScript is possible the most powerful of all. It's got all of the features that you list.

      You're not a real JavaScript programmer until you've Curried functions in it! (Though the variadic nature makes the construct not as neat as in the purer functional languages.)

      --
      Also FatPhil on SoylentNews, id 863
    12. Re:Grammatical mutability... by kpharmer · · Score: 2, Insightful

      > 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 that there is more elegance in a solution that uses just a few components consistently and well, than in a solution that has a vast number of components in a variety of ways.

      'One way to do things' is language philosophy that may occasionally increase implementation costs, but usually shrinks learning curves and maintenance costs. That's usually a good deal.

    13. Re:Grammatical mutability... by Mr+Bill · · Score: 1

      You must be talking about Lingua::Romana::Perligata.

      From the docs:

      The Lingua::Romana::Perligata makes it makes it possible to write Perl programs in Latin. (If you have to ask "Why?", then the answer probably won't make any sense to you either.)
    14. Re:Grammatical mutability... by Peaker · · Score: 1
      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).

      How is Perl beautiful semantically? It is:
      • Weakly typed (Please don't confuse this with dynamically typed).
      • Defines behaviour in weird and even incorrect ways, or in other words: blissfully ignores undefined behaviours ("Hello world" + 5).
      • Has hundreds of operators to remember (Part of the reason Perl developers need to walk around with the Perl manual in their pockets..)
      • Has no proper exceptions and exception handling (And even uses return codes and "exceptions" interchangably to handle errors)
      • Lacks formal argument naming (Making automatic documentation generators much more difficult, as well as reflection lacking).
      • Awful division of the world into scalars and other types, resulting in the use of references to place some types of objects in hashes. In some cases, these references are not even properly ref-counted, and Perl's garbage collector incorrectly frees the objects prematurely (Please tell me this was fixed, I may be out of date about this one).
      • Awful syntax (but you mentioned that already)...
      • Generally putting value on the flexibility of how the program can look, rather than on readability, making the computer or human parser go through grammar forests (now extensible, yay) in order to read them.


      And dude, "lambda" in Python is just a short-cut syntax for a "def" nested function and represents no extra expressiveness, only "another way to write the same thing", which is frowned upon in the Python way.

      Python fully supports functional programming by passing around function objects, though it is rarely the most Pythonic way to do things.

      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.

      Its not enough not to force it. You need to discourage it. Or else it will be used, and it IS used. The vast majority of most Perl code out there is NOT written while avoiding all these unreadablity-enhancement features.

      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.

      Weak typing, non-uniform error handling, and lack of formal argument naming are a few things I would not call beautiful.
    15. Re:Grammatical mutability... by crucini · · Score: 1
      + Defines behaviour in weird and even incorrect ways, or in other words: blissfully ignores undefined behaviours ("Hello world" + 5).

      Perl's behavior is neither undefined nor incorrect. It's defined in the man pages - type perldoc perldata. If you think it's "incorrect" for Perl to evaluate the above as 5, which it does, what's your basis for thinking that? And do you want the behavior of C, which returns the address of the ' ' before "world" in a temporary string, or the behavior of javascript, which returns "Hello world5"?
      Has hundreds of operators to remember (Part of the reason Perl developers need to walk around with the Perl manual in their pockets..)

      Pretty much every operator in Perl that is not present in C was added to meet the needs of seasoned C programmers like Larry Wall. If you don't have powerful quoting operators, you'll have to escape quotes when embedding SQL, Postscript and HTML. If you don't have the binding operator '=~', you have to use more verbose and clumsy function calls to use regexps.
    16. Re:Grammatical mutability... by dragonman97 · · Score: 1

      I'm a Perl programmer, and I've just started to write some more serious code in Javascript...messing around with Greasemonkey. I've also had to learn and mess around with some PHP recently, which has been a horrific thing to me. A funny observation I've run into while playing with Javascript - it strikes me as being far better designed than PHP. :D

      (I'll take Perl over the lot of them any day of the week, though. :))

    17. Re:Grammatical mutability... by Peaker · · Score: 1

      Perl's behavior is neither undefined nor incorrect. It's defined in the man pages - type perldoc perldata. If you think it's "incorrect" for Perl to evaluate the above as 5, which it does, what's your basis for thinking that? And do you want the behavior of C, which returns the address of the ' ' before "world" in a temporary string, or the behavior of javascript, which returns "Hello world5"?

      I want the behaviour of Python and many other strongly-typed languages: An error.

      Pretty much every operator in Perl that is not present in C was added to meet the needs of seasoned C programmers like Larry Wall. If you don't have powerful quoting operators, you'll have to escape quotes when embedding SQL, Postscript and HTML. If you don't have the binding operator '=~', you have to use more verbose and clumsy function calls to use regexps.

      Pretty much every operator in Perl was added because the language is weakly typed, and a multitude of operators cannot be achieved by proper polymorphism of scalar types, so it is achieved by creating a whole manual of them.

    18. Re:Grammatical mutability... by fatphil · · Score: 1

      PHP is an utter abomination. It's turned into what it was trying to contrast itself against (something with the complexity of Perl). It's been designed by committee, and is now a camel with 5 humps.

      (Curious aside - did you know that the Norwegian for giraffe is literally "periscope horse"?)

      Anyway, you're dead right, JS, even though it's usually programmed by complete idiots for completely idiotic purposes, is far better designed - by competent computer linguists, than PHP.

      And I know PHP is popular (some of my contracts have been PHP, some people just seem to think the sun shines out of its back end) so I'll get flamed for the above, but fork it - I've got Karma to burn!

      --
      Also FatPhil on SoylentNews, id 863
    19. Re:Grammatical mutability... by crucini · · Score: 1
      I want the behaviour of Python and many other strongly-typed languages: An error.
      Just to clarify, you think that C, Javascript and Perl define behaviour in weird and even incorrect ways. Since none of them will return an error in that context.
      Pretty much every operator in Perl was added because the language is weakly typed, and a multitude of operators cannot be achieved by proper polymorphism of scalar types, so it is achieved by creating a whole manual of them.

      How are you going to replace the quoting operators (q, qq, qw, Leaving that aside, suppose that stronger typing enabled you to demote some operators to class methods. For example, the 'x' operator could be a method, so you write $string2 = $string1->x(50); instead of $string2 = $string1 x 50;. What's the gain? Are you concerned about pollution of the top-level namespace?
    20. Re:Grammatical mutability... by Peaker · · Score: 1

      Just to clarify, you think that C, Javascript and Perl define behaviour in weird and even incorrect ways. Since none of them will return an error in that context.

      In C, "Hello world" + 5 at least makes some sense, as "Hello world" is a pointer, and moving that pointer by 5 references " world". Its not perfect, but it is usable. "Hello world" + 5 resulting in 5 is just mind boggling.

      How are you going to replace the quoting operators (q, qq, qw, Leaving that aside, suppose that stronger typing enabled you to demote some operators to class methods. For example, the 'x' operator could be a method, so you write $string2 = $string1->x(50); instead of $string2 = $string1 x 50;. What's the gain? Are you concerned about pollution of the top-level namespace?

      No, I'd write (in Python, for instance): string2 *= 50 (The operator itself is polymorphic based on the type. operators are methods, there's no need for all the -> fancy syntax.)

      Just like you can use: string2 += "world", and my_int += 5, using the same + operator to achieve different operations based on the operated type. This polymorphism allows for a _lot_ more operations to be represented by a much smaller set of operators. Much easier to remember, too.

  16. Re:Full article text by Anonymous Coward · · Score: 0

    "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 hereby nominate Larry Wall for a Private Eye Terrorballs

  17. Cover Quote by holdp · · Score: 5, Funny

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

  18. Re:Perl? Are you kidding me? by paradizelost · · Score: 3, Interesting

    I do think you should take a look at the web pages your looking at. as far as i can tell, the .pl at the end of the page name means it's written in perl. So, is slashdot written in perl? i think so.

    --
    "In a world without walls and fences, who needs Windows and Gates?"
  19. Re:Perl? Are you kidding me? by Eravnrekaree · · Score: 0

    I have found Perl to the easiest language to both learn and use. Its syntax is logical and not difficult to grasp in my opinion.

    As far as being slow, it is probably similar to other VM languages in speed, such as Java or Python. Furthermore, Parrot will provide a JIT/AIT Just in time/ahead of time compiler which allows code to be natively executed on the CPU.

  20. duke nukem forever syndrome by Anonymous Coward · · Score: 0

    Rewrite of Perl has been in the works longer than most would like to rememer. I find it hard to believe it will ever be adopted over perl5.

  21. Re:Full article text by brpr · · Score: 0

    It's warballs, actually.

    --
    Freedom is not increased by mere diminuation of government. Anarchy is freedom for the strong and slavery for the weak.
  22. Re:Perl? Are you kidding me? by gowen · · Score: 1

    No no no. Having looked up the meaning of the .pl subscript and examined the quality of the English grammar exhibited by the editors, I'm fairly certain it means that slashdot is being operated from Poland.

    --
    Athletic Scholarships to universities make as much sense as academic scholarships to sports teams.
  23. Re:Perl? Are you kidding me? by Anonymous Coward · · Score: 0

    Sure! Perl! :)

  24. Re:Perl? Are you kidding me? by /ASCII · · Score: 1

    Yes. The fish.

    --
    Try out fish, the friendly interactive shell.
  25. Re:Real hackers use Python. by Temkin · · Score: 1


    Funny you should mention that. After meaning to for years, I finally got around to getting the "Learning Python" book... I made it to page 149 where it says "Python uses the indentation of statements under a header to group the statements in a nested block." I stopped reading and tossed the book on my bookshelf on a shelf full of unused & unloved technical manuals. It now sits between the Postscript redbook from 1990, and a late 80's book on Ada. It really belongs next to a Fortran book, but I don't own one.

    A shame too... The rest of the language is so clean.

  26. Whore by Anonymous Coward · · Score: 0

    You don't have a high user ID, so you should know that it's considered whoring to copy/paste stuff like that.

  27. Re:Perl? Are you kidding me? by jonadab · · Score: 1

    > Whilst I agree with you generally, why did you consider the CLI to be 'a cult'?
    > And to which CLI do you refer? Bash has its deficiencies and irregular syntax,
    > but I don't know of anything better. Do you?

    For an interactive CLI, there's a lot to be said for eshell.

    And for writing "shell" scripts, Perl is an obvious choice.

    --
    Cut that out, or I will ship you to Norilsk in a box.
  28. it's the community by SmallOak · · Score: 5, Informative


    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.

    1. Re:it's the community by Anonymous Coward · · Score: 0

      Try creating classes using the Glib system.

      You want to talk about cumbersome may I point you to GObject ;)

    2. Re:it's the community by SmallOak · · Score: 1

      thanks for the warning ;-)

    3. Re:it's the community by RichDice · · Score: 1
      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

    4. Re:it's the community by Lost+Found · · Score: 1

      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 wildly more comprehensive than ANY of its copies (and where it exists for other languages, they are copies - CPAN *wannabes*). Seems like a hell of a lot of maintainable code to me... and that's just a collection of utilities.

  29. Eccentric? by blair1q · · Score: 1

    Larry Wall is eccentric?

    Then I must be loony as a kookaburra.

    1. Re:Eccentric? by DataCannibal · · Score: 1

      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.

      --
      No but, yeah but, no but...
  30. Larry Wall - a linguist? by Anonymous Coward · · Score: 1, Insightful

    I hear this assertion cropping up all the time -- "Larry wall, a linguist", "with a background in linguistics", "a trained linguist" -- but haven't been able to research this further. So perhaps a fellow /.er can shed light on this question:

    Where did he receive his training in linguistics? What was this training about, what did he specialize in? Does he hold a degree in linguistics? Does he have any peer-reviewed publications on linguistics?

    I'm asking because this is mentioned nowhere. The university he calls his alma mater on his home page (Seattle Pacific University) offers courses in linguistics (in the College of Arts and Sciences, Forein Languages and Literature department), but it seems to be offered as a minor subject, not as a major.

    So: Why does Larry Wall call himself a linguist?

    Thanks for helping with this question.

    Regards, Felix.

    1. Re:Larry Wall - a linguist? by Anonymous Coward · · Score: 0
      Why does Larry Wall call himself a linguist?
      First Law of the Internet : If you keep saying something enough, it becomes true.
  31. In related news... by Billosaur · · Score: 2, Funny

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

    --
    GetOuttaMySpace - The Anti-Social Network
  32. funny? !LOL Re:Perl is a trainwreck - retire it by Anonymous Coward · · Score: 0

    Your experience must all be in a zoo of monkees. I work for a fortune 25 company with over 200K employees and we use everything. Its very odd that my experience is the exact opposite of yours - VB is a joke, no elaboration needed. And Java is the most UN-productive, cludge/rube-goldberg, resource sucking, pile of crap language there ever was. The fact is people only use Java because of the pay scale for it - period. If you are interesting in getting the job done and doing it well, you use Perl. Its faster that Java too - to buck the myth.

    1. Re:funny? !LOL Re:Perl is a trainwreck - retire it by gnuLNX · · Score: 2, Funny

      Are you having a Homer Simpson DUH!!! moment yet?

      --
      what?
    2. Re:funny? !LOL Re:Perl is a trainwreck - retire it by GuildPort · · Score: 0

      Being faster than Java isn't really something that people should have to bring up when they're talking about the virtues of their chosen programming language/platform, since just about everything is faster than Java. My grandmother has a tattoo on her ass that says "Faster than Java," but then again, she was in the adult entertainment industry. I think the guy from Wikipedia did some filming on her sets...

  33. Re:Perl? Are you kidding me? by trollable · · Score: 1

    As far as being slow, it is probably similar to other VM languages in speed, such as Java or Python.

    You're probably right, now the real question is: Java or Python.

  34. Re:Perl? Are you kidding me? by leoboiko · · Score: 1

    It looks pretty interesting. Can you enlighten me on its Unicode support (or lack thereof)? Does it get confused when running in UTF-8, or when using CJK characters? Can it count columns properly when there are "wide" characters on the line or in the prompt?

    --
    Prescriptive grammar:linguistics :: alchemy:chemistry. Stop being a nazi and learn some science.
  35. Re:Perl? Are you kidding me? by orabidoo · · Score: 1

    better than bash? sure, there's zsh. mostly compatible, too. bash might have caught up in these years though...

  36. Amazing how threatened the Java crowd is... by Anonymous Coward · · Score: 0

    ...! The biggest fear a Java programmer has is that management will find out that their inflated salaries are not worth it in terms of productivity nor quality. Its funny to see all the Java programmers attack Perl like vultures. Question to the Java zealots: Why are you so threatened by Perl and all other languages? If Java is so truly the top language of "choice", why do java programmers waste no time in attacking every other language out there?
          Word of advice: Java is India. If you are on a project that uses Java then you are going to loose your job when its farmed out to India. That's a fact. Quit living in fear of Perl and all other languages and round out your resume by "learning" something on your own, not just force fed to you by a college instructor while you slept in class with a hang-over.
          Bashing Perl is like bashing democracy. Perl is a great language and it doesn't get old. Get over it and get a life, Java zealots.

    1. Re:Amazing how threatened the Java crowd is... by Anonymous Coward · · Score: 0

      aww, that's so sad. we make a lot more $$ with java then you with perl.

    2. Re:Amazing how threatened the Java crowd is... by Anonymous Coward · · Score: 0

      Now for long India-bait.

  37. Better critics by VincenzoRomano · · Score: 2, Interesting

    It would be much better for the communities to have Larry talk about PHP and maybe Rasmus provide his thoughts about Perl.
    At least we'd get an interesting cross-flame session!

    --
    Maybe Computers will never be as intelligent as Humans.
    For sure they won't ever become so stupid. [VR-1988]
  38. Perl 6 for serious projects? by hachete · · Score: 1

    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)?

    --
    Patriotism is a virtue of the vicious
    1. Re:Perl 6 for serious projects? by Lost+Found · · Score: 2, Informative

      Perl 6 is currently a serious development project. But since you must ask, check out the first CMS written in Perl 6:

      http://search.cpan.org/~brentdax/WWW-Kontent-0.01/ WWW/Kontent.pm

    2. Re:Perl 6 for serious projects? by julesh · · Score: 1

      Who's using Perl 6 for a serious project?

      Nobody. There isn't a fully working implementation yet.

  39. Re:Real hackers use Python. by kpharmer · · Score: 4, Insightful

    > I made it to page 149 where it says "Python uses the indentation of statements under a header to group the statements in a nested block."
    > I stopped reading and tossed the book on my bookshelf on a shelf full of unused & unloved technical manuals.

    One of the best things a programmer can do is try different languages. Try lisp, sql, haskell. Play with xml and yaml. Compare J2EE to Ruby on Rails. Try a language that doesn't use ALGOL-inherited code blocks. Just like an 80s ACM article said, the single best way to evaluate a programmer is by the number of languages they're fluent in.

    At the end of the day Python's indentation causes a few programs, but seems to solve more. It makes it hard to share source code via email. It rules out the use of tabs. I can live with those limits. On the flip side it helps reinforce readable code. That's a very good thing - and consistent with the fundamental philosophy of the lanuage: the code must be easy to maintain.

    But if you really can't get your head around that, then try Ruby. Like Python it's a well-designed, easily maintained language with a great community and future.

  40. Re:Real hackers use Python. by treerex · · Score: 1

    Funny you should mention that. After meaning to for years, I finally got around to getting the "Learning Python" book... I made it to page 149 where it says "Python uses the indentation of statements under a header to group the statements in a nested block." I stopped reading and tossed the book on my bookshelf on a shelf full of unused & unloved technical manuals.

    This is such a naive and stupid statement. Avoiding a language because block structure is dealt with via indentation instead of {}s? People repeatedly use this as an argument against Python. "Oh, it's got a great library, excellent documentation, responsive community. Oh, it uses indentation for block structure? Never mind." Just dumb.

    What exactly is the problem?

  41. Re:Real hackers use Python. by hashmap · · Score: 1

    Python uses the indentation of statements under a header to group the statements in a nested block.

    haha, never mind that this is exactly how your code should be indented in the first place....

  42. Re:Real hackers use Python. by Viol8 · · Score: 1

    "Python uses the indentation of statements under a header to group the statements in a nested block."

    A language called Occam (used on a long since forgotten late 80s parallel
    CPU called a Transputer) did the same and was derided for the same
    reason. Funny how some people never learn.

  43. Re:Real hackers use Python. by Anonymous Coward · · Score: 0

    The enforced indentation in Python is what makes the code readable! Anyone's code, everyone's code. Exactly the opposite situation of the crufty Perl. Unless you're one of those programmers that relies on obfuscated code as some sort of twisted employment security program, this is nothing but a good thing.

  44. Re:Real hackers use Python. by Anonymous Coward · · Score: 0

    What a shame. When I began writing Python code, it only took me about 10 minutes to realize that I had been indenting anyway so brackets were wasting my time and cluttering my code. Try it before you knock it.

  45. Then use perl persistently... by Etcetera · · Score: 2, Informative


    Perl is compiled every time you run a Perl program. It causes an annoying slowdown in my programs.

    It doesn't have to be... you should look into SpeedyCGI/PersistentPerl or even PPerl. I use the former for various web cgi's that are hit constantly (including one framework where all hits are rewritten to execute a single index.pl script) as well as for various scripts that need to execute very quickly as part of a qmail/vpopmail shell chain.

    As long as it's already use strict compliant, neither of these options require any changes to your code (unlike mod_perl), but should give you a significant increase in speed... for exactly the reason you specified.

    In fact, when you remove compilation from the equation, I've seen well-written perl code that executes faster than almost any other language... (your opcodes are basically boiling down to C anyway).

    Of course for CGI-only usage you can use mod_perl, but that does bring in some added complexity. The solutions above work from the command line as well, and require nothing more than a shebang line change.

  46. I take it then... by Urusai · · Score: 1

    ...that he favors the "cathedral" model.

    Perl--APL for a new generation of dyslexics!

  47. Re:Perl? Are you kidding me? by Anonymous Coward · · Score: 0

    I used chop() just the other day. Needed to remove the last character of a string, that is what chop() is for.

  48. Perl: love it and hate it... by FellowConspirator · · Score: 2, Interesting

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

  49. Perl 6 by Sheepdot · · Score: 1

    Does anyone know if programming actually started in 2000 for this? It seems like Perl 6 has been in development for forever.

    1. Re:Perl 6 by ChrisDolan · · Score: 1

      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

    2. Re:Perl 6 by Anonymous Coward · · Score: 1, Insightful

      And Mozilla is so enormously more complex than Perl 6 and Parrot combined that it's almost hilarious that you mention it.

  50. Re:Perl? Are you kidding me? by sk8king · · Score: 1

    That is the way I feel about the MySQL posts that are present in every MySQL thread present on Slashdot. Only listing the reasons it sucks, nothing representing how popular it is regardless of these suck-alicious reasons.

  51. APL was easy to understand by Anonymous Coward · · Score: 0

    A Programming Language, APL was easy to understand. If you needed to modify code, it was easier to rewrite if from scratch. It was a write-once language.

    x=%$^3(6+=)45/7*4!

    Answer x=89

    It's easy to understand, just like Perl. Seriously, I wrote an entire database application for a diabetes research project in just 75 lines, it equalled any gigabyte Windows app.

  52. Re:Perl? Are you kidding me? by Fahrenheit+450 · · Score: 1

    as far as i can tell, the .pl at the end of the page name means it's written in perl.

    Or prolog.

    --
    -30-
  53. Re:Real hackers use Python. by Anonymous Coward · · Score: 0

    Do you also cry when other languages require you to end a statement with a semicolon? Help, help, I'm being repressed!

  54. Re:planning to move from Perl 5.8 by Lost+Found · · Score: 1

    Suit yourself. I've found that over 90% of the people who publically state that they've migrated from Perl to Ruby or Python or PHP were drawn in by features of those languages that they *thought* Perl didn't have. Some of them are rather shocked when you show them just what they've left behind. And each one of those languages has borrowed a lot from Perl anyway (hell, PHP used to be *implemented* in Perl).

    Use whatever language suits you best.

    Personally, I don't fully agree with Larry about one thing - I have yet to see Perl 5 hit any serious limits. The only way I see Perl 5 hitting any limits is in the fact that us Perl people want to go orders of magnitude more insane than we ever were before, and we simply need to re-invent programming once again to do it.

    Until Perl 6 hits, I'll happily continue producing mod_perl portals that will smoke the competition in performance, security and robustness. When Perl 6 hits, well, we'll have a nice party on our hands :)

  55. how will extensions work? by CoughDropAddict · · Score: 2, Interesting

    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.

    1. Re:how will extensions work? by Abcd1234 · · Score: 2, Informative

      Umm... that already exists in the form of Parrot's NCI, or Native Call Interface. It's been used to bind, among other things, SDL to Parrot.

  56. Re:planning to move from Perl 5.8 by DevoPhl · · Score: 1

    I think this is the real point!! I see this move all over the place. Perl is passe today with most new scripted code being written in Python and PHP. Many developers want the structure and OO design of these languages. Perl has lacked that in a strict sense. I love to program in Perl but I see its days numbered. I too am migrating to Python and PHP. Its not because I hate Perl but the need to have something more like Java and C++ is limiting my use of Perl. I see the move to Perl 6 being about 4 years too late. Perl 6 should have come out in 2002... a language with a better grasp of OO programming. But Perl 6 even today seems to be more vaporware than a real language. When will we really see a full Perl 6 implementation. It looks like Pug is still a couple of years away from being mainstream?? By that time, anyone who will need the functionality of Perl 6 will have already moved on to another language.

  57. Re:Real hackers use Python. by Shoeler · · Score: 1

    I dunno - I've used both Python and PERL and am an avid PERL user. I find that with good practices ( create both { and } in series then insert properly indented code inbetween ), the presence of {} around code snippets allows for EASY debugging. I just couldn't get used to the indention FORCING marriage to a block of code. As has been stated before, proper programming techniques means you're already indenting code with nested loops, but what about the ol' copy-paste from a block one level deeper that would throw everything off. I'm not talking about a situation where a subroutine should be used either - I'm talking about "Oh I remember coding that for xyz project - I'll just swipe 80% of that code and insert the rest for my current project".

  58. Re:Real hackers use Python. by julesh · · Score: 3, Interesting

    I made it to page 149 where it says "Python uses the indentation of statements under a header to group the statements in a nested block." I stopped reading and tossed the book on my bookshelf on a shelf full of unused & unloved technical manuals.

    Hold on... it gets to page 149 before pointing out the most important thing to be aware of in the language's syntax? That's a terrible book. Get another one.

    Seriously, though, I was put off Python for a long time for the same reason. I've used whitespace-significant languages before (COBOL, and a functional language called Miranda) and had no end of trouble with indentation issues. But when I tried Python, it just worked, flawlessly. I've never had an issue because of indentation. The language works, it's easy to write, and programs are easier to read due to the lack of excess symbols. The syntax is very clean and readable.

  59. I migrated from Perl 5.8 by metamatic · · Score: 1
    I've found that over 90% of the people who publically state that they've migrated from Perl to Ruby or Python or PHP were drawn in by features of those languages that they *thought* Perl didn't have.

    Not me. I migrated (to Ruby) after years of using Perl because Perl's syntax is so horrible and complicated that I never managed to learn a lot of the important features I knew Perl had--like the ability to do object-oriented programming.

    Ruby has much simpler syntax and scoping. That means it gets out of the way and lets me write code. I know that everything I write could be done in Perl, and I don't care.

    I also know that Perl has things Ruby lacks. But they're things I don't need that just make the language uglier and more complicated. I don't need three or four different ways to pass parameters to a function. There's a point at which "There's more than one way to do it" becomes pathological and bad for the language. It became clear from Larry's writings that Perl 6 was going to have even more syntactic complexity, so I decided it was time to leave.

    --
    GCHQ Quantum Insert installed. If only our tongues were made of glass, how much more careful we would be when we speak
    1. Re:I migrated from Perl 5.8 by Lost+Found · · Score: 2, Insightful

      Fair enough. I've tried to learn Ruby so I'm not a dolt... but the syntax, to me, is downright offensive.

      It's sad that people have trouble with Perl's syntax because hiding behind the scary surface is a brilliant sort of orderly chaos that's unlike any language I've ever used. In terms of Perl, as a language, I think I've begun to enter a class of 'Perl Mastery', and there are still things I find out about every now and then that the language does that are just utterly fantastic.

      It is possible to write clean and understandable Perl code. What it takes is simply clean and understandable programming. A guy once told me, referring to Java, "You can take shitty programmers and put them in the language, and despite all of its efforts to stop them, they will write shitty code." Most people writing Perl are still basically writing C code... and that's when you really do miss what Perl has to offer.

    2. Re:I migrated from Perl 5.8 by Fahrenheit+450 · · Score: 1

      It's sad that people have trouble with Perl's syntax because hiding behind the scary surface is a brilliant sort of orderly chaos that's unlike any language I've ever used. In terms of Perl, as a language, I think I've begun to enter a class of 'Perl Mastery', and there are still things I find out about every now and then that the language does that are just utterly fantastic.

      Yeah, and crazy people can find god in a bus station bathroom...

      Hey, you like and admire Perl, you've achieved some sort of zen oneness with the slop. That's great. That doesn't mean it's not a messy language for most of the rest of the world. I just wonder what things would look like if a language like Haskell were used by a respectable fraction of the number of Perl users. Cripes there's only like 14* people in the world using it, and they've done some pretty amazing things, I wonder what the teeming millions would be able to put out...

      * Yeah, yeah, I know. But a little hyperbole never killed anyone.

      --
      -30-
    3. Re:I migrated from Perl 5.8 by Lost+Found · · Score: 1

      Say what you want about the rest of the world, but I think what people like you (not meaning "people like you" as an attack) don't always see is that there is a simply *insane* number of Perl programmers and Perl programs.

      If the language is so rotten, why do you think that it's so incredibly popular?
      Why is it so *wildly* portable (even moreso than Java)?
      Why do huge sites like Amazon.com and Ticketmaster.com and Slashdot.org rely on it for their core business?
      What other language with humble beginnings found its way into, well, everything?
      Why does every other language feel it necessary to *copy* Perl Regular Expressions - perhaps the *ugliest* part about Perl?

    4. Re:I migrated from Perl 5.8 by Fahrenheit+450 · · Score: 1

      I think what people like you (not meaning "people like you" as an attack) don't always see is that there is a simply *insane* number of Perl programmers and Perl programs.

      Don't see it? What do you think I was alluding to in my respectable fraction comment? Or my teeming millions?

      If the language is so rotten, why do you think that it's so incredibly popular?

      a: I never said it was rotten, I said it was a mess.
      b: Why is McDonald's so popular. They're not exactly haute cuisine, you know... Why is the top 40 so often populated with crap? Popular <> good.
      c: I can't say exactly why it's so popular, and my knowledge of its history is pretty fuzzy, but here are a few of my guesses:
      It started out by making a lot of stupid, annoying things easier to do, and it was less of a pain and more flexible than, say awk. Plus, it had a syntax that was pretty Algol-ish, so the inherently lazy programmers didn't have to think too hard. So people started using it and sharing scripts.

      Then Perl started being used for cgi stuff. It became really popular for cgi. So popular, that pretty much every book that covers cgi covered it from a purely Perl-centric angle. In fact, they never even mentioned that you could use something other than Perl to do your scripting. On top of this, a lot of web hosts only really made Perl available for the scripting environment. Thus, a bunch of folk who wanted to do "fun stuff" with their web pages felt like they *had* to learn Perl. So they did. This lead to another wave of folk learning perl, writing, and sharing scripts.

      Eventually, some sort of critical mass is reached where, when deciding to start a project, and deciding what language to use, one sees that there's a lot of stuff out there already written in Perl, so they decide to use Perl, grab some existing modules, and then perhaps toss anything new they write back into the communal pile. Once you reach that critical mass, the language can really take off -- like Perl did. But to reach that mass it helps if there's some external factor pushing the language. For Java it was Sun, for Perl it was cgi and the blossoming of the web, for Ruby it looks like Rails might kick its growth into high gear...

      Why is it so *wildly* portable (even moreso than Java)?

      Because there's one implementation?

      Why do huge sites like Amazon.com and Ticketmaster.com and Slashdot.org rely on it for their core business?

      Availability of programmers to do the work. Plus once they settled on Perl they were more or less locked in. No one wants to pay for a rewrite of a system, especially a large system. Why do you think there's so many lines of COBOL still running?

      What other language with humble beginnings found its way into, well, everything?

      C

      Why does every other language feel it necessary to *copy* Perl Regular Expressions - perhaps the *ugliest* part about Perl?

      That's easy. They're more compact than using a full-on lexer/parser combo which can be overkill if you just want to tear apart a string. Plus, I'd guess that most people consider them easier to learn than some variant of lex/yacc (which probably led to their overuse). On top of that, we have the fact that Perl did become popular, and a lot of Perl code used regexes, therefore Perl regexes were popular. It seems to me that something like the monadic parser combinators that have become popular in Haskell are a much nicer approach. But again, it's not as compact as Perl regexes, so who knows if they'll take off (despite being orders of magnitude more readible).

      --
      -30-
    5. Re:I migrated from Perl 5.8 by metamatic · · Score: 1
      If the language is so rotten, why do you think that it's so incredibly popular?

      It has had longer to get popular. At the time I learnt Perl, it was the only decent multi-platform scripting language. However, that doesn't mean it's any good compared to the alternatives available now.

      Why is it so *wildly* portable (even moreso than Java)?

      Careful programming. I'm not denying that the C source code of Perl itself is well-written code.

      Why do huge sites like Amazon.com and Ticketmaster.com and Slashdot.org rely on it for their core business?

      Again, historical reasons. But we're even starting to see people moving from Perl and PHP to Ruby on Rails. (e.g. cdbaby.com)

      What other language with humble beginnings found its way into, well, everything?

      BASIC and C. BASIC is in everything from single-chip microcontrollers to groupware systems and web browsers; C is available on practically every hardware platform known to man, even in cut-down form for LEGO.

      Why does every other language feel it necessary to *copy* Perl Regular Expressions

      Same reason Perl felt it necessary to *copy* regular expressions from awk. They're damn useful.

      Secondly, because the PCRE package provides a good, fast, free, open source implementation, written by someone who actually knows how to write good secure code. So rather than reinvent that unpleasant wheel, lots of projects just use PCRE as their regex engine, and 'accidentally' get Perl 5 regex features.

      But for what it's worth, Ruby doesn't have all the Perl regex functionality exposed, and provides a nicer object-oriented API for match results.

      And I don't see anyone rushing to implement all the new syntax of Perl 6 regexes.

      --
      GCHQ Quantum Insert installed. If only our tongues were made of glass, how much more careful we would be when we speak
    6. Re:I migrated from Perl 5.8 by penguin-collective · · Score: 1

      Why is it so *wildly* portable (even moreso than Java)?

      That's simple: it was the first of the full-fledged UNIX scripting languages. Before Perl, there was only shell+awk. All the other scripting languages arrived several years later. The fact that Python, Ruby, and PHP have become as popular as they have, despite the existence of Perl, is, in fact, a strong indication that Perl has deep technological problems.

  60. Re:Real hackers use Python. by Anonymous Coward · · Score: 0

    You can use tabs for whitespace in Python code, you just get into trouble if you try to mix tabs and spaces in the same file. It counts one tab and one space as the same thing, so things won't look correctly indented visually (if your editor shows a tab as four spaces wide).

    Just use one or the other and don't mix them.

  61. Re:Real hackers use Python. by metamatic · · Score: 1

    Same here. Try Ruby.

    --
    GCHQ Quantum Insert installed. If only our tongues were made of glass, how much more careful we would be when we speak
  62. Re:Perl? Are you kidding me? by Kevin+DeGraaf · · Score: 1

    why did you consider the CLI to be 'a cult'?

    Because he's probably a clicky-widget M$ admin who doesn't understand the power of a straightforward, low-level *programmatic* interface to everything on the system. Nothing to see, move along.

    --
    We have more to fear from the bungling of the incompetent than from the machinations of the wicked.
  63. Re:Real hackers use Python. by orcrist · · Score: 1

    Well, for one: it makes communicating about the language difficult, e.g copying and pasting examples from html, web forums, e-mails, etc.

    Because: One of the paradigms of computing (particularly in the Internet era) is that white-space is semantically/syntactically insignificant. Many programs and protocols ignore the amount of white-space in text, or at least just treat it as a delimiter. That fact alone means Python code doesn't play nice with that stuff. Sure you can have forum software which allows for formatted code and such, but that's not the point. Why did Python have to break such a well-established paradigm? White space is to delimit syntactic/semantic elements... it shouldn't *be* one.

    That said, I am in fact learning Python now (partly because of Civ IV ;-), partly because I think it's a good a idea to expand my programming language repertoire) but that doesn't change the fact that it was a bone-headed decision to make indenting syntactically significant. If Guido considered that so important, he could have just made it a syntax-error... but then still use braces for the delimiting. Heck, for all I care, the python interpreter could then re-indent it *for* you. But, to put such important information into the one class of characters which:
    - html *ignores*
    - diff has an option to *ignore*
    - most editors have an option to *convert* (tab to spaces, etc.)
    - etc, ad nauseam.

    well... you get the point. Right?

    -chris

    --
    San Francisco values: compassion, tolerance, respect, intelligence
  64. Re:Real hackers use Python. by simon_hibbs2 · · Score: 1

    I'd usualy end up fixing the indentation in any other language anyway. IDLE (the default/most common Python code editor) includes very convenient tools for altering the indentation of selected text, and in fact most programmers editors have these anyway. For me, it's no big deal. Simon

  65. Re:Real hackers use Python. by simon_hibbs2 · · Score: 3, Insightful

    An interesting post for those of us interested in your personal biases, but since you didn't actualy try it out, we have no idea whether you would actualy have found it useful or easy to adapt to. I have to admit I came across discussions and introductions to Python several years before I actualy tried it out and the whitespace issue did put me off. I immagined it would be awkward to use and would overly complicate code editing. I was wrong. In practice I found it wasn't. Instead it makes the code so much cleaner and easier to read. You might have found the same thing, and you might not, but we'll never know. Simon Hibbs

  66. Duke Nukem Forver by Anonymous Coward · · Score: 0

    So when does Perl 6 comes?
    And which will come first, Duke Nukem Forever or Perl 6?

  67. Perl6 = sendmail.cf? by amightywind · · Score: 0, Redundant

    Nevertheless, there were many ways in which Perl 5 was running into its limits, and these were both syntactic limits and semantic limits.

    This is so misguided. I take this to mean that Perl6 syntax will be even more of a carnival of confusion than Perl5. Will Perl6 replace sendmail.cf as the most vile grammer yet devised? Maybe, but more likely it is so complex that it will never be released. Can you say Hurd?

    --
    an ill wind that blows no good
  68. Re:Real hackers use Python. by Coryoth · · Score: 1

    You can use tabs for whitespace in Python code, you just get into trouble if you try to mix tabs and spaces in the same file. It counts one tab and one space as the same thing, so things won't look correctly indented visually (if your editor shows a tab as four spaces wide).

    In practice you just use a decent editor with a Python mode/plugin and hit tab. The editor indents and converts the tabs to spaces but, usefully, has smart backspacing that eats a tabs worth of spaces when closing a block (and in many editors conveniently tells you which block you are closing in the minibuffer or equivalent). That combined with automatic indenting on newline means that, for the most part, you never have to concern yourself with indenting any more than you would when writing properly formatted C, Perl, or Java code.

    Jedidiah.

  69. Oh, come on. How could the submitter miss this? by ahem · · Score: 0
    -1 Offtopic

    When you are going to serve up a fat, slow pitch right across the plate, how can you not follow up and knock it out of the park?

    Nate writes "Linux Format magazine has an interview with Larry Wall, the eccentric linguist and coder behind Perl. ...
    s/eccentric/cunning/

    Duh.

    --
    Not A Sig
  70. Plagiarism much? by daVinci1980 · · Score: 4, Informative

    You know, if you're going to steal an article, verbatim, from wikipedia.org, the least you could do is cite a reference to it.

    But in the future, maybe you should just post a link to the article instead.

    -1, Plagiarised for you.

    --
    I currently have no clever signature witicism to add here.
  71. Re:Real hackers use Python. by Coryoth · · Score: 2, Insightful

    ...but what about the ol' copy-paste from a block one level deeper that would throw everything off.

    Any editor worth its salt has a python mode/plugin, and in that there are convenient functions for "shift left" and "shift right" which will move the selected text one indentation level left or right. Cut and paste your code, then just shift it to the indentation level required. It really isn't that hard.

    Jedidiah.

  72. The most telling quote by rewt66 · · Score: 1

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

  73. Great Idea, someone said there was a fuuny part to by Anonymous Coward · · Score: 0

    I looked but could not find it

    Bill G

  74. O'Reilly Head First lineup by Qbertino · · Score: 1

    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 First Java" and "Head First Design Patterns". And bought them right away. I must say that the "Head First" Line takes the O'Reilly fullfilment of quality to a whole new level. These books are absolutely awesome and would have saved me *years* of grocking the concepts of OO and Patterns, if they only had been there earlier.

    Why there is some stuff that looks like O'Reilly jumping on the lesser quality "Dummy" type of textbook with some current german titels in order to up the throughput that is absolutely not the case with the "Head First" series. They are by far the best guided training books ever and truly redefine that type of book.

    --
    We suffer more in our imagination than in reality. - Seneca
  75. Re:Real hackers use Python. by Temkin · · Score: 1

    haha, never mind that this is exactly how your code should be indented in the first place....



    I'm not going to disagree. I just don't need the associated misbehavior that comes along with it if I fail to indent things right. Copy/Paste mistake, or similar and you have problems. Most of the major languages have chosen to ignore the significance of whitespace. It's a substantial mindset to relearn.

    We're talking about a scripting language. Development speed is important to me, and I don't need my scripting language being needlessly pedantic because I cut and pasted an old section of code. Is this a form of laziness? Yes, absolutely. Is it wrong? My CPU's don't seem to have an opinion, it's all 1's and 0's to them.

    I have a choice of several dozen languages to choose from. Why pick one that would annoy me? YMMV.
  76. That's what he says. by Estanislao+Mart�nez · · Score: 1
    IIRC, he and his wife were preparing to go out as missionaries back in the late 1970s, and to that effect, he studied linguistics, and was involved with the Summer Institute of Linguistics. He got sick, had to go into computer work instead. I don't think he's ever published any work in linguistics, or even presented at a linguistics conference--at least I never found any record of such when I searched the field's databases. And frankly, whenever he does invoke his knowledge of linguistics, it strikes me that he knows no more than a lot of amateur linguistics enthusiasts out there--which is more than the average person, but not a lot.

    My take on it is that it's a pretty transparent situation--what he really wanted to be was a missionary linguist, and he never got to be that, but it's still important enough to his self-identity that he mentions it left and right. I find the whole thing a little bit dodgy, but way less so than ESR's practice of calling himself an "anthropologist" (or more precisely, "an observer-participant anthropologist in the Internet hacker culture"), which in his case I think most accurately translates as "a fraud."

    Anyway, here's the lesson, kids: calling yourself fancy titles that other people haven't given you tends to mess up your reputation among those in the know.

    1. Re:That's what he says. by Anonymous Coward · · Score: 0

      em!

      I thought you were in jail, man. The whole thing sucks, dude - I thought that chick was hot as fuck too.

      -af

  77. LISP-like by Anonymous Coward · · Score: 0

    Most people that malign Perl simply are not able to understand it's power - not the expressiveness of it's syntax (which takes no time to master), but the expressiveness of the language itself.

    Some unmatched strengths:
    Support of multiple paradigms, object-oriented and functional
    Duck typing
    Ability to mix data and code (A travesty like Java annotations is simply and consistently expressed in Perl)

    If you don't understand why these are invaluable, then in my opinion you are a garden-variety vocational programmer.

    All you need are lists and functions as first class objects.

    1. Re:LISP-like by GuildPort · · Score: 0
      Most people that malign Perl simply are not able to understand it's power - not the expressiveness of it's syntax (which takes no time to master), but the expressiveness of the language itself.
      Most people that malign English simply are not able to understand its power - not the expressiveness of its syntax (which takes no time to master), but the expressiveness of the language itself.

      Oh come on. It's funny.
  78. Re:Real hackers use Python. by Temkin · · Score: 1



    I got to work with INMOS Transputers back in 1988. Been trying to forget them ever since. :)

  79. Re:Learning Curves... by ctilmes · · Score: 1

    I've had enough of tools that optimize the first 10% of the learning curve to get a gentle curve, but plateau with a much higher ongoing cost for the other 90% of its lifetime...

    I'm willing to put in the effort of a steep learning curve to get a better tool for the 90% I spend so much time in.

  80. Flawlessly? by Szplug · · Score: 1

    I used to hate it, but now grudgingly think it's ok, I've used it for work for the last 6 months.

    But, I've definitely had problems because of the indentation. Add or remove an if or a loop, and, if your code is complex, it's easy to miss-indent, and of course, it matters. Plus, don't get me started on the very few places Python allows breaking a statement across lines (c'mon, the interpreter can't see a trailing '.' as a hint that it needs to keep going?).

    Luckily as I've started programming more functionally (thus compactly, & with more parentheses & fewer ifs & loops) the indentation problem has pretty much gone away, but it /has/ bitten me a couple times.

    --
    Someday we'll all be negroes
    1. Re:Flawlessly? by Abcd1234 · · Score: 1

      So... you've avoided the problems caused by significant indentation by... avoiding indenting. LOL. :)

  81. What about ruby? by goombah99 · · Score: 0, Troll

    Isn't ruby the modern successor to perl and not perl 6? Why will perl 6 be better?

    I'd also like to take a pot shot at python. My feeling about python is that python is a much better programming language than perl for SOPHISTICATED programs. But in general perl is actually a more cleverly conceived langauge with far more available power. Many of the criticism people lay on perl in comparing it to python are either naive or an artifact of python's youth and thus lack of cruft. The latter is changing as python matures.

    Here's examples of what I mean by naive criticisms: Two things I think standard newbie criticism of python and perl get exactly wrong are whitespace and variable prefixes ($@%#\).

    Pythns white space it truly annoying at first. Then you begin to see why it's such a fantastic innovation. Sure every good program has a good set of indenting rules. The trouble is despite being good, they are different. It's hard to read someone elses code with precision. With python, everyone follows the exact same rules. I can easily scan any code I find and follow the scopes, even across pages on the screen. It's truly effective in practice and one of the best things about the language.

    Perl is said to rely too heavily on symbols like $,%,@ that coders think are unnessecary and dispensed with in python. Wrong. If you actually do the count you will find that python has more special gramatical signals than python! really, try counts. lets see just to name a few there's : and () and [] and {} and @ and 'r' and ',' ... anyhow when you are done you find there are more than in perl. Worse they are used ambiguously unlike in perl. For example the use of [] in perl only means an array lookup and someone reading the code can tell this. Not true in python. Likewise for () and ',' which have both passive uses as separators and active uses as gramatical modifiers. IN perl these have one meaning.

    In perl I can visually distinguish verbs and nouns (functions, commands and variables) by their clear prefix declarations.

    Part of pythons cleanlyness comes from syntactic sugar. but under the hood it's objects are implemented the same way that perl's objects are: hashes (dir dict) or pseudo-hashes(slots) are
    and part of it's cleanliness comes form missing functionality: for example: references in perl that are lacking in python. e.g.
          for $i (@e) { $i +=1 } # $i is a pointer into @e's memory
          for i in e: i = i+1 # this code does nothing at all since i is not a pointer.

    As python matures and more and more idiomatic expressions enter (like generators expressions, or list iterators) or hash methods get extended ( .get() has defaults added to it) things get complicated and less clean.

    Perl has be criticized on this account since some of it's functions canvary depending on how they are called (e.g. split), and you have to memorize the forms. but as python iterates these same inconsistencies creep into it.
    for example, some things in python produce R-values and some do not but you can't know except by memorization (.sort and .rtrim for example). Ruby solve this nicely in a perlish fashion by introducing the character ! to differentiate in-place and r-value operations.
    In python sometimes things are short circuit expressions and sometimes they are not. for example .get() with a default actually evaluates the default value if it's a function rather than short circuiting it. On the other hand the "or" function does short circuit the evaluation when the right hand term will not be used.

    So anyhow I'm not saying python is a bad language. I use it and love it. I'm saying that it gets a bad rap from people who can't think in perl. So don't flame me on that account.

    Ruby seems so clean up the complains people have about perl while preserving it's advantages over python. so why do we need perl 6?

    --
    Some drink at the fountain of knowledge. Others just gargle.
    1. Re:What about ruby? by Anonymous Coward · · Score: 0

      I'll probably be tarred and feathered for this...I'm gonna nominate it for the Wired Vaporware of the Year '05 award.

    2. Re:What about ruby? by DrSkwid · · Score: 1

      e = [i + 1 for i in e]

      --
      There are places where the networks are not touching,and there are places where they are-Boeing's Lori Gunter
    3. Re:What about ruby? by goombah99 · · Score: 1

      e = [i + 1 for i in e]

      That's just syntactic sugar for a memory copy, it's not a reference or pointer.
      when you execute this it creates a new array (not-inplace) the same size as e. fills it. then when done garbage collects the old array held by e (if nothing else is holding it).

          Sure it's compact and idiomatic but it is resource intensive and wasteful. It would not even work if e were sufficiently large. And you can't do anything sophisticated with it. in the case of perl it's a pointer not a copy.

      for example:

      @e = (0..9);
      $ref_to_e = \@e;
      print "$e[3] is the same as $ref_to_e->[3]";
      for $i (@e) { $i +=1 };
      print "$e[3] is the still the same as $ref_to_e->[3]";

      note that $ref_to_e still points to e.

      now try this in python:

      e = range(10)
      r = e
      print e[3],r[3]
      e = [i+1 for i in e]
      print e[3],r[3]

      oops r and e are different memory

      --
      Some drink at the fountain of knowledge. Others just gargle.
    4. Re:What about ruby? by WilliamSChips · · Score: 1

      Unlike in Haskell, in Python you can use expressions with side-effects in list comprehensions.(unforunately, you have to encapsulate them in a function, but the need to do this is rare)

      Code:

      def incr(e,i): e[i] = e[i] + 1

      [incr(e, i) for i in range(len(e))]

      (note that you'll have to put an extra line after the def statement if you're in the REPL, because of the way it does the whitespace blocks)

      It works! Now if you need reference semantics(i.e. make an immutable object like a mutable one), you can use a singleton list--not the best, but the need for reference semantics in Python are rare, since the only immutables that could possibly take up much memory are strings and tuples containing such.

      --
      Please, for the good of Humanity, vote Obama.
    5. Re:What about ruby? by goombah99 · · Score: 1

      So now you have created an obsure bit of code that gratuitously does two index lookups, a function call, and allocates twice the memory. This is even worse than the last.

      --
      Some drink at the fountain of knowledge. Others just gargle.
    6. Re:What about ruby? by WilliamSChips · · Score: 1

      I can get rid of the first and third by replacing e[i]=e[i]+1 with e[i]+=1 and range(len(e)) with xrange(len(e)), respectively. The function call can be removed by using a for loop:
      for i in range(len(e)): e[i]+=1
      (don't forget to type Enter in twice if using the REPL--something I haven't seen in Perl, at least not Perl proper)
      Although that's a contrived example. And most of the stuff you need references for in Perl(making lists and hashes into scalars so you can put them into lists and hashes--at least that's what I saw as a use for them in some "Debunking Perl Myths" site) you don't need them for in Python.

      --
      Please, for the good of Humanity, vote Obama.
    7. Re:What about ruby? by Anonymous Coward · · Score: 0

      well yes of course, that is how you have to do it. But now you cant pass e[i] into a function which modifies it (and have e[i] actually altered) because you are passing by value not by reference. To accomplish that you need to pass in both e and i and have the function index e[i] every time it uses it. Which of course may not have been how the function was written, or you have to have mulitple versions of every function that has side effects: one for arrays, dicts, scalars that you have to pass the oject plus key/index into. In short stand on your head.

      As for containership in python and perl. it's the same under the hood. python and perl both have one-d containers. In perl you are not making a hash into a reference but rather simply accessing the existing handle to the hash when you prefix it with \. you could imagine that the python equivalent would be to have two methods added to all objects and intrinsics that had names like object.pass_by_value object.pass_by_reference to access either the value or referenece the object. That's what perl does with \.

  82. Re:Real hackers use Python. by Temkin · · Score: 1



    Ruby is on the list. I'm not into web development though, so I'm still trying to sort out the relevance. I do systems QA development, and Perl works fine, but the OOP stuff bothers me. It works... But there's just something not right about it.

  83. linux rag doesn't rendor correctly on firefox? by Dummies102 · · Score: 1

    I'm not sure if it's ironic or just odd that I can't get that page to load correctly on firefox, while ie handles it like it should

    1. Re:linux rag doesn't rendor correctly on firefox? by v3xt0r · · Score: 0

      you must be running windows! =p

      --
      the only permanence in existence, is the impermanence of existence.
  84. Perl version should never pass 2*Pi by wysiwia · · Score: 0

    When Perl6 was defined and Larry ask developers about their wishes, one wish was Perl version should never pass 2*Pi Amazing when you look now at the reluctance how developers switch to Perl6 and still stick with Perl5.x Larry might fulfill this wish in a way nobody expected. O. Wyss

    --
    See http://wyoguide.sf.net/papers/Cross-platform.html
  85. Re:Real hackers use Python. by handslikesnakes · · Score: 1

    What does Ruby have to do with web development? I suspect you think there's some connection there because of the popularity of Rails, but it's not the case.

  86. Re:Real hackers use Python. by Temkin · · Score: 1



    Which is what I suspected... But I haven't had to time to sit down and figure out for myself.

    More importantly though, most of my coding would be best described as "system management" scripting. Automated install and configuration of large applications. Some languages are better at this than others. Perl is excelent, but I'd like something with ground up OOP support. I haven't had time to learn Ruby, so I don't know if it meets my needs. Everyone fawns over Rails for web development, which I'm simply not interested in.

    Python would appear to have most of what I need, but it also appears that GVR wants to enforce his view of what is "correct" on the rest of us via whitespace significance. I'm probably getting old and cranky, but I don't feel like I need to have my hand held like this, and I certainly don't need the aggrivaiton that comes with it when trying to debug something.

  87. Re:Real hackers use Python. by Anonymous Coward · · Score: 0

    If you write code with insignificant whitespace, then you write unreadable code. No one on a web forum or receiving an e-mail wishes to receive a bunch of unindented code. So what is your argument, that when you use explicit nested scope delimiters, I get to run your unindented code through a pretty printer in order to read it?
    That's a great idea. That's way better than preserving indentation.

    Where is it exactly that you distribute all of this code without indentation, again? Nowhere, right?

  88. Re:Perl? Are you kidding me? by VGPowerlord · · Score: 1
    Because he's probably a clicky-widget M$ admin who doesn't understand the power of a straightforward, low-level *programmatic* interface to everything on the system. Nothing to see, move along.

    The scariest part is, Windows Vista is supposed to expose a bunch of new interfaces in its new command shell (MSH). What will all those MS admins do, then?

    --
    GLaDOS for President 2016! "Well here we are again. It's always such a pleasure." -- GLaDOS, 2011
  89. Re:Learning Curves... by Anonymous Coward · · Score: 0

    My own experience with perl is that most users never use the functionality that's readily available in the "first 10%" of a simpler language like Python. If and when they make the effort to do something complicated in perl, it has a clunky, bolted-on feel and therefore is not quite equivalent to perl's alternatives. (OO programming is one example.) I think perl tries to do too many things beyond being the best "unix chainsaw," does few of them well. I like a lot of things about perl but I am reluctant to invest to much time in a language that seems to be morphing out of control with creeping featurism.

  90. Re:Real hackers use Python. by treerex · · Score: 1

    Well, for one: it makes communicating about the language difficult, e.g copying and pasting examples from html, web forums, e-mails, etc.

    If your conclusions about programming language are based primarily on how easily you can cut-n-paste code samples from rich-text email and HTML (outside of <pre> elements) then you need to step back and think about your career, IMHO. And it easy enough to reformat a code block if you have a decent editor: the Emacs Python mode makes such reformatting quite straight forward. The Python interpreter can't do this for you: indentation implies semantics, and you do not want the interpreter doing this.

    • html *ignores*
    • diff has an option to *ignore*
    • most editors have an option to *convert* (tab to spaces, etc.)

    HTML ignores whitespace because HTML was designed for exchanging textual information, not source code.

    Diff has an option to ignore whitespace, but by default it includes it. Since it is insignificant in many situations, ignoring it can be useful. This is not an argument that whitespace is ipso facto bad.

    Editors have an option to convert spaces to tabs (or vice versa) because in those editors you rarely can't tell the difference, and the mixture of tabs and spaces yield very ugly results when looking at plain text.

    Writing off a language for such a silly reason as its use of indentation for block structure is ignorant. Arguments that this screws up copying from your favorite website are specious.

  91. Re:Perl? Are you kidding me? by eneville · · Score: 1

    [duck and cover]
    That's because the postgres users have nothing better to do
    [/duck and cover]

  92. Re:Real hackers use Python. by VGPowerlord · · Score: 1
    The web forums part is a moot point. As the grandparent said, HTML ignores whitespace. Web Browsers handle this by converting tabs to spaces, then ignoring all multiple whitespace characters following the first. This also means that any spaces or tabs following a new line get ignored, because HTML considers it a whitespace character. So, unless your forums has something that allows the pre tag, it will not appear as you entered it:
    sub doSomething() {
    # This line and the next are indented with 4 spaces
    print "NO!";
    }

    I used Slashdot's ecode tag in the above, which indents the entire block. The sub and } lines are not indented, but the comment and print lines are.

    Besides, there are better ways to distribute code:

    • A versioning system like CVS/SVN
    • Text Files - This solution works particularly well on web sites and web forums as attachments. It works on email, too!
    --
    GLaDOS for President 2016! "Well here we are again. It's always such a pleasure." -- GLaDOS, 2011
  93. Re:Real hackers use Python. by qbwiz · · Score: 1

    but what about the ol' copy-paste from a block one level deeper that would throw everything off.
    Remind me never to look at code that you've written. Every time you copy and paste code, you keep the indentation the same as before, so that by the time you've finished a project the indentation and block structure have nothing to do with each other?

    --
    Ewige Blumenkraft.
  94. Re:Real hackers use Python. by metamatic · · Score: 1

    Ruby does meet your needs. That's exactly what I use it for most of the time. I'm gradually converting all my Perl scripts to Ruby, cleaning them up and making them OO on the way. Fetching RPMs for SuSE boxes from restricted FTP sites, assembling newsletters from bits of web and mailing them out via SMTP, reporting on disk usage by directory, and so on.

    Ruby has very easy to understand scoping, not much syntax to keep track of, a clean implementation of OO, dynamic typing, and interfaces to most POSIX stuff you'll need. Take a look at ruby-doc.org for the standard library and core Ruby documentation. The online free 1st edition of "Programming Ruby" is all the tutorial and reference you'll need to decide whether you like it. It doesn't force a particular style on you, though there is a clear style favored by the community.

    Some of the library documentation is a bit lacking, but people are working on that. (I recently documented the fcntl and /etc APIs, for example.)

    --
    GCHQ Quantum Insert installed. If only our tongues were made of glass, how much more careful we would be when we speak
  95. Isn't Duke Nukem Forever coded in Perl 6? by Charlie+Bill · · Score: 1

    Perl 6 has got to be the vaporiest vaporware out there, almost. The development on this thing has been going on forever. Six really is going to be the horse developed by committee. How much of the stuff in there was cool back in '00 really matters now?

    1. Re:Isn't Duke Nukem Forever coded in Perl 6? by chromatic · · Score: 5, Informative
      Perl 6 has got to be the vaporiest vaporware out there, almost.

      Funny, I have working Perl 6 code.

      The development on this thing has been going on forever.

      Like the C programming language or Java or C++ or Python 3000 or Ruby or PHP or....

      Six really is going to be the horse developed by committee.

      What does that even mean? Is Larry a committee now? (Yes, I know about @Larry. That doesn't make a meaningless cliche mean anything.)

      How much of the stuff in there was cool back in '00 really matters now?

      Off the top of my head, cleaner syntax, better consistency, improved FFI, more powerful grammars, multi-methods, improved OO, a better VM, true garbage collection, better speed, currying, optional type inference, hyperoperators, junctions, improved reflection, integration of regular expressions and tree transformations, role-based typing, better distribution options, JIT, true macros, and built-in set operations matter. I probably missed a few.

    2. Re:Isn't Duke Nukem Forever coded in Perl 6? by Anonymous Coward · · Score: 0

      Hi, since you are involved in the Perl 6 development, any timeline on when it will be ready? At least the beta version.

      I have not really followed the Perl 6 development, but heard about some of new great features and can't wait to try it out :).

      Thanks.

    3. Re:Isn't Duke Nukem Forever coded in Perl 6? by chromatic · · Score: 1

      If you don't mind working with an alpha version (in terms of features supported), you can try Pugs right now. It's pretty impressive and should be even better with the next release.

      There's no official release date nor an official estimate, but when Pugs and Parrot meet in the middle (hopefully within the next couple of releases), things will start moving much more quickly. A feature-complete beta is probably not any closer than a year away, give or take the million things that can go wrong with any big open source project.

    4. Re:Isn't Duke Nukem Forever coded in Perl 6? by WilliamSChips · · Score: 1
      What does that even mean?
      That Larry called it the "community's rewrite of Perl".
      --
      Please, for the good of Humanity, vote Obama.
  96. Re:Real hackers use Python. by adrianmonk · · Score: 1
    But when I tried Python, it just worked, flawlessly. I've never had an issue because of indentation. The language works, it's easy to write, and programs are easier to read due to the lack of excess symbols. The syntax is very clean and readable.

    I agree that Python's elimination of brackets for code blocks does reduce the number of symbols. However, I look at it the exact opposite way: their removal doesn't make the code more readable because excess has been trimmed; instead, their removal makes it less readable because useful visual cues have been taken away.

    To me, Python's removal of the brackets for code blocks is really more about making the syntax look cleaner than it is about making it more useful. Sometimes simplifying and removing redundant elements in order to reduce clutter and improve aesthetics is fundamentally at odds with usability.

    Also, as someone else mentioned, using only whitespace to indicate blocks makes it difficult to have consistent intermediate stages when you are changing the struct of a block of code. Want to move a significant chunk of existing code inside an if statement? In a language that uses braces (or even "endif"), you put the markers in place and then fix the indentation. If you screw up the indentation (by missing a line here or there) in the process, the structure is not lost because it's captured in the markers. It's much easier to change two lines correctly than it is to change N lines correctly. With a traditional language, indentation errors result in bad style, but with Python, they change the semantics of your program. It seems like this would make the task of editing Python source unnecessarily difficult. That kind of brittleness seems like a high price to pay in order to eliminate the clutter of brackets.

    It's a shame too, because Python seems like a language with a lot of potential if it weren't hamstrung by the decision to take a radical stand on a syntactic issue that doesn't even stand to accomplish much even if a "victory" is won, especially considering that it has essentially nothing to do with the real purpose of the language as far as I can tell. To be honest, as an outsider to Python, it's a little off-putting since it makes me wonder if the language designers have any other linguistic axes to grind that are going to result in other painful things for those who use the language.

  97. Moderation gone wrong. Not a troll by Anonymous Coward · · Score: 0

    It's a good, on topic question. Why is ruby not the successor to perl 5.8? The digression about python versus perl points out how ruby resolves syntax problems in python (another perl replacement) by exploiting rather than rejecting perl's rich syntax. What does perl6 offer that the extensions of perl to create ruby lacks . The person who moderated this to troll is an imbecile.

    1. Re:Moderation gone wrong. Not a troll by Nataku564 · · Score: 1

      Because Larry and the Perl community didn't make Ruby. Its like saying .NET should be Java's successor. It pisses people off.

  98. Re:Real hackers use Python. by orcrist · · Score: 1

    If your conclusions about programming language are based primarily on how easily you can cut-n-paste code samples from rich-text email and HTML (outside of elements) then you need to step back and think about your career, IMHO.

    Not so humble, and borderline offensive. I never claimed my conclusions about Python were based primarily on this. Reread my post, and you'll see where I state that I am in fact learning Python. I think you might be confusing me with the other poster above. I also said nothing about rich-text email (which I never use). I was giving *an* example ("For one...") of how this aspect of Python is annoying.

    The Python interpreter can't do this for you: indentation implies semantics, and you do not want the interpreter doing this.

    My point exactly. I said, that if braces *were* used, the semantics would be independent of the formatting, thus the interpreter *could* reformat. And *that* was based on the premise: *if* it's so important to Guido that the language enforce it (by which I meant the design goal stated when defending the advantage of indent-based blocks)...

    HTML ignores whitespace because HTML was designed for exchanging textual information, not source code.

    Ummmm... you'll have to explain to me how "source code" is not included in the definition of "textual information" ;-)

    [snipped a bunch of 'rebuttals' to my examples]

    I was listing those examples to support my statement that there is a paradigm of treating white-space as its own semantic category. It was not meant as an exhaustive list. The point was that it is a wide-spread paradigm, and going outside that paradigm has some disadvantages (sure they can be overcome, but the necessity of overcoming them is itself a disadvantage), and the stated advantage (forcing proper indenting) is by your own argument (modern editors, etc.) minimal. As has been stated in other replies, any slightly decent programmer is already following good indenting practices and/or is using an editor which will automatically indent where appropriate; however, there are cases where alternative indentation *can* make code more readable -- and I'll admit I've only just started with Python, so I'm not sure if the following is the case -- and as I understand it, Python would not allow a programmer to make that decision to indent one part of program slightly differently (to improve readability) without changing the semantics.

    Writing off a language for such a silly reason as its use of indentation for block structure is ignorant.

    As I already stated, I haven't written off anything. I just think that's a bone-headed aspect of Python. There isn't a language out there that doesn't have bone-headed aspects. Are you so offended by criticism of Python that you have to be offensive to me? ...to wit:

    Arguments that this screws up copying from your favorite website are specious.

    <sarcasm>Oh yeah dude, I couldn't copy that cool Python script from my nude celebrities website, I'm soooo bummed.</sarcasm>

    That was the implication here right? Come on, don't be such a jerk. I was trying to explain that there is a non-emotional component to the aversion to the indent-based blocks in Python, and instead of looking at my arguments you try to play the "experienced programmer" to my "dilettante web-designer dude off the beach".

    Copying from a website was an *example* not the argument; nice strawman, though.

    -chris

    --
    San Francisco values: compassion, tolerance, respect, intelligence
  99. Re:Real hackers use Python. by treerex · · Score: 1

    Apologies --- my response was written more in tone to the original parent who dismissed the language simply because of the use of whitespace. My point is that this is not a good reason to dismiss this, or any other, language. Comparing it to FORTRAN is disengenuous because Python does not require indentation to specific levels or specific tab stops. All Python requires is consistency within a given level. The examples of posting Python code to websites as a reason why whitespaces in Python are bad doesn't hold up.

    With regards to my statement of source as not being textual information, I should have been more clear. HTML was designed with support for natural language textual constructs: paragraphs, lists, enumerations, etc. that are displayed in a serif font (by default) and where consequtive whitespace is ignored on purpose. One would not use these constructs to represent a block of code, because whether it is Python, C, C#, Perl, or whatever, the formatting will be completely hosed. Instead you put this in a <pre> element, in which case formatting is preserved. Hence you get the results you want and expect. If someone misuses the markup, then you are SOL.

    The fact of the matter is that Python's "required" indentation is almost always (I am hard pressed to think of an exception) what you would expect to write clear and concise code. I find that Python does things the way I would expect it to: it often just works. The syntax is clean and easily described.

  100. So Turing Machine is your language of choice by Tungbo · · Score: 1

    right?

    Fewer components is not necssarily better.
    I prefer a tool which best matches my problem domain. If the domain is complex, the tool should be complex.

    1. Re:So Turing Machine is your language of choice by kpharmer · · Score: 1

      > So Turing Machine is your language of choice right?

      come on, how about a little proportionality...

      > I prefer a tool which best matches my problem domain. If the domain is complex, the tool should be complex.

      how about no more complex than necessary?

      How about if you are handed a simple log reporting application that someone wrote you don't have to buy a book or two, or spend a day googling to figure out what the original programmer was doing? Or how the language features that they used really work.

      Generally, I'm more worried about a language failing to support a project due to internal managability issues - rather than lack of functionality. Knowing that I can point to any piece of code on some of our systems and immediately recognize all language features and approaches to problems greatly simplifies my job.

      And that job involves data mining, scoring frameworks, queing systems, metadata-driven interfaces between multiple operational systems and a data warehouse, publishing & subscribing between a data warehouse and multiple redundant data marts. In short, hardly a simplistic domain.

  101. Re:Real hackers use Python. by orcrist · · Score: 1

    Apology accepted, and we'll just have to agree to disagree, since (fittingly) I am too busy working overtime auditing some bone-headed Perl (heh) to answer in depth; note: it's not something that would be helped by better formatting ;-), just an abuse of hard-coded parameters which belong in a config file making the whole code-base too 'server specific': a problem which could exist in *any* language, alas.

    -chris

    --
    San Francisco values: compassion, tolerance, respect, intelligence
  102. Re:Real hackers use Python. by jc42 · · Score: 1

    So have you seen the Whitespace programming language? If not, you should google for it. You'll be impressed

    (And then you should look up the Brainfuck programming language. You'll never complain about perl or python syntax again. ;-)

    --
    Those who do study history are doomed to stand helplessly by while everyone else repeats it.
  103. Re:Real hackers use Python. by Anonymous Coward · · Score: 0

    This very true. You should spend some time to learn some basic Python and write a few scripts in it. After doing so you'll fully appreciate how much forced whitespace really sucks.

  104. Re:Real hackers use Python. by Abcd1234 · · Score: 1

    You know, at first I agreed with you. Emacs seemed to take care of the indentation for me, and I though, 'hey, this isn't as bad as I thought'. And then I tried to actually refactor some code. You see, the minute you start moving blocks of code around, the editor is largely helpless, as it's impossible to know, just by examining a piece of code, what the indent level should be. Example:

    if (a == b):
        while (c == d):
            do_some_stuff

        more_if_statements

    while (e == f):
        do_some_stuff

    Now, let's say you decide to move the 'if' statement inside the while. You cut and paste, and then try to reindent. But... wtf... the editor did this!

    while (e == f):
        if (a == b):
            while (c == d):
                do_some_stuff

                more_if_statements

                do_some_stuff

    That ain't right. So now you have to go back and fix it, which in this case is relatively trivial, but for any complicated body of code, it's *incredibly* tedious. And there's no way for the editor to get this right! The minute I started running across this, I decided to put Python on the shelf... it's simply too damned annoying.

  105. Re:Real hackers use Python. by Coryoth · · Score: 2, Informative

    I think you need to invest some time in learning block shifting commands. In Emacs under Python mode that would be python-shift-left and python-shift-right, conveniently bound to Ctrl-c < and Ctrl-c >; that will collectively shift the selected text one indent level left or right, preserving indentation within the selection. Any other editor worth using has similar commands. To move code around for refactoring just cut and paste then shift the whole block you cut and paste left or right to the appropriate indentation level. Simple, easy, and efficient.

    Jedidiah.

  106. Re:Real hackers use Python. by Abcd1234 · · Score: 1

    Heh, you're absolutely right, I should. :) Thanks! I've habitually just moved code, marked the block, and did a C-M-\... obviously that approach doesn't work with Python.

  107. Re:Real hackers use Python. by orcrist · · Score: 1

    Well... no, but of course Perl already has Acme::Bleach which covers that quite nicely ;-)

    So, just looked Whitespace up. Pretty funny :-) I already knew about Brainfuck though; you gotta love the kinds of things programmers do with their free time :-P

    -chris

    --
    San Francisco values: compassion, tolerance, respect, intelligence
  108. Re:Real hackers use Python. by try_anything · · Score: 1

    I guess the word "counterintuitive" is an oxymoron in your universe ;-)

    Seriously, give it a try! I find it's a great relief when I can trust that the indentation and the program structure always match.

  109. Re:Real hackers use Python. by Anonymous Coward · · Score: 0

    Slashdot needs +1 Gracious!

    I must be having a bad day because your post almost made me cry :-)

  110. Re:Real hackers use Python. by try_anything · · Score: 1
    I agree that Python's elimination of brackets for code blocks does reduce the number of symbols. However, I look at it the exact opposite way: their removal doesn't make the code more readable because excess has been trimmed; instead, their removal makes it less readable because useful visual cues have been taken away.

    The trick with Python is to trust the indentation, which is very, very hard when you have 10+ years of experience telling you that indentation lies.

    At first my mind kept looking for the curly braces in Python code. Now, when I'm editing C++ code, I'm annoyed because I realize I'm looking twice at every block: using the indentation to guide me because it's easy and I can't help myself, while subconciously (and sloppily) checking the curly braces because I know that indentation means nothing to the compiler.

  111. Re:planning to move from Perl 5.8 by penguin-collective · · Score: 1

    I've found that over 90% of the people who publically state that they've migrated from Perl to Ruby or Python or PHP were drawn in by features of those languages that they *thought* Perl didn't have

    Actually, one reason for leaving Perl behind is that it has too many features. In my experience, people get up to speed in PHP much more quickly than in Perl, and they end up producing more maintainable code.

    Until Perl 6 hits, I'll happily continue producing mod_perl portals that will smoke the competition in performance,

    The operative word there being "I".

  112. flamebait moderation by Anonymous Coward · · Score: 0

    The rapidity and severity with which comments get moderated as "flamebait" seems to be proportional to how threatened a community feels.

    And Perl has good reason to feel threatened: half a dozen excellent new scripting language, a radically different new version of the language, and a much delayed new implementation.

    I think the moderators supported my point: there are better choices than Perl these days, and even the most die-hard Perl zealots know it.

  113. Oh Dear... by fm6 · · Score: 1
    In Perl 6 we actually give the programmer control over the individual grammar rules and even sub-rules, so that you can replace little bits and pieces of the grammar.
    I guess 5 ways to do every little thing just wasn't enough...
  114. Re:Perl? Are you kidding me? by sjames · · Score: 1

    The rest of us simply recognize that it's an awkward language by gauging the amazingly short time period between having to look up THE SAME BASIC THINGS over and over again. Basically,

    At the risk of feeding a troll, I will defend Perl here.

    It's all a matter of the right tool for the right job. Remember, Perl is Practical Extraction and Report Language. When I need to Extract data from a logfile and turn it into a Report, Nothing does it faster than Perl.

    A key to Perl is the PRACTICAL part. Perl has no pretentions about changing the way we think about programming, it is a down to earth "just make it work" kind of language.

    In spite of the above, Perl actually is a fairly radical experiment in computer languages. Unlike more formal languages, it seeks to be a colloquial and informal language much like spoken language. A natural result is that there are many 'dialects' of Perl spoken (unlike dialects in formal languages, these are all supported by the same implementation), many idioms, and a great deal of slang. Ideas can be expressed very formally in Perl using language analogous to the "flavor" of human language that might be used in official documents. They can also be expressed in "street slang" analogous to the near gibberish (to the unititiated) of text messaging.

    The later readability of Perl code is similar. Formal documents can be read fairly easily decades later. Slang filled street dialects may be incomprehensable to many even as it's being written.

    Looking at Larry's CV, it's not too surprising he might try a language like this :-) I think it's an interesting experiment, and judging by the amount of Perl code out there, it seems fairly successful.

  115. Defense of Perl by jbolden · · Score: 1

    You did a nice job listing out the negatives.

    Weakly typed (Please don't confuse this with dynamically typed).

    It depends if you include the object model here. Objects aren't strongly typed they are just hashes, and hashes. If you don't include it then things case pretty well. All assignments work and everything is polymorphic with a sane default.

    Defines behaviour in weird and even incorrect ways, or in other words: blissfully ignores undefined behaviours ("Hello world" + 5).

    How is that a problem. "Hello World" can't be the string forum for any number. So it evaluates to 0 and the above is simply the integer 5. On the other hand "3"+5 = 8, and "3.2" +5 = 8.2. That's very useful polymorphism in my book.

    Has hundreds of operators to remember (Part of the reason Perl developers need to walk around with the Perl manual in their pockets..)

    Perl programmers do weird stuff to string a lot. The operators are a very complex string library. .Net programmers have to look up stuff from their libraries. I'm not sure what the problem is.

    Has no proper exceptions and exception handling (And even uses return codes and "exceptions" interchangably to handle errors)

    Not true. It has the "eval" syntax for exception handling. Also since it can build statements on the fly you end up with exception handling more like LISP's model. Certainly way more complicated than C but way more powerful.

    Lacks formal argument naming (Making automatic documentation generators much more difficult, as well as reflection lacking).

    Awful division of the world into scalars and other types, resulting in the use of references to place some types of objects in hashes. In some cases, these references are not even properly ref-counted, and Perl's garbage collector incorrectly frees the objects prematurely (Please tell me this was fixed, I may be out of date about this one).

    That's getting fixed in Perl 6. Agreed.

    Awful syntax (but you mentioned that already)...

    Be specific.

    Generally putting value on the flexibility of how the program can look, rather than on readability, making the computer or human parser go through grammar forests (now extensible, yay) in order to read them.

    Sure. Perl is much closer to Lisp than fortran. Its designed to allow you to express your conception of the program as more than just a list of steps. To read a Perl program is to understand the way the author conceives of the program not how the program works.

  116. PHP == "Perl Lite" by BuildMonkey · · Score: 1

    A year ago, a friend asked me to help write a web page for her softball league, to track team rosters, etc. Having done a couple of web pages in Perl, and with about 10 years of Perl experience, it was my first thought. However, I'd been hearing a lot about PHP. So I read a PHP book and did a bit of experimenting.

    To my mind, PHP is "Perl Lite". Yes, its nice to embed functionality directly in the page. But PHP is far too watered down in capabilities, and lacks CPAN. If you want markup functionality, give Template Toolkit a try. If you don't like TT, try Mason. Unless you want a canned Wiki that's easy to customize, I don't see a reason for PHP.