Even the wrong tool for the job is a nice choice if someone's already done the work of making a square peg fit a round hole for you.
And more people to hire, or to hire you, as well as books, mailing lists and so on.
Economists call this "positive network externalities", where the value of something increases with the number of people utilizing it.
That's the most overstated claim in programming. LESS is the "right tool for the job" when the job is styling web pages. Ruby is a general purpose programming language, the jobs it is good for is everything not covered by DSLs like LESS, the same as all other general purpose languages.
I question that. Ruby is very slow, dynamically typed and suffers from scaling challenges because of its multithreading support.
I think Ruby is increasingly falling into a niche: prototyping. Get a prototype up and running in a few weeks and once the proof of concept is established, switch to a statically typed language on the JVM.
Ruby was slow (still is), but that trend is changing. More and more effort is put into speeding up and modernising Ruby in general.
It might have only begun to mature, but it's definitely getting a there.
Rubinius is a lot faster than MRI and has proper multithreading support. There is also JRuby, which runs on JVM.
It's really a question of how and what you run. And yes, the JVM is one of those options.
I think there is a minimum threshold to this. I support a large application written in an extremely obscure language (it's basically me and 5 other people on an old yahoo mailing list that make up the entire community). It is terrible. No unit testing frameworks, no http framework for rest calls, no decent UI templating, and on and on. 100% of functionality that I need comes in the form of calls to command line tools.
Obviously, Ruby is way past that threshold, so I do not disagree with what you said at all, but just wanted to point out there is a limit. I would not write a new commercial application in any language today that did not already have strong package system. As one person, you can write a few essential modules that you need, but you cannot write all of them.
In response to this, I began building an open source javascript library that is nearing 1.0, and I am using it in new production work with great success. I chose javascript (node.js specifically) due mostly to performance with IO (huge in GIS) and its awesome ecosystem around npm. I am finding it much easier to build that one tricky library you need than to get the one tricky library for free and build everything else.
http://morganherlocker.com/post/turf
As to the 5 people... yep about 5-10, and my company employed a few of them. The rest are academics. The 'bus-factor' was pretty high before we switched off of it.
Very wrong. There are languages that I believe I would be very productive in, but can't justify the time investment because the community is so small that the related tools/libraries/frameworks aren't there.
On the other hand, if you are learning a language or platform in order to expand your capabilities as a thinker and problem solver, then community size is less of a consideration.
I know just the little bit of Scheme and Haskell has transformed how I think and my thought patterns. I can say the same about learning to play Go (the game, not the language).
Now, whether you get anything out of it, that's up to you. It's not really about learning a language that fit your mindset so much as learning a language to change and expand one's mindset. If you expect a language to fit your mindset, then you're unlikely to get anything out of it. In which case, definitely stick with the popular languages with a lot of community support. That has a pretty good ROI too.