That was good, although I'm not sure I agree with all of the analysis.
Perhaps there is a difference between "language as a solution" and "language as a development platform". If you are looking for the best solution to problem X, choose the language best suited to solve the problem. If you are looking for the best development platform for problems X1..X1000, then the calculus comes out differently. Dunno.
My thoughts on that are that most developers are not going to be proficient in more than 2 or 3 "full fledged" languages at a time, with some other things like SQL thrown in that they're ok at. So a lot of people really are looking to learn something that does a lot of things pretty well, or that at least doesn't fail horribly at anything.
I think if you strip aside the emotional reasoning that's going on, some languages naturally fit with some people more than others. Thinking in terms of functional decomp and association is just different than thinking in terms of objects. Some people build their own "language within a language" each time they solve something. Some people just want a language that is easy to find help for on the internet. Perhaps the trick is to identify which of those paradigms best fits your long-term goals for your both you and your problem.
I once interviewed a guy with a bunch of different languages on his resume. "So which do you like best?" I asked. He responded, "Java". I said, "Why's that?" He said "Because when I hit the compile button most of the time it just runs."
> some languages naturally fit with some people more than others
Precisely! Because, in the end, languages are for people, and people are fickle and weird, and often irrational.
I think there are some things that make some languages more or less objectively better for some tasks, but like anything that revolves around people, it's often not so clear cut.
Perhaps there is a difference between "language as a solution" and "language as a development platform". If you are looking for the best solution to problem X, choose the language best suited to solve the problem. If you are looking for the best development platform for problems X1..X1000, then the calculus comes out differently. Dunno.