http://qs321.pair.com?node_id=651079

Hello all.

This meditation is to _desperately_ seek help in justifying the use of Perl in the enterprise. Sun and IBM here have made tremendous efforts to position Java as "the" Enterprise language and use other languages (like Perl and PHP) as bad examples for application development.
They have brainwashed THOUSANDS of programmers nationwide with free RUP courses, evangelizing tools like Eclipse, Rational Rose, and especially Java.
I don't think we are the only place where this is happening (in one way or another), so I post this node to see if we can unite somehow and articulate some kind of (statement|document|white paper|strategy|site|wiki) as to why companies should use Perl as an Enterprise language.
Perhaps there is such a $1 already in existence, if so, please point us in the right direction. In any case, I believe that just having this discussion will be worthwhile to see what other PMs think about this situation.
Many thanks in advance,
Alejandro Imass
Guatire, Venezuela

Replies are listed 'Best First'.
Re: Defending Perl
by perrin (Chancellor) on Nov 15, 2007 at 22:27 UTC
Re: Defending Perl
by zentara (Archbishop) on Nov 16, 2007 at 12:45 UTC
    I'm not really affected, but it sort of makes sense to me. Big enterprise, wants predictable recipes for things, not the wild hubris that Perl allows. They want employees trained in a system that allows for the employees to be disposable such that replacements can step right in and understand the objects. They want object models that won't change, or if they do, they will still be compatible with other programs used by companies.

    It makes sense that companies want to create giant object models that reflect their company, which are compatible with other company's models ( makes buyouts and mergers easier) , and compatible with government tax software, etc. It's all geared toward lowering IT staff numbers, and increasing profits.

    I suppose if Perl had a corporate sponsor, like Sun, it would have a chance, but Sun has listing on the NYSE and lobbyists in Washington. Whilst Perl has Perlmonks. :-)

    Perl is extremely useful, and just because it is not Enterprise level, dosn't change that.


    I'm not really a human, but I play one on earth. Cogito ergo sum a bum
      Big enterprise, wants predictable recipes for things, not the wild hubris that Perl allows. They want employees trained in a system that allows for the employees to be disposable such that replacements can step right in and understand the objects.

      Quite right. Which reminds me of one more thing: they want languages which play nice with CASE tools — both for reverse engineering (deducing object models from source code) and for "forward engineering" (generating source code from models). Java is great for this; Perl, not so much. :-)

      ... object models that reflect their company, which are compatible with other company's models ( makes buyouts and mergers easier) ...

      Interesting hypothesis, but I think rather too optimistic. In my experience, companies tend quite the opposite way: every one wants to invent their own models; even when another company's models might be demonstrably better, the "not invented here" mentality almost always rules. I see this a lot, especially in the government sector.

      A word spoken in Mind will reach its own level, in the objective world, by its own weight
      ++ to this, good insight into the seemingly developing problem in the OP's home country (Venezuela?)

      My current employer is a 'mostly' java shop. They are currently contracting workers overseas for this exact reason. You can bring in a young Java trainee, and they will plug right in. It's all dollars and cents. I was coerced into picking up Java over the last year, however my position still allows about 80% Perl programming so I'm a lucky one/exception to the rule here. I think, in this sort of case, it's up to the creative Perl user to find ways to convince the boss that Perl is still the sensible language to go with in a given scenario (although that's not always possible/easy)

      It would seem to me, that if IBM and Sun Microsystems have contracts with the OP's gov't, the situation there will be following these same sort of footsteps.

        It's all dollars and cents. As the manager of a fifty-head enterprise Java team, you're definitely gonna get a much higher salary than as the lead of a five-men Perl shop. Even if (or rather even though) the produced applications are the same.

        What do you think is more appealing to a middle level manager? If you tell him/her that you can get it done with the people you have or if you tell him that you need twenty more certified Java developers and have all the fancy presentations ready to convince the upper management?

