I just read the entirety of Ruby's not ready by "glyphobet". Glyphobet makes some good points about Ruby, particularly about some of its lacking documentation. Ever since reading over SQLAlchemy's documentation I have been more aware that documentation may be one of the Ruby communities biggest "problems".
Glyphobet also makes a large blunder in the first sentence:
A few weeks ago, I learned Ruby and Ruby on Rails to compare them head-to-head against Python and Pylons, in preparation for a new project.A few weeks??? This is a joke, right? Implementing one <1000 line Python library PottyMouth and all of a sudden your an expert? Spending a few weeks learning a small portion of a language (the portion needed to implement PottyMouth) could only give you a cursory knowledge of the language and platform at best. The thing is, most of the time I like reading language comparison articles, especially ones that are written by thoughtful programmers who care much deeper about their craft than to spend useless energy writing flame posts. But its a waste to put so much effort into an article with only a few weeks experience. Thats why I take Zed Shaw's negative opinion of Ruby with greater weight than his recent positive opinion of Python. So please, next time please just spend a little more time with a language before you decide to write a long article pointing out it's perceived weaknesses, and we will all be better off.
April 9th, 2008 at 01:36 PM While it may only take "a few weeks" to learn the basics of a language, it takes far longer to learn how to write idiomatic code in that language. Just take a look at his Ruby port of PottyMouth for proof. The entire library is in one 900-line .rb file. None of the classes are namespaced. The testing framework is hacked together by hand rather than using RSpec or even the (built-in) Test::Unit. The code explicitly checks the types of objects using Object#is_a? rather than taking advantage of duck typing. I couldn't care less what this guy thinks about Ruby, because he's barely writing Ruby code anyway.