Pick language

One must use the language most appropriate language to solve the problem at hand quickly and with computational efficiency.

Sometimes, a tradeoff may be involved: tradeoff between expressiveness and efficiency of a language. One may even use different programming languages to specify different parts of the logic to the computer.

Expressiveness/ conciseness

Expressiveness is important in rapid prototyping/ programming. The presence of useful libraries is a major factor which affects conciseness.

Writing linear algebra logic in Java or C, for example, is far more tedious and cumbersome than using Matlab for the purpose, even in the presence of some good library functions: You end up worrying about low-level things like data representation and casting, rather than the linear algebra.

Iteration

Much of programming involves iteration.

Common operations and transformations on collections like Lists, Maps etc are much more efficient in functional languages like Scala than in C or Java. Idioms like map, filter, find, groupBy, indexWhere, zip, foreach reduce programming time significantly.

Freed from having to keep ’book-keeping’ specifics in mind while programming, the programmer is happier to write code which considers all corner cases (rather than take shortcuts and state known bugs). The programmer can focus on algorithm-level optimizations and be more creative in general.