http://www.perlmonks.org?node_id=20287


in reply to Perl and Java's place in the Universe (and my resume)

The AM post is a very well spoken post.

One of the things that s/he didn't address, however, was the target. In the context of a backend web processing, Perl is used far more than Java. In fact, I don't know of anyone *myself* that has used Java for CGI type purposes.

Java, however, has one particular strength that Perl will never be able to address, and that's client side processing. Java allows you to manage graphics rendering, form validation, sockets connections, etc all on the client side. An example might be a client/server process where the server supplies a continuous stream of data to the client to be displayed as a gas gauge, representing the current number of processes running on the server (as to why this is useful, we'll just skip over). With Perl, the best you could hope to do is client-side pull, updating the form every so often. With a Java application, you could update as fast as your link supports (maybe 100-200 times a second).

Similiarly, if you have form data that's algorithmically generated, Java can do this for you. An example of that might be doing loan calculations, where the user enters the number of payments, the loan amount, etc, and calulcates payments. You *could* do this by re-submitting the form to the server everytime a user makes changes, but you take unnecessary server hits, and delay feedback to the user unnecessarily.

I've seen a growing number of standalone applications that are written in Java, such as book managers, CD managers, etc. They're pretty slick. Unfortunately, like Perl, they require the user to have software already installed in the machine to run them (typically the Sun JDK environment, or MS-Java). At the moment, this is what I'd consider one of Perls weakest points. If you're an NT user, or running on a poorly managed *nix box, you might not be able to run either the Perl application or the Java application. For this reason, I'm a big fan of web driven apps, where you, as the author, have control over the environment. Java applications written for a web browsers can be somewhat browser dependent, especially if you start getting a little funky. But, conversely, any classes the user needs to run the application get pushed to his/her machine at run time.

Knowing both Perl and Java give you an extremely powerful toolkit. There are those that pooh-pooh Java saying it doesn't have a place. They're just basically un-informed, and should be ignored. There are some jobs best (or easiest) done server-side, and some jobs that are best done client-side. Being able to recognize the difference, and knowing what tools to use (and how) is what gives you the ability to solve problems, impress your friends, and command awesome incomes. (Well, usually the first two, at any rate.)

Java, like Perl, is pretty much here to stay. There will be other technologies to come down the road, but the fact is that learning both of these is not going to be a mistake. Not to mention, the more languages you learn, the easier it is to pick up new ones. After a little bit, you can basically glance through a reference for a new langauge, and understand how to use it (you may not be able to exploit it to it's fullest potential, but you'll be able to do what you need to do. Which is the goal.)

--Chris

P.S. Skip learning COBOL, it's dead.
  • Comment on (jcwren) RE: Perl and Java's place in the Universe (and my resume)

Replies are listed 'Best First'.
RE: RE: Perl and Java's place in the Universe (and my resume)
by Anonymous Monk on Jun 29, 2000 at 20:12 UTC
    In regards to using Java for backend. I have, and it was/is horrible. Just as a fair warning, don't do it, Java has it's place, and it isn't there.