Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Web: When should I consider using Java rather than PHP, Python/Django, Ruby/Rails, etc?

Tags:

java

If gathering requirements for a medium-to-large web-based project, at what point should one consider using Java-based back-end, JSP, etc, over a scripting language like PHP, Python, or Ruby?

Hearing "use the right tool...", when is Java the right tool for web-based projects?

like image 942
anonymous coward Avatar asked Jun 08 '09 21:06

anonymous coward


2 Answers

What is the "Best" language is often degrades to an emotional debate rather than practical. Champions of each language are extremely good at making arguments for why each language is the best. I ususally look ata couple of factors:

A) What languages are you and your team confortable with?

B) Is there an existing application/system to be extended or integrated? If so, what languages are most effective for such an integration

C) Are there built in or redily available libararies, components, etc that will allow you to more effectively produce results in one language over another

My decisions almost always boil down to what language/platform is my team going to be most effective on both developming and maintaining.

like image 90
James Conigliaro Avatar answered Nov 15 '22 09:11

James Conigliaro


In my opinion, the language decision cannot be made independently of the larger development and runtime platform. This is implied by what James Conigliaro wrote, and also by what jonnii wrote, but neither called it out specifically.

Making such a decision, people often use unwarranted relative weightings for different evaluation criteria. For example, one of the criteria might be "runs on iPhone." But if you are not actually developing on an iPhone, you really don't care.

"Performance" is another criterion that can get an unwarranted weighting. Most Intel-based servers today, costing let's say $2000 without storage, are plenty fast to support a fairly high-volume web site regardless of your choice of language. If your load exceeds that which can be run on a single server (don't assume!), or if you need to share the server among different workloads, then perf may become more important. But generally your app load will fit in a 1-server box.

The development environment, including the IDE but also the source code control, the configuration management, and defect tracking - I guess what you might call application lifecycle stuff - is more important, in my opinion, than the language per se.

Another aspect you may wish to consider is, the "pull" the language itself will have on devs for your team. In the early days of Java, you could attract devs just by saying "we're doing it in Java." Now, that phenomenon has largely faded for Java, but in pockets it may still be true for other langs and platforms. This factor may or may not be important to you.

like image 45
Cheeso Avatar answered Nov 15 '22 09:11

Cheeso