Language Selection

Decision Factors

Selecting a language can be a difficult and controversial decision. Ultimately, the decision should come down to costs, which may include some or all of the following:

  • Hardware
  • Software purchases
  • Labor (development, testing, maintenance)
  • Training
  • Operational costs (infrastructure, electricity, etc.)
Language or Religion?

In the 1980's, if you weren't using C, you were a heretic. In the 1990's, if you were still using C, you were a heretic. The fervor is often the result of the naive "newer is better" mentality. In recent years, C has been making a comeback, as people have discovered that their cool new languages turned out to be false messiahs. C++ was the rage in application development in the early 1990s, then Java, then Scala, yada, yada. Perl was the rage in server-side web programming until PHP and Ruby-on-rails came along. The saga continues.

There is no shortage of evangelists in the computing arena. Many of them will angrily educate you on why their favorite language or operating system is "better" and why people who use anything else are idiots. Most such arguments take the form of "my language or OS has feature X and the others don't", where "feature X" is something you will probably never need.

Don't pay attention to arguments that are obviously based on a bizarre emotional attachment to a piece of software. Those individuals are less interested in helping you be productive than they are in getting you to validate their choices and admire their cleverness. As with operating system evangelists, a Socratic examination, where you simply ask them to objectively clarify their beliefs based on knowledge of the languages they are comparing, will usually expose their ignorance.

Then there is the economic reality. Billions of lines of C, C++ and Fortran code have been written at great expense and rewriting all this code would be a foolish waste of man-hours.

Base your choice of language on practical considerations: Portability, performance, availability, etc. Ultimately, this should be a sound economic decision. Which language will lead to the lowest overall cost for the project in the long term?

People who understand programming will never tell you that one language is "better" than another. They will talk about specific capabilities, like performance, portability, etc. They will ask questions about your needs, demonstrate knowledge of multiple languages, and try to help you find a language that fits your needs, rather than evangelize their personal favorite.

Practice

Note

Be sure to thoroughly review the instructions in Section 2, “Practice Problem Instructions” before doing the practice problems below.
  1. What should be the main criterion (singular) for choosing a programming language?

  2. What factors contribute to the cost of developing and using software?

  3. How do you expose invalid arguments of a language evangelist?