Some time ago I was talking with some friendly software developer about programming languages. They now have a "pet" language, one they believe to be adorable and cute, and decided to use it mostly on everything they do.
The language in question (Scala) is not a bad language but it's also not a "WOW!" kinda of thing. It's just another one, in this case even tied to the same java virtual machine as java itself usually is (not mandatory, but usually).
This made me think. If I was to choose a language for a project with developers that come and go as they please and be as sure as possible that in the future the new crop of developers would be able to pick up where the previous one left, which language should I choose?
I find it a lot harder than I though on how to decide which, but I managed to decide by negatives.
Now... keep in mind that is is just my opinion, formed while commuting so it is most likely wrong.
First a decided to drop all non strongly typed languages. They are all fun and games until the software gets bigger, bugs start to crop in and developers have no shield over small design mistakes. With a typed language those mistakes would jump in the screen in front of the developer until he fixed it.
This lead to the dropping of most interpreted languages such as python and ruby (I do like the first, don't really care about the later).
Then it must be a language that can be cross compiled and run in different hardware and operating systems. Bye bye all the .Net stuff. While Objective-C as a language is not actually tied to Mac OS or iOS it's quite hard to develop for other platforms for the lack of libraries (yes, I am aware of, and appreciate, the GNUStep effort).
Another good source of input when thinking about what programming language to use is the TIOBE index. Scala doesn't do very well there by being in position 34 (way behind that dinosaur called COBOL).
The top programming languages that fulfil the requirements I just stated are: + C + Java + C++
Another good input on how popular a certain programming language is among developers is by using google trends to compare the rates of search on each language. Here it's:
Notice how Scala doesn't even show up... Oh well.. It might mean that my friends will be able to pull a developer with a unique skill latter in their career. I hope they will, 'cause then I'll have them pay me the drinks.