Business Decision: Choosing the appropriate language
Consider the following Language-Applicability Rating (LAR) formula, and choose the language and tool with the highest LAR for your weighted needs:
wPerf x wDynam x wFlex x wUbiq
wSkillCost x wTime x wSys x wToolCost
wPerf (Performance): Is the language fast to execute?
(Dynamics): Is the result a dynamic application (i.e., one that changes based on user interaction or differing data)?
(Flexibility): Is there flexibility in modifying the output (are small variations doable)?
(Ubiquity): Are the required tools and components available to the end user (or do they need to download, install, upgrade)?
What level of skill is needed to develop with the language? Are these people available? What is their cost?
How much time does it take to develop with this tool?
How much memory, what CPU, what OS, are required to use the language results.
What is the cost of the language tool? (This is usually so low as to be irrelevant.)
LAR formula is a tool for helping to determine what programming language to use for your particular needs. Each of the criteria is weighted with the importance of that criteria to you, and then multiplied by the value of that criteria (this is best performed as a mental help in decision making, not as a truly scientific formula).
For example, consider developing a web page such as the one you're viewing now. Ubiquity and low system-requirements are very important (i.e., I want everyone with a browser to be able to read it without installing anything new), and a low Time-required is also very important because I'm preparing this Monday night and the presentation is for Tuesday morning. The other factors are not important and so are weighted very low. HTML gets a high rating for this case and that is how I'm preparing this page.
Try the formula against your own needs. For most dynamic programming situations, the small skill cost and and low development time required lead to a script language with the highest LAR. Which of the script languages has the highest LAR will usually depend on where the scripting needs to occur (servers, browsers, applications, embedded systems, etc...)
Quite often a project is best broken into pieces that will work together; some pieces will best be handled by system languages, some by scripting languages, and some by static tag languages.