Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery

comment on

( #3333=superdoc: print w/replies, xml ) Need Help??
Java seems to be higher on the buzzword list than Perl these days, and managers gravitate towards buzzwords and glossy brochures like moths towards light. You have my deepest sympathies in having to explain to non-technical managers the various benefits and drawbacks of using Perl vs. Java because I've been there, man, done that.

However, based on experience coding web applications in Perl and Java, I can tell you from experience that there is virtually nothing that can be done in Java that cannot be done in Perl.

For credit card processing, I've used the Signio Perl client. (Signio was bought by Verisign, I believe, so it may now the the Verisign Perl client.) It works beautifully.

For managing user accounts and session information, my company built a simple application server (I can give you details if you e-mail me) for use in a mod_perl environment which worked flawlessly. It was extremely reliable, customizable (because we built it!), and fast fast fast. It serves out millions of web pages a month, and benchmarks show that if we bring all 3 of our app servers online, we could handle peak loads which, normalized for load distributions, would project to hits in the low hundreds of millions a month. We had uptimes of about 200 days, and only needed to reboot to add memory or other hardware.

If you're not inclined to build a simple application server of your own, check out Velocigen. They provide a fully featured, robust, and well-tested application server built on Apache/mod_perl for a price. I've heard good things about them.

In comparison to Cold Fusion, upon which a couple of my comany's other products were built: (i) The entire site would break when one Cold Fusion page was snookered, (ii) (I kid you not!) 18 Windows NT application servers were required to support 23 million page views per month and (iii) (really, I kid you not) the Windows NT servers had to be rebooted on a rotating schedule nightly. And yet, I found myself often having to justify the use of Perl to management-types who more strongly associated the word "enterprise" with Cold Fusion, understood that Cold Fusion was a commercial product, and didn't quite know what to make of Open Source as a concept.

For handling database information, DBI is your best friend. And processing and organizing the information in Perl is so much easier once you've got it from the database that any comparison to Java is meaningless.

For handling XML, there are (at my last count) over 150 modules on the CPAN to parse XML. Over 150!

For writing template-driven web applications, my experience with the CPAN's Template module is that it gives you all the advantages of Cold Fusion's template-driven web application development, or JSPs for that matter, and is just as easy to master.

Finally, if an IDE is really important to the powers that be (I don't find it all that important, and even when I write Java, I build code skeletons in Visual Age then write the code itself in Emacs because it's so much more efficient for me), ActiveState just released V1.0 of Komodo, an IDE for Perl. Apparently they need to speed up the rendering a bit, but it's got all the basic features you need.

So in terms of your requirements, there is nothing that you need that hasn't been done, and been done very well, in Perl.

Now that we've established that all your requirements can be met by reliable and well-tested Perl tools, here is what I would base my assessment on:

1) Unless what you need to build is already readily available in Java, it is much faster (in terms of coding time) to build applications in Perl than in Java. Period. I know of 2 shops that tried to build what had originally been speced for Perl in Java, and gave up because both the development and the applications themselves were too slow. (They went back to Perl.)

2) The Apache/mod_perl combination provides tremendous speed and reliability.

3) Java is seen as more of an "enterprise" solution (I put the word in quotes because it is so often abused), but unless you're building the next Yahoo, your requirements will not exceed Perl's ability to serve out web pages. If you need to build application components, which would involve storing and retrieving or transmitting objects (i.e., serialization/deserialization), then Java is your tool of choice. It doesn't sound like that is a requirement for you, however.

4) Java has more robust coding tools and commercial support for various products such as application servers (although there is nothing you've stated in your requirements that Perl cannot do).

5) Java coders are a dime a dozen these days. Experienced Perl coders are not. Though my experience managing developers is that experienced Perl coders are far more technically literate in general than your average Java coder with equivalent experience. I'd rather have a stable of Perl coders any day than a stable of Java coders with equivalent experience if getting a product out the door in a limited amount of time was the objective.

So given the contents of the diatribe above, if I were making technical recommendations again, I would certainly advocate Perl (or PHP or a combination) for most web projects over Java provided I had the personnel with the experience to execute. Would management at your average company agree with me? If they knew what I know, they would agree with me. If their eyes glaze over when a glossy brochure is put in front of them, they would not.

Hope this helps!

In reply to Re: Client prefers java, but wants to hear a case for Perl by Anonymous Monk
in thread Client prefers java, but wants to hear a case for Perl by Ovid

Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":

  • Are you posting in the right place? Check out Where do I post X? to know for sure.
  • Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
    <code> <a> <b> <big> <blockquote> <br /> <dd> <dl> <dt> <em> <font> <h1> <h2> <h3> <h4> <h5> <h6> <hr /> <i> <li> <nbsp> <ol> <p> <small> <strike> <strong> <sub> <sup> <table> <td> <th> <tr> <tt> <u> <ul>
  • Snippets of code should be wrapped in <code> tags not <pre> tags. In fact, <pre> tags should generally be avoided. If they must be used, extreme care should be taken to ensure that their contents do not have long lines (<70 chars), in order to prevent horizontal scrolling (and possible janitor intervention).
  • Want more info? How to link or or How to display code and escape characters are good places to start.
Log In?

What's my password?
Create A New User
Domain Nodelet?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others studying the Monastery: (5)
As of 2022-08-12 02:42 GMT
Find Nodes?
    Voting Booth?

    No recent polls found