Skip to content

Instantly share code, notes, and snippets.

@ryankinal
Last active December 15, 2015 17:20
Show Gist options
  • Save ryankinal/5295904 to your computer and use it in GitHub Desktop.
Save ryankinal/5295904 to your computer and use it in GitHub Desktop.
Magic is great. Except for when it doesn't work.

It's almost a comedy trope.

The amateur magician attempts an illusion in front of a large crowd, puts on a good show, and then fails miserably. He's boo'd off the stage, shamed and cowering from the cartoon-like rotten fruit and harsh words of his disappointed and angry audience. When magic doesn't work, it's a sad, frustrating, and disillusioning experience. Any suspension of disbelief disappears, as perhaps the original trick had intended something else to vanish.

And the same goes for "black box" solutions in development. They're fine until they don't work, at which point you have to dig into the abstraction to figure out why, and all the voluntary ignorance disappears. You suddenly find out what's inside the box, and it's nothing special.

It's not magic.

Depending on your abstraction, it might not even be good code.

Hell, it might not even be a good idea.

Several months ago, when Internet Explorer 10 was released, I discovered that a lot of things on a particular website just broke when viewed in said browser. User registration, login, the entire gamut of e-commerce - none of it worked.

Under the covers, this website is built on ASP.NET WebForms. The fact that I don't mention the framework version should give you a hint about which it might be. But after my fellow developers and I did some digging, we discovered that IE10 was simply incompatible with ASP.NET ImageButton controls under versions 2 and 4 of the .NET framework.

Something in the validation of the coordinates of the mouse when clicking the ImageButton was breaking under IE10 - the framework was expecting an integer, and the browser was passing a decimal value.

Suddenly, I could see the mirrors.

When I went to Las Vegas, I went to see Penn & Teller. It was an excellent show. I have so much respect for these men and their frank, straight-forward demeanor whilst lying to your face and attempting to trick you into believing things that are clearly impossible.

There's one routine of Teller's that I particularly enjoy, and have watched many times on YouTube. Teller, of course, remains in composed silence throughout the sleight of hand routine, and several parts are still simply baffling to me.

However, the angle of the video on YouTube is different than my angle from the third row of the Penn & Teller theatre. Because of this, I could see the mirrors, and the routine lost a little something for me. It was unfortunate, but bound to happen for somebody (or several somebodies) in the audience.

Now, imagine that I held little respect for these men. Imagine that they were all flash and no substance. All show and no class. Imagine if they were honestly bad at their craft, and instead of impressive and interesting illusion and misdirection presented with style and grace, they were brash and over-the-top.

Imagine what would happen if I saw their mirrors then.

I have little respect for ASP.NET. I often find it to be all flash and no substance. All show and no class. I think the early version of the framework to which I previously alluded is a poor abstraction, and is over-confident and frankly unnecessary.

So you can imagine how I now feel, having seen their mirrors.

What little magic it held is gone.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment