jump to navigation

What’s Wrong With Bitwise Magazine?
Saturday, 17 March 2007

Posted by austin in: Ruby, Technology, trackback

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.

Comments

1. Grant McInnes – Sunday, 18 March 2007

I agree! The tone of the comments, especially on RedHanded is abysmal.

I disagreed with Huntbach’s post, but I didn’t see anything in it that would warrant the venom in the response. I was taken aback, especially since some of it was coming from people whose names I recognize, and who I know aren’t adolescents.

2. Huw Collingbourne – Monday, 19 March 2007

Thank you for your comments. You seem to suggest that Bitwise Magazine has an anti-Ruby agenda. This is not true. Indeed, as the developer of a Ruby IDE, if I personally were to express a bias, I think it is pretty obvious that I would wish to promote the virtues of Ruby rather than its drawbacks. Bitwise, however, does not have an agenda pro or against Ruby.

As the editor of Bitwise, I can tell you that when I asked Mr Huntbach to write his views on Ruby, he was given absolute freedom with no editorial control over his article. If anyone with appropriate experience wishes to write an article from a different perspective, I would be glad to hear from them.

As for your suggestion that we should more actively edit the content of writers, this is an idea upon which I would not look favourably. Each time the original author’s words are edited, the meaning of those words is changed. Having worked in magazine writing and publishing for 25 years, I myself have repeatedly been subjected to aggressive subediting, with the end result that my articles have been Bowdlerised before they are read. If somebody objects to an author’s views, I would prefer that they read the author’s words rather than words that have been cut or interpolated by subeditor.

best wishes

Huw

3. Daniel Berger – Monday, 19 March 2007

+1

The first thing people need to realize is that it’s not necessary to respond to every person who doesn’t like Ruby. Even if people disagree with their reasons for not liking Ruby, they shouldn’t feel compelled to respond. Better to ignore them, really. The very act of responding lends them a degree of legitimacy we probably don’t want to ascribe to people like this.

Second, I learned long ago that there’s no convincing certain types of people of the merits of dynamic languages – mainly academics and 20+ year C/C++ veterans. It’s just not going to happen. They’ll either hate the lack of typing, or they’ll hate the semantics, or the syntax, or *something*. So, don’t even try.

4. Matthew Huntbach – Monday, 19 March 2007

Like lot of people who have commented on my article, you have completely missed the point I was making about array addition. I wasn’t saying I thought [1,2,3]+{10,20,30] should be [11,22,33], I was pointing out another article where someone suggested it “obviously” should be. I pointed this out just to urge caution about saying that a language is good because what it does is “obvious” – what is obvious to one person is not obvious to another.

Also, I’m very well aware that Ada was something of a bastard language designed by a committee. Thats my point – there was a short time, which happened to be the time when the famous “silver bullet” article was written, when it really was put forward as the answer to everything. I mention this only, again, to urge caution – a language which looks good at one point may not look good a few years later, don’t believe the hype.

You talk about “Computer Science departments gushing for it” meaning Java, which really is nonsense. Very few academics have been particularly enthusiastic about Java. It’s turned out to be a reasonable language for teaching in an object-oriented way, but many academics have had to be convinced that OOP was more than a fad, quite a few at the time Java came into being, were still smarting over the functional and logic languages favoured by academia in the 1980s never hitting mainstream. Java was always pretty much a compromise, adopted because industry had taken to it, not adopted because academics were “gushing” over it.

I took some some to look over Ruby, try a bit of coding in it, read some of the tutorials on it. I wasn’t as impressed as many people seem to be with it, and I said so – it didn’t seem to me to be as radical as some claim. I was also concerned that its dynamic nature would lead to messy code that would be hard to maintain. Why do you hold it to be “embarrasing” that I say that’s my impression?

My own experience of teaching introductory programming suggests to me that using Ruby wouldn’t make the task any easier. The idea that substituting dynamic typing for static typing will solve the well-known problem that intro to programming classes have a huge failure rate struck me as very naive. Reality is that all sorts of programming languages and approaches have been tried as a “way into programming”, but every time, and the world over, and whoever teaches it, the outcome is the same – a few in the class are bitten by the programming bug and take to it, a high proportion of the class just don’t get it and fail. There were some who were saying Java was the answer to tis problem when it was first used for teaching. I thought it worthwhile to mention this because I suspect most Rubyists fall into that minority category of people who take to programming and naively suppose that’s the answer – just like everyone else who has ever had a new programming language they liked has supposed. Did you really miss that was the point I was making? I’m just urging caution over some of the hype – why do you claim that to be “embarrassing”?

5. grrrr – Monday, 26 March 2007

I think you are picking on some very minor point’s to dismiss the main argument of Matthew Huntbach you even misunderstand some of his arguments. He is not saying ruby is not useful. The claims that Ruby’ is intuitive and elegant are total nonsense. Programming is never intuitive and especially ruby is one of the lesser elegant languages I know it is close to perl (also a very useful language) in elegance. as for why the fact that somebody needs to be entertain to keep his attention while learning programming is indeed …

6. Peter Burns – Thursday, 29 March 2007

I’ve been disappointed recently reading the comments on several blog posts critical of ruby. Granted this is often in response to statements that are in error (some more obviously than others), but that’s no excuse for obnoxiousness.

I think it might be worthwhile to reiterate that MINASWAN is one of the guiding principles of the ruby community.

Rudeness is offputting and it doesn’t leave a good impression with anyone.