http://qs1969.pair.com?node_id=32200

The Perl community frequently trumpets freedom as one of the key virtues of the language; indeed, I love it myself. However, does this freedom not extend to using tools other than Perl? Not long ago, a post here on PM was voted down simply for mentioning Python as possibly being useful in a certain situation. This is disgraceful. Some tools are better for some situations, and better for some people. Others have said it better than I, but I feel the need to add my own voice to their's: There is simply no place for language bigotry, especially in a community that supposedly prizes freedom of choice above all else. There's more than one way to do anything.

Replies are listed 'Best First'.
RE: TIMTOWTD Anything
by Adam (Vicar) on Sep 13, 2000 at 03:18 UTC
    YES!

    People need to learn more languages then just Perl. They need to know how different languages address certain problems. Its mind expanding and will help you program better in any given language. People also need to know which language to use to solve a given problem. Not every problem should/can be solved by one language. While you could use Perl a metaphorically hammer to put a thumb tack into cork, why not just use your thumb?

RE: TIMTOWTD Anything
by chromatic (Archbishop) on Sep 13, 2000 at 06:26 UTC
    That's a good point.

    There's a reason there's a chapter in the Camel about being a good neighbor, and a chapter in Advanced Perl Programming about XS and hooking Perl up to other languages -- sometimes what you need is a thin layer of glue between old and crufty or even new and beautiful 'solutions'.

    Sometimes the best program is one that does one job simply and easily. Sometimes the best use for Perl is letting something else do the heavy lifting. Play to its strengths and you'll do fine.

RE: TIMTOWTD Anything
by OzzyOsbourne (Chaplain) on Sep 13, 2000 at 15:37 UTC

    I am of the opinion that one can get better at a language by learning another. You learn the limitations of the languages, and end up pushing your own limitations.

    It makes it easier to communicate with other programmers as well (e.g. you can't communicate with the world if you only know English), which leads to expansion of the languages themselves. I can't count how many times that I've challenged my rudimentary knowledge of Perl with what I know in VB. I know that VB can do certain things, and I search out the way to do them in Perl. Without knowing that I can do certain functions in VB, I might not even try to search out those same functions in Perl (or vice versa).

    Don't get me wrong, I am quite infatuated with Perl, but I think that learning other languages is highly beneficial. Those that reject other languages wholesale haven't spent enough time with them. It's almost like seeing "Microsoft sucks" posted by UNIX folk who haven't ever seen an NT box (don't flame me on this - I have no grudge against UNIX).

    Converting between languages, or thinking in several languages will make your brain hurt, but no pain, no gain.

    -OzzyOsbourne

RE: TIMTOWTD Anything
by JanneVee (Friar) on Sep 13, 2000 at 19:22 UTC
    This is actually something that jcwren has been saying constantly. "You don't write device drivers in Perl!", type of thing.

    Personally I received quite a few -- on my defense of COBOL. But I didn't do that for reputation. (I don't actually do anything for rep. I'm just trying to be a helpful community member!). I had just a different view.

    But mentioning another scripting language in the chatterbox usually is replied with "/ban heretic" or something.

    What I heard... It seems that PM is much more friendlier than comp.lang.misc.perl ... Writing a message about python usually ends up with a big fire.

    And this I believe that the reputation system helps on. Removing messages that aren't on subject and insulting. So it is both a blessing and a curse...

    JanneVee

      Device drivers in Perl - shudder.

      Number crunching is something that Perl is not very great at right now. I recently prototyped an algorithm in Perl. Once I was happy with it, I rewrote the core as an XS module. I got a 60-fold speed increase.

      I like python's trick for making making a module a script. I.e. if you execute a file, it runs a main routine, but if you include it, it just imports functions, etc.

        merlyn has mentioned a neat module called Inline to make this really easy. Rather than write XS, take Perl functions and write equivalents in C, then inline. The rest is taken care of for you. (Supposed to be.)

        I have not pushed it, but give it a shot.