views:

213

answers:

8

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?

A: 

I'm planning to use Java for a project served using Google App Engine (Java support, of course). This is not The Answer [tm], but only my 2 cents :-)

dfa
+1  A: 

Pick the language/platform that your team is most comfortable using, the one which matches your deployment target and that you're mostly proficient in.

jonnii
+4  A: 

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.

James Conigliaro
+2  A: 

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.

Cheeso
A: 

Whoever has the libraries you need: If you want to customize something pre-made, use PHP. This will usually be shopping carts, forums, and CMS

Java will have more libraries for random things (like fetching RSS feeds)

Don't know about Python/Ruby on Rails;

A: 

Rails is simple to learn, well organized and well documented. It's also agile and RAD (rapid application development). It's not perfect, but you could give it a try. It's another take on the web development. Java web framework are not so easy to understand and start is not so simple IMHO.

If you have to build a large web application, with rails you could separate the monolith app with different apps and then use ActiveResource restfully.

http://guides.rubyonrails.org

Luke
A: 

I have over 20 years of programming experience and I learned one important fact: it doesn't matter which tool you use, as long as you're comfortable using that tool. For larger teams, all team members must be comfortable with the choice you made. I always tell people that it doesn't matter which tools you used to create an application. All that counts is if it will work as expected.

Workshop Alex
A: 

Almost always :-)

What I mean is that you can do any web project with Java/JSP adding more or less to the mix ( Spring, iBatis, etc )

But, as already pointed out, there are cases when you decide to use something else because for instance your team has a lot of experience with younameit and no experience with java or things like that.

Billy