17 March 2007 ~ 2 Comments

Fightin’ words

Matthew Huntbach talks about what’s wrong with Ruby.

Update: Wow.

I have to admit that I only skimmed the article before posting it. Now that I’ve taken the time to read Nate’s comments below, and the actual article… I almost regret posting it.

I’m not sure if Matthew is actively just trying to troll for hits, or if he’s really that confused/shallow in his review. He ranges from downright cheap shots (e.g. his comments re: Why’s Guide) to a very odd complaint about lists. For some reason, in his mind if you have a list of ["apple", "banana", "grape"] and add that to a list of ["pork", "beans", "rice"], the language should perform operations based on pairings of the items… rather than sensibly just yielding a list of all the elements combined.

In the end, he claims to say what’s wrong with Ruby, but mostly he just complains about the free tutorials he came across or that he found the marketing materials for a specific book to be hyperbolic (you don’t say!). The article is, in essence, no more than one complaint about how lists are handled and then a few more complaints that basically come down to personal preference.

A weak article indeed. Blah.

2 Responses to “Fightin’ words”

  1. Nathan Powell 18 March 2007 at 8:02 am Permalink

    Heh, you just knew I’d bite on this.

    He starts the talk by saying that academics always thought the reason no one used their languages to get real work done was because their languages weren’t promoted by big companies. Then he admits he was wrong on that count since Perl, PHP, Ruby and Python were the work of individual hackers.

    He gave this talk last year…and he’s just now realizing that scripting languages are being used to get work done? I think this is a case of someone surrounded by the comfy confines of academia who is out of touch with real software development.

    Then he goes on the attack, calling Perl and PHP “simple text manipulation languages”. I am no PHP fan boy, but there is more to the language than that (however going around trying to defend PHP is probably a cause not worth taking up), and clearly the man knows nothing about Perl (I would urge he look into things like Higher Order Perl, that ought to tickle his professor bone). This would be akin to me giving the reverse talk about why Haskel isn’t good because it’s language for academics and not fit for real work.

    Then of course we have the obligatory attack on dynamically typed languages, which he incorrectly asserts Ruby has “thrown away”. Not true. Type matters in all languages I am aware of. Granted each language I am familiar with handles it a bit differently, but type still matters. In Ruby, try concatenating a integer to a string…it will indeed throw a type exception, and require that (to use java parlance) you cast it to a string. Even in Perl, it will not throw the exception but the result is the same, Perl will automatically cast it to string for you. It’s not that type has been tossed out, it’s just not what he is used to, so it’s bad. I have written a lot of Java, and lot of Perl, and a lot of Ruby…the number of bugs stays relative. Type bugs are the least of ones worries when making actual end user software. It’s always the same, the program runs but the output is incorrect. This is semantic, not syntactic. The truth to be learned by all the successful projects that use dynamically typed languages is this: Actually typing out your the types of your variables and such is unnecessary at best and a gross waste of developer resources at worst. Much like peoples constant speculation about when Linux will be ready for business, it’s bullshit drummed up by the uninformed. The rest of us keep getting our work done using these tools while academics and phb’s decry their use.

    He also attacks Why’s Poignant Guide to Ruby. Whatever, lighten up. _why is a freak of the first order, his tutorials and examples are filled with comedy, albeit bizarre comedy, but comedy nonetheless. “I hate Language X because I don’t have a sense of humor.” Please.

    It occurs to me that most of his “attacks” stem from 2 things, either he doesn’t understand it, or it’s different than he is used to.

    His next point, that Ruby wouldn’t be a good language to teach undergrads how to program, that, in his words, it would be painful. Huh, interesting, there are an awful lot of us autodidactic programmers out there getting paid to produce useful software that picked it up. Perhaps the problem is not with the language, but with the students or the teacher. In my opinion, this would be akin to me saying “Writing that application would be hard!”. More of a admittance of my own shortcomings as a programmer, than on the available tools. It’s his job to make those kids understand, not being able to do that would not be the fault of Ruby or of any other language he chose.

    Look, programming is hard work. It takes mental energy. Understanding how it works takes time. This is not the fault of languages. It is what it is.

    What comes up over and over again is sour grapes. He thinks everyone is walking around talking about how cool Ruby is, and he’s stuck fucking around with Haskel calculating Pi to 314 digits. Boo hoo. Ruby is cool, so is Python, so is Haskel, so is Java…grow up. He comes off as a petulant child that doesn’t have a rubics cube while all the cool kids do.

    Anyway I have work to do. And I am going to purposefully misuse inheritance to do it, and if there is any cosmic karma, this guy will have debug it someday. Then he can bitch and whinged about how in Java it would be easy since he could look at the object hierarchy and determine where I went wrong

  2. John 18 March 2007 at 9:07 am Permalink

    798 words! :)


Leave a Reply