- I don't like the overall community. That is not to say I do not like Ruby hackers, period -- a number of my friends fall into the category. However, I do not like the general holier-than-thou attitude that much of the community takes and the fact that they seem to spend more time talking about how fucking awesome Ruby is than they spend actually writing code. In many ways the community is young and I believe it has a lot of maturing to do. Once again, this obviously does not apply to everyone, but one of the most important attributes of a programming language (at least to me) is its community on the whole.
- I don't give a damn how "cool" a language is and this seems to be not only a general argument for it, but also a method by which many tutorials and other literature explain or introduce the language.
- I am of the opinion that Ruby is far more ad-hoc than it is elegant, and I think many are simply confusing the two. Sometimes you need (), sometimes you don't. Some people think the lack of "unnecessary" parenthesis makes the language more elegant, I just say it makes it harder to determine if something is an attribute or a method, for example. I don't believe there should be 50 different ways to do the same thing; there should be a couple different ways and one of them should almost always be considered "the best".
- What's intuitive for one person may not be so for another; it's not a universal thing and as such I do not find the language as intuitive as hyped. For instance, I find the following completely unintuitive:
['list',...]. each { |food| print( food.capitalize ) }
Why? Because it looks nothing like a standard for loop. In Python, I can do a similar one-line loop over a list, but the syntax is far more intuitive to me because it looks like a loop: for food in [...]: print food.capitalize()
There are class variables and instance variables and constants and globals and you define one of them using @@ and CapFirst for another and... it just feels like a cluster-fuck to me.- Despite all the Ruby community hand-waving about how "Ruby can't scale is a myth" and so forth, the fact remains that it is a (relatively speaking) young language which has many significant shortcomings -- shortcomings that even its own creator acknowledges. Except, many try to ignore these when they shouldn't.
Do I think Ruby has nothing going for it? No. Do I think it has no hope of improving and growing? No. I do, however, believe that it has a lot of growing, improving, and maturing to do before it is even half as godlike as so many feel it is (or just feel they need to say it is). That being said, I don't think I will ever use Ruby -- for these and other reasons (this is already too long). I imagine I will at least be civil towards it... eventually ;)