|
I made an assumption in my reply that client-side Java would be used if a Java application is written. That influenced my point and it probably made my response confusing.
If this is purely a server-side issue, I would object to Java on different grounds. However, one of the advantages of Java in "larger" projects is that it can be used to insulate the project from bad programmers. If the architect properly designs the application, the classes simply have to provide the proper interfaces and outputs, and the implementation is hidden by encapsulation.
However, this allows for sloppy, unmaintainable, poorly written code which ultimately serves no one well. So the "large application" advantage of Java rests mainly in its ability to allow bad work to "run". This is not to say that it can't be used well, but in my practical experience it rarely is.
Most Java apps I have to deal with are configuration sensistive, resource hogs, and leak memory like a sieve. I use them, but I wouldn't choose to use them if there was a viable alternative.
Other options for server-side applications are also vulnerable to bad programming, particularly when they involve a large codebase, or employ large, neophyte, or unstable development teams. Perl, Python, and PHP can all be used to great effect in large projects but they can also be used to create a terrible mess.
PHP is particularly vulnerable to making messes because of a combination of language design and programmer community. Perl can be a nightmare or a dream, dependent entirely on the developers skill and experience, and the willingness to invest in the required effort to do it right. Python probably offers the best object model, and though it lacks enforced encapsulation, if the team is disciplined, naming conventions can deal with that issue.
If I had to choose something for server-side, it wouldn't be Java or PHP unless something very compelling in the business case pointed at either of those. If I was choosing, a priori, a language for server-side applications, it would be either Perl or Python. Perl for my own reasons, and because I know it can be a very good choice when properly employed, and Python because it has also proven itself, and it offers a bit more orderly structure than Perl.
|