Re: Defending Perl
by Mutant (Priest) on Nov 16, 2007 at 16:56 UTC

    My (fairly large, well known, London-based) company is casting out Perl in favour of Ruby. Even though we have 0 Ruby expertise in house, several Perl programmers, and plenty of Perl stuff in place. One of the main reasons is the difficulty in recruiting Perl programmers, or in working with consultancies who don't deal with Perl at all. (I think there may also be some misconceptions about how much of an advantage Ruby gives you over Perl as well, a lot to do with the quality of our existing Perl code base, some of which is 10 years old, and a source of pain).

    The reality of programming languages (and lots of things in business) is that just because X is better than Y, doesn't mean X will be successful, especially if Y is new (but mature), cool, has peripheral advantages (like lots of people using it, quantity beats out quality too), and the meme that Y is better than X is widespread, regardless of whether it's true (Ruby is the successor to Perl, according to some people).

    I don't think Perl 5 will ever get back that "mindshare". Perl 6, on the other hand, could end up being either:

    • A white elephant - not in the right time/place to make a huge impact, and not useful enough or too complicated for it to replace the usual Perl 5 niches
    • Continue where Perl 5 is now, and replace a lot of the niches it currently occupies, plus expanding into a few more, but not really progressing.
    • Be exactly what everyone is looking for, create the right amount of buzz, and rival some of the "big players".
    I have no doubt Perl 6 will be a thing of beauty when it is finally ready for production use. But I don't think that guarentees it's success (in terms of how widely it's used, especially for commercial/enterprise use). I don't think the people involved are really too worried about these things, they just want to create something awesome (which, paradoxically, is often the way to make something popular).

    Perl 6 is probably the only hope we have of Perl regaining the status it had in the "enterprise" in the late '90s. And even if it did that, it would be the first language (AFAIK) to make that sort of comeback.

    (For the record, I hope it does :)

      The idea that it's easier to recruit Ruby programmers than Perl programmers in London completely astounds me.

      ... unless your company finds it easier to recruit Ruby programmers willing to work for 25K pounds.

        You haven't seen the people with the signs that say "Will program (in Ruby) for food (or £25K)"??
        Well, I think there's certainly a money factor involved. There aren't many graduate Perl programmers around these days, there are plenty of Ruby ones (even if they didn't learn Ruby during their degree).

      Even though we have 0 Ruby expertise in house, several Perl programmers, and plenty of Perl stuff in place.
      Is this switch from Perl to Ruby for new projects only? Or are you planning on rewriting large chunks of working Perl code in Ruby? If the latter, that seems like a poor business decision to me, as argued by Joel Spolsky.

        New projects only. Actually, the sort of projects Ruby will be used for are ones we don't actually do ourselves at the moment, because a 3rd party will come in and offer to do it in PHP or Ruby for much cheaper than we can. Historically they were done in Perl, but it's not a simple case of Ruby replacing Perl.

        Still, the reasons why Perl is not an option are kind of interesting. As I said, I think there are some perceived (though not necessarily true) deficiencies with Perl, coupled with the feeling that Perl programmers are expensive and hard to find, while Ruby programmers (and especially consultancies), are cheaper, easier to find, and likely to continue to be in the future.

        This would be far less notable if it were confined to just my company, but I think it's a growing feeling across the industry, at least in London.

        Excellent article a must read! Especially for managers who want to throw away perfectly working applications just because they are old (or are written in an "old" language). I have a friend who threw away perfectly working in-house code in favor of MS Great Plains, and after more than a year, and many, many thousand dollars they realize their business has had no real benefit from it, worse yet, the new system is actually less functional and limited.

Re: Defending Perl
by philcrow (Priest) on Nov 16, 2007 at 16:57 UTC
    <irony>

    Oh please, let us be like Java, especially J2EE...

    • We want to use an IDE all the time with an editor more cumbersome than the one we have invested years learning.
    • We have worn out our lexicon and want to coin new terms for all the concepts we learned in school and on the job.
    • All this keep it simple is getting on our nerves. Let's embrace complexity for its own sake, until we've reached the point where an IDE is required to work on our code.
    • We are tired of posting our code to CPAN and receiving nothing for our trouble. We want to dismantle that and start trying to pedal every module there for cash through our new startups.
    • Perl's "Can't locate Module.pm in @INC (@INC contains:...)" is taking all the fun out of module load issues. We want Java's "Class not found," which gives us the joy of hunting without knowing where to look.
    • We have got to stop all this cooperation. We must create multiple vendor implementations of mod_perl so we can compete against each other and lock-in our respective customers.
    </irony>

    Sorry if none of that helps you defend Perl. But, I think to beat Java we would have to become like it. That reduces to creating job security for huge numbers of people through the development of many almost compatible tools that look impressive in power point presentations made to management.

    Phil

    The Gantry Web Framework Book is now available.
Re: Defending Perl
by shmem (Chancellor) on Nov 16, 2007 at 00:39 UTC
    Have a look at Perl Success Stories. It seems a bit outdated though, or did the latest success really happen in 2004?

    --shmem

    _($_=" "x(1<<5)."?\n".q·/)Oo.  G°\        /
                                  /\_¯/(q    /
    ----------------------------  \__(m.====·.(_("always off the crowd"))."·
    ");sub _{s./.($e="'Itrs `mnsgdq Gdbj O`qkdq")=~y/"-y/#-z/;$e.e && print}
Re: Defending Perl
by dragonchild (Archbishop) on Nov 16, 2007 at 03:56 UTC
    I seriously hope that the Enterprise is using Java. That means that my applications will beat them to market. Let them have it. I don't mind.

    My criteria for good software:
    1. Does it work?
    2. Can someone else come in, make a change, and be reasonably certain no bugs were introduced?

      I think OP wanted his Enterprise to use Perl too.

      And now for something completely different: Did the Enterprise use Perl or Java?

        Given the number of enterprises that are Perl-friendly, it sounds like a good reason to consider finding a new enterprise in which to play.

        My criteria for good software:
        1. Does it work?
        2. Can someone else come in, make a change, and be reasonably certain no bugs were introduced?
Re: Defending Perl
by explorer (Chaplain) on Nov 16, 2007 at 12:25 UTC
    1. Perl don't have the pretty graphical tools that the new generation of programmers want (terror at the terminal)
    2. The programmer uses the computer language that his boss says is the best (the same that the commercial of SUN says is the best)
    3. The new generation of programmers do not know what is Perl (no Perl courses)
    4. Companies are forced to translate all its programs to Java because no Perl programmers (I see this all days)
    5. ...

    Of course, I will want to program Perl, but... Any enterprise will like to hire me?

    Now, I'm fired because I don't like to learn Java or Python. I'm a heavy Perl supporter. If I had sufficient resources would be helping in the development of Parrot and Perl6, programming with C, C++ and Perl, all day... but I need to eat.

    JF^(

      If I had sufficient resources would be helping in the development of Parrot and Perl6...

      Would you consider setting up a nightly (or even weekly) Parrot smoke test? If you have a hardware/software combination more exotic than x86 Linux, you'd really help us out this way, and besides a couple of hours for setup and maybe occasionally forwarding the logs, there's little investment of time.

        I'd like more information about what kind of commitment (time, resources, etc.) you need and instructions for setting it all up.
        I'd also be interested / possibly willing to set up a smoke test, are there posted instructions somewhere?
Re: Defending Perl
by chromatic (Archbishop) on Nov 15, 2007 at 23:53 UTC

    Are there publicly available and redistributable examples of the counter-Perl and counter-PHP propaganda? It might be easier to counter their marketing if so.

      Sadly it's not public. Here is how it works:
      The govt. signed a huge training contract with IBM and has been giving 'free' very thorough (9 month long) certificate courses. The courses start with basic Linux training and end with Web Application Development. They are supposed to be courses to change the mindset of programmers from proprietary development to free and open source development. Well, the Linux courses are taught with SuSe (and/or RedHat) and the programming tracks are all Java. In the Web Development tracks they use a Perl CGI script to demonstrate how *NOT* to program for the web and then they go on to show MVC with Struts and alike
      So even though they don't get directly into a Perl vs. Java discussion, they leave Perl as if it were just an old school scripting language for simple CGI scripts.
      What I would like to gather, for example, is a list of very large deployments with Perl along with reasons as to why it was chosen, especially if it was chosen over Java or .NET. At one time we had a reference that Amazon was built with Mason, but I could never verify this information. It seems that companies that use Perl for critical applications are shy|ashamed to say it.

        TicketMaster uses extensively Perl. Specifically mod_perl. They probably have one of the highest peak traffic on the web (think "tickets for the Rolling Stones tour go on sale at 8:00 am today"), and they use Perl because it can handle the load. That should put to rest concerns about whether Perl can be used to build huge, high-performance systems.

        If this page here is still accurate, the global Amazon architecture has a Perl/Mason layer in there.

        -Harold
Re: Defending Perl
by bradenshep (Beadle) on Nov 17, 2007 at 05:58 UTC
    I've been evangelizing Haskell in particular and functional programming in general to my (fellow Comp Sci major) roommate the last week. The walls are coming down, but I'm fighting misconceptions and unconsciously absorbed dogma similar to what Perl faces.

    It's (too) slow, no one uses it, it's unreadable. They apply to both. "It's crippled" applies only to Haskell, from the mouth of someone who's locked in the imperative paradigm.

    The analogy breaks down now, because I'm working on one peer, not a boss or boss^N, nor a whole company.

    I don't know where these "it's slow, it's line noise" notions come from, but they are so deeply entrenched in people who have perhaps never seen the language in question that it becomes nigh impossible to change minds, even as a peer.

    Perl and Haskell both make better Javas than Java itself. But I agree with the thinking about Perl 5: it is somehow a "Has Not" in the minds of so many programmers and managers. Perhaps Perl 6 will become the new hotness. I hope for that day, whenever it will come.
      Excellent reflections! Thanks for sparking new ideas in my wicked brain.
      I think that there is no doubt that Perl, Haskell and other great languages (especially the 'free' ones) will (or should I say 'should') never actually die, just by applying the natural selection principle of adaptability.
      But in this day and age we have an external factor, called marketing, that acts like a great meteorite, and in an instant, can kill off perfectly adapted, diverse and balanced species set, leading eventually to the survival of not so positive and destructive creatures, like for example , man, who obviously wants to be the _olny_ species left on the planet.
      What I am trying to say is that if dinosaurs had used marketing, many of the well adapted ones would probably be around today serving as much needed predators to man, and extending the life of our beloved spaceship.
      So even though Perl is not a dinosaur (although many may argue that it is) and Java is not nearly as destructive as man, I think we definitively need more marketing.
      We need brochures, white papers and shut-your-mouth success stories that we can take to meetings and kill the argument before the language flame even starts. We also need stories where Java has failed miserably, and better yet if it has been replaced or 'enhanced' by the use of Perl, or any of the other great 'free' languages. We need for the companies thay use Perl to come forward and say: "Yes, I use Perl and I'm proud!".
      A reply falls below the community's threshold of quality. You may see it by logging in.
Re: Defending Perl
by jdporter (Paladin) on Nov 15, 2007 at 21:32 UTC

    er... I think you meant $2.

    ;-)

Re: Defending Perl
by sundialsvc4 (Abbot) on Nov 19, 2007 at 19:34 UTC

    Give me an implementation of Java that actually runs fast enough to get out of its own way, and I will be happy to reconsider it.

    Until then, give me only a tool that has stood the test of time:   not the chisel that stood beside a block of stone and sought to “subclass” it into a sculpture of an elephant, but the trusty tool that pounded away at it for hours on end, removing every single thing from the block that did not look like an elephant, and that emerged from this arduous task just as sharp as ever before. Give me only the tool that has been lovingly cleaned and oiled and stored carefully back into its box, not because the tool needs coddling but because it has served its master well.

    Nevertheless, realize also that if your boss or the company or the department has made an executive decision to pursue a different course, you will accomplish little or nothing by setting yourself against that tide. Flow with it, learn what you can, and be very restrained in your criticism. There is, after all, “more than one way to do it.” Many factors contribute to such a weighty business decision, and you might not be privy to them all. Whether you deem the decision to be right or wrong, it is not yours (alone) to make. “It's their boat,” and the Captain's word upon the deck of his own boat is final. If you have expressed your sentiment clearly but once, as surely you have ... Mark my words!! ... say no more of it! Not even to your co-workers, not even in private.

Re: Defending Perl
by dk (Chaplain) on Nov 19, 2007 at 11:52 UTC
    From your post it seems that the main problem is that the courses you're complaining about are, well, besmirch is a too strong word, but somehow create bad image for Perl in your country. IANAL and am completely guessing here, but if this information can be "caught on tape", can a court case be built around it, with the intent of stopping spreading false information? And if yes, possibly TPF/EFF will be interested in stepping in, and your first step will be seeking advice from something radical as Slashdot?

    I'm a peaceful person myself, but (I guess) am good at logical reasoning, and this step seems to be a logical answer to someone bigger than you, attacking something dear to you, Perl in this case. If anyone comes with a better and less radical suggestion, I'd be first to support it, but until then, well... si vis pacem, para bellum?

Re: Defending Perl
by robot_tourist (Hermit) on Nov 22, 2007 at 16:40 UTC

    I went to a university where the main teaching language was Java, but I got to do my final year project in C++. Anyway. I really liked Java while I was at university, but I did a year out in industry and learned Perl (doing some internal Bugzilla mods). While I haven't had to use Java for work (it's mostly been Delphi), I have no aching desire to use it again even though I liked it quite a lot at the time, well compared to C++ anyway. I like Perl too much now. I do want to learn C#, Objective-C, Ruby and Javascript though.

    How can you feel when you're made of steel? I am made of steel. I am the Robot Tourist.
    Robot Tourist, by Ten Benson