chris webster wrote:Sorry to disappoint you, Jay, but there really is no language that is intrinsically "best" for anything.
Each language will have different pros/cons that may be relevant for a particular application area - I wouldn't want to write a device driver in PL/SQL, for example! - but there are lots of factors outside the language itself which are also important:
What is the target environment and what hardware/software does your code have to integrate with? Do you already have the skills available for using this language? Are you already a Java/.NET shop, for example? Are those skills available widely on the market, or would you have to invest in hiring/training specialists? Are you working for an organisation that is prepared to invest in complex software engineering (like a software house) or are you just a small IT department in another business that really just wants cheap plug-and-play systems? What kind of tools or frameworks exist to support the use of the language? Will the language still be around and supportable for the expected lifetime of your system? Do other people use it, as this influences the likely availability of skills/support?
The costs associated with acquiring/retaining skills and support for a particular language or platform are an important factor that often gets ignored by techies, who often want to dive into the latest cool language without necessarily thinking about the commercial consequences. Scala looks great, for example, but right now I suspect many people in the mainstream IT industry are cautious about investing heavily in a technology that has not yet reached the critical mass where they can be sure of being able to support that investment in future. Meanwhile, there are lots of valid criticisms that can be made of the complexity and costs associated with enterprise Java projects (I've seen some truly disastrous JEE projects), but at the same time those skills are widely available, the technologies are familiar and available on many different platforms, and there is a tendency towards groupthink in the industry anyway ("Nobody ever got fired for buying IBM" and all that) so Java is often the default choice for many projects unless people have particular reasons for choosing other options. Which is a pity, as I'd certainly like to get into more "polyglot programming" myself, but nobody's paying me to do so right now...
Anyway, I'm sure the other JavaRanchers can come up with lots more factors that will influence the choice of language for a given application/environment.