Don't be afraid to look like an idiot

The other day I posted a rant about “Alphabetical != ASCIIbetical” which much to my surprise got picked up in a couple places and brought thousands of readers. As with any post that gets thousands of readers, some of them are going to call you an idiot.

…I don’t know what you call this sorting order, but it most definitely is not alphabetical. Maybe you should make sure you aren’t being a dumbass before you climb atop your own soapbox of delusional self-importance. - Dave G. [his full comment, my response]

And Dave’s right, about that part. It wasn’t “Alphabetical” sorting that I was after. I’ve heard it called “Alphanumeric”, “Natural”, and “Lexicographical” sorting. I haven’t a clue what the correct term is, or if there really is one for what I’m looking for1. I knew going into that post that it wasn’t really “Alphabetical” because numbers aren’t in the English “alphabet”, but I also knew that most people would know what I meant if I called it “Alphabetical”. But does my ignorance of the correct word mean I should have not said anything? Or that I should have written some meek apologetic post saying “I’m terribly sorry I don’t know what the word for this is but you should probably be aware that…” Fuck no! Nobody would have read it, or if they did they wouldn’t really think about it. The fact that that post made it is far as it did was because I was willing to stand up on my soap box and call people on what I believe to be a pervasive problem.

But you know what? I could have been totally effing wrong. Someone could have commented “Masukomi, you idiot, it’s the Foo.alphanumSort() method and it’s been there for six years. All major languages have something similar.” or more succinctly “RTFM!” I would have looked like a complete ass for telling people they should “be ashamed” of themselves.

But even if that happened it would have been worth it because my ignorance on how to address this problem would have been removed AND I would have a nice trusted library to work with. Plus, because I have absolutely no problem with apologizing when my ignorance leads me to say wrong-headed things.

We are all ignorant of far more than 99.999% of the things that go on in this world. There are just too many of them. So don’t be ashamed of your ignorance. Embrace it. Try and recognize what you do and don’t know, and don’t be afraid to say “Hey, I don’t know wtf this is but I know it’s fucked up.” Maybe you’re right, maybe you’re not. If you’re right, improvements may result. If you’re wrong you’ll learn how it works. And don’t be afraid to say “I am such a freaking idiot sometimes.” because you are. We all are. It is only a matter of time before each of us says something that’s based in ignorance and makes us look like an ass. But so what? As long as you’re willing to say “Oh my God. You’re right. Thank you! I was an ass. I’m sorry.” It’s no big deal, or it shouldn’t be. If the person you’re talking to can’t respect you for owing up to your mistakes then they’re not someone you want to associate with anyway.

I should also note that I didn’t write that post, or any other, with the goal of getting lots of people to read it, but I do recognize that calling people out frequently results in more people paying attention, and engenders discussion. I posted it because I believed there was an issue that needed addressing. And I know there are a handful of people who read this who might want a heads-up, and / or be able to empathize with my frustration. I know that I find it comforting to read other developer’s blogs and see them struggling, or being annoyed with, the same things I am.

This is my soap-box. Sometimes my leaflets are wrong, but I’d rather risk being wrong than never say anything.

  1. Looking for: a sorting algorithm that treats numbers in strings as the numbers they represent and not the digits that happen to be used to represent them. 1000 is not four digits that need to be sorted. It’s a representation of the number one-thousand which needs to be sorted correctly relative to other digit based number representations that get mixed in with letters of the English alphabet. See my response to Dave G.’s comment for an example.