This is going to get a little personal but bear with me - it's
a story from the dark recesses of my past that needs sharing. Because
this blog always pulls out all the stops today's entry comes with
musical accompaniment by
everyone's favorite 5-man band, Earth, Wind, and Fire. This is best
read if you listen to "After The Love Is Gone" while you are reading
this saga, so I've embedded it here.
My wife used to *love* the user interfaces I designed. "Oh, *that's*
nice." "The client will *love* that." "This is *amazing*!" People
warned me it was just the honeymoon phase, that eventually this
infatuation would pass and Mrs. L would be off looking at other UIs. I
didn't believe them, partially because I was naive but also partially
because the main proponent of this theory collapsed in a drunken heap
after giving my wife his new business card and telling her to leave me
because "eventually you'll find far better UIs out there." Out of
respect for
this man's privacy I've declined to name him. Nonetheless
I'm sure why you can see why I was skeptical
Our lives went on but in the back of my mind I wondered - was there
even a glimmer of truth to this man's words? Sure, there's not a lot
of credibility to be had from a man who gtells women "the greatest UI
of all is down *here*" before falling down on the floor and wetting himself, but it made me a
little jumpy.
At some point - I don't know when - I found things had changed. Mrs L
had begun to lose inerest in looking at the sites I was designing.
"Yeah, that's okay" or "Are you sure they'll be happy with that" had
replaced the previous enthusiastic cheerleading. More than that, I
noticed that her eyes were wandering...wandering to other sites.
Sometimes I would catch her and she'd race to close the window, telling
me it was "just nothing". I, however, have the mind of a
steel trap, and thus knew she was hiding something from me.
It all blew up one day when we were reviewing a UI design I had
sketched out - at which point she asked me, "Why don't you do it like [
this site]??" Awkward silence ensued as she realized what she had unintentionally admitted to - she had been actively looking at
other UI.
The next several weeks were a downward spiral. I couldn't even open
Firefox without feeling nauseous. Out of respect she moved herself out
of our office and put her laptop on the kitchen table for her work. I
meanwhile spent every day for two weeks drinking down a mixture of
salty liquor and saltier tears. It was at this point I felt we had
truly hit rock bottom. Friends suggested that maybe I try looking at
Silverlight, but I didn't need some "5 minute abs" style solution to UI
concerns; I needed something that would be
legitimately transformative.
I thought perhaps I needed a complete reinvention - thinking that
perhaps an entirely new lifestyle would be the solution to my
problems.
And that's when I discovered
prototype.js. [You can now change your musical selection to "Let's Groove Tonight" by Earth, Wind and Fire - I've attached the *original* 1970s video!!]
We've talked a bit before about why I feel so strongly about Javascript
and those of you who were at my MVC presentation last November
(honestly, I *am* going to post about my experience there, I promise)
also heard me talk to these points a bit. Prototype (and yes, Ben,
JQuery as well ;) ) is what turned me around into the rampaging
machismo machine I am today.
As I began to explore prototype and its cousin
script.aculo.us an entire new
world of
user interface design became clear to me. Form elements that could
gracefully fade in and out depending on validity of input. Modal and
non-modal windows for login. Scaling and scrolling effects. A
floating tooltip plugin, which I hacked in order to be a "Pop-up Video"
style real-time help system. And
DOM traversal functions that actually made sense! Sure, Visual Studio can't debug either of the libraries at all, but who cares? VS is obviously just jealous.
I redeveloped my UI using prototype and tentatively showed it to my
wife. Instead of the "Well, I liked [this site] better" I received
cries of "How did you do that?" and "I'm sorry my eyes ever strayed.
Can you forgive me?!" Since then we have lived happily together and I
know that now, more than ever, my UIs are truly without peer.
It was with this that I learned a valuable lesson. After all, the code
underneath hadn't changed, but it was the UI that turned her around. I
had discovered that my experiences with prototype and script.aculo.us
were not just a marriage-saver but a
metaphor for life. You
see, in the end, it's nice to think that clients actually care about
how elegant your database mapper class is or how many design patterns
you've used from the Gang of Four. But it doesn't matter. It's not to
say that clients don't care at all about having a solid and maintable
system...it's just that they are
much more appreciative of a sexy system than they are a reliable one. This goes for *everything* in life. Like
it or not, superficiality exists in everything, even development. Do
you think anyone cares if Facebook's code is an untenable mess? It's
17 million billion users say the answer is "no". They use it because
it fills a void, it's
easy to use and for the most part (let's exclude the ridiculous "Funwall" garbage) it
looks good.
If you're looking to:
- lose weight
- have better self-esteem
- have clients that are excited rather than falling asleep as you pore over the cylcomatic complexity of your code
- meet women
- no, I mean *real* women, not the ones you're chatting with on WoW
prototype and JQuery have my highest recommendation. Check them out today if you dare!