Gray's Matter
Justice Gray - North America's favorite metrosexual software consultant

I Wish These People Updated More Than Once a Year


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!

Tuesday, March 04, 2008 #

3/4/2008 9:04:28 PM (Mountain Standard Time, UTC-07:00)
Yeah, javascript libraries are essential nowadays. They make things so easy that even I can make something that looks decent. (And that's no easy feat.)

Personally, on my own sites (personal and work) I use mootools. They give you a minimal set of functions that you can easily chain together into cool effects.

<3 Request.JSON

The only downside to mootools is that it's in very heavy development so the api changes ALL THE TIME. It's annoying as hell but worth the pain.
3/4/2008 9:42:05 PM (Mountain Standard Time, UTC-07:00)
One I have recently found (thanks to a guy at work) is at

http://www.extjs.com

It has all sorts of really cool JS libraries (free for personal use, purchase a commercial license, or donate and discuss with the owners about licensing). Has a lot of interesting ideas to use going forward... and it's code base is actually readable (unlike many JS libraries out there).
Name
E-mail
Home page

Comment (HTML not allowed)  

Enter the code shown (prevents robots):