What’s Wrong With Bitwise Magazine?
Saturday, 17 March 2007
Posted by austin in: Ruby, Technology, comments closed
I have a problem with Bitwise Magazine. They have published several articles critical of Ruby—and those articles have been singularly devoid of informed content. I’ve seen better articles on Slashdot, to be honest. Huw Collingborne’s article from a while back was bad enough (although he has done significant work lately to redeem that with Sapphire in Steel), but the latest example, What's Wrong with Ruby? is a shining example of ignorance masquerading as informed opinion.
It is obvious that Matthew Huntbach hasn’t done serious programming with Ruby or serious analysis of programs that are already in existence. Most of the vaporous commentary written (probably 80% of the article) would have been burned away by that simple exercise. Even if one were to accept the argument that [1, 2, 3] + [10, 20, 30] should be [11, 22, 33] instead of concatenation—an argument smashed as soon as one attempts to add heterogeneous arrays together, or arrays that don’t contain items that respond to #+—it would be trivial to add such a special case (and then abandon it because it does present such a special case to normal Array#+).
Mr Huntbach’s history is even questionable, with respect to Ada. Ada wasn’t accepted because it was something of a bastard language designed by committee (very similar to Pascal, but with amazingly strong type restrictions), not just because it was facing C++. Ada failed because Turbo C++ was cheap and, well, there was no Turbo Ada. It failed to capture the next generation of programmers because it wasn’t readily available the way that C and C++ were and introduced a number of significant development-time restrictions that made interacting with the rest of the operating system difficult. (It may not sound like it, but I actually like Ada, and I have ever since I took a class on it in early 1993. I still don’t program in it, although I have programmed in a descendant, PL/SQL.) If Java had not been available as a free download (as the JDK), no amount of computer science department gushing about it would have saved Java from the cheap and free C/C++ compilers available at the time. Ada was doomed because the whole world was changing (and not just to OO-style development) and it was stuck in a restrictive model.
The comparison of Ruby to Ada is a false one in any case: Ada was designed to solve a particular subset of programming problems (namely, those requiring exact specifications, e.g., military applications) that required a very strict specification and completely predictable behaviour. If a particular sensor can only return values between -128 and 127, then you can make a subtype of Integer restricted to those values—and you can be absolutely guaranteed that the values in variables of those types will never be outside of those ranges. So Ada wasn’t designed as a silver bullet; it was designed as a language where specifications, interfaces, and code very closely matched. Ruby, on the other hand, was designed to solve problems that Matz had. When he introduced it, other folks realized that it helped them solve problems that they had. And so it has grown from 1993 to 2007, where now literally thousands of developers realize that they are running into the limits of current programming languages. They’re writing tens of thousands of lines of code that don’t solve their problems, but provide scaffolding for their programming languages. Once those are written, they can usually write code to solve their problems. I believe that Matz has even said that if something came along that was better than Ruby and helped him solve his problems better, he’d use it. (At the very least, he’d take ideas from it to make Ruby even better, which he has shown himself willing to do many times over.)
A lot of Bitwise’s articles seem to lack editing. Mr Huntbach’s article was, at best, stream of consciousness, and had the feel of a blog posting, not an article in a magazine. If you’re going to call yourself a magazine, invest in editing resources. Ruby Code & Style, the Artima Ruby magazine, is going through some transitions and will be experimenting with a CodeProject-style system, where articles can go live without editing, but they will still be edited by a team of volunteers, and will be marked unedited until they are well-considered. Editing would raise questions about why easily refuted examples are chosen, fix errors with historical inaccuracies, and prevent articles as embarrassing as this one from being published under the magazine’s banner in the first place.
Yet, that’s not the only problems. As a long-time Rubyist, I’m actively embarrassed to read many of the comments on Mr Huntbach’s article. There are a few well-informed comments on the article, but the vast majority of them are painful to read and unnecessarily insulting. Mr Huntbach needs to be better informed, and his article needs editing, but there is no to be as insulting as some of the comments were.
Edit: I was alerted to this article through a post on RedHanded. I find Why the Lucky Stiff’s response to be useful, but there’s a lot of the same attitude that I didn’t like seeing in the Bitwise comments on RedHanded’s comments. Remember MINASWAN, folks. Regardless of what you think of Mr Huntbach’s credentials or where he teaches, it gains nothing to slag them; help him understand where he’s wrong and we’ll be that much better for it.



