in reply to Perl 6 gets some press

The author of the article made the following statement: "Perl can be intimidating to developers used to other
languages that don't have as many different ways of doing any given task."

The author gave no facts in the form of developer surveys or quotes from intimidated developers :) to back up that assertion.

I first became acquainted with Perl through reading O'Reilly's book "Google Hacks." My first impression of the language,
coming from a Visual Basic/Pascal background, was that there sure were a lot of curly braces:). As I started digging into Perl, particularly through Wall et al's "Programming Perl", the language made a lot of sense. In short, I did not find Perl intimidating.

When I discovered that Perl automatically handled array/list sizing, my reaction was to shout "Hallelujah!"
In some other languages, obviously, adjusting array sizes takes more work than in Perl. So that feature practically sold me on Perl all by itself.

Did any of you monks out there find Perl intimidating at first, and if so, what attributes of the language were problematic?
A discussion on this might be useful to the folks who are putting a lot of time into promoting this language...

Scott

Replies are listed 'Best First'.
Re^2: Perl 6 gets some press
by merlyn (Sage) on Mar 09, 2006 at 06:07 UTC
    When I started with Perl, the manpage was only 10 pages long. There wasn't enough of it to be intimidating. {grin}

    Mostly what I find intimidating now are the people who look at Perl golf and Perl JAPHs and the slapped-together perl4-style CGI scripts and think that this is "normal" Perl. If I could eliminate those items from the Perl culture, I think we'd have fewer people intimidated by Perl in general.

    One of my clients is in the upper half of the Fortune 500, and makes half of their revenue from tens of thousands of lines of Perl code deployed as mod_perl web servers and web services, and infrastructure support. And no, they're not running out to replace it with Java or Python or Ruby on Rails. In fact, they're writing a lot more Perl to go with it. Yeay. But why it works is because they have a great design, testing, and deployment strategy, which they would need for any large project in any programming language. Perl is never the issue when you have the rest of the infrastructure in place.

    -- Randal L. Schwartz, Perl hacker
    Be sure to read my standard disclaimer if this is a reply.

      Makes sense; I don't even look at posts in the "obfuscation" section here anymore because I get a headache when I look at
      some of them. However, I can understand the intellectual appeal to folks of creating code like that. It seems like it is partly art
      and partly demonstrating a certain level of mastery of the language.

      Scott
Re^2: Perl 6 gets some press
by cbrandtbuffalo (Deacon) on Mar 09, 2006 at 17:43 UTC
    Maybe intimidating isn't the right word, but more than one way to do it can be problematic when you have a lot of perl code. In languages with only one way to do it, there are no discussions between developers as they try to convince each other to do it their way. There is no code sprinkled through the code base doing the same thing 5 different ways.

    I've been in these discussions many times and they are difficult because everyone can have good reasons for their approach.

    However, once you decide on how you're going to do it 90% of the time, you are set. And with Perl, you still have the flexibility to consciously decide to do it different 10% of the time to handle a strange corner case. If there is only one way to do it, you don't have this flexibility.

    I believe Perl 6 will address this nicely. I think they will provide one recommended way to do things, but still leave in the other ways to do it.

    So for environments without good structure and standards, Perl can be challenging because it will highlight the lack of management. But as merlyn says, this isn't Perl's fault, it's a problem with the environment.

      In languages with only one way to do it...

      I've programmed non-trivial code in about 10 languages in the last eighteen months (and read code in a few others). Which languages provide only one way to do something?

        Turn that around and ask what thing can only be done one way (if at all) in some languages, but one or more ways in Perl. Classes/objects come to mind immediately. Functional programming is another.

        For other things, while there may not be only one way to do it in other languages, Perl offers many more options. For that, loops and loop control comes to mind, particularly postfix modifiers and next, last, map, grep, etc. All the array modifiers might be in that camp, too.

        In a more abstract sense, subroutine argument passing and argument type validation is something that gets done lots of different ways in Perl, where in some other languages that is never even a question the programmer has to consider.

        Some of these are exactly the kinds of things that Perl 6 is trying to define in a more standard way.

        -xdg

        Code written by xdg and posted on PerlMonks is public domain. It is provided as is with no warranties, express or implied, of any kind. Posted code may not have been tested. Use of posted code is at your own risk.

        Objects was the main area I was thinking of based on some recent experience. I think many languages that support OO have just one way to do it, but with Perl there is an amazing array of choices. You can store your object data various ways, handle inheritance various ways, and now you can even build them inside-out. :)

        But you're correct that I'm waving my hands a bit there. I spend most of my coding time with Perl, so it's been a while since I played with Java, C++, or others.

Re^2: Perl 6 gets some press
by shiza (Hermit) on Mar 09, 2006 at 17:19 UTC
    Although I did take a few programming classes first (Java, C, Cobol), Perl was really my first language. The code I learned from was a bit ugly to say the least (your typical poorly formatted .cgi). It wasn't anymore intimidating than any other language and thanks to great books like Learning Perl, I learned how to do some really cool stuff, really fast.

    Perl fit like a new glove for me. It was a little tight at first, but quickly loosened up to a perfect, comfortable fit. :)