Speed Demon has a Change of Pace
First, an apology. I promised more to come on Joel Spolsky's Book Joel on Software in my last entry weeks ago. I wrote part of an entry, but I am unsatisfied with it; I can't add much more to it than simply say, "Go read it." Seriously. Check out the site, Joel on Software, and you won't be disappointed. Be sure to check out my all-time favorite entry, about how multi-tasking (aka task switching) is harmful to developers; it's also one of the articles which will be helpful in other industries.
Anyways, over the past week at work, I've spent a lot of time optimizing various aspects of one of our products such that they work much faster than in the current version. There's been all sorts of tweaks across the board, but we're unable to go much further. The biggest hurdle now is the browser itself. IE6 is our "worst" supported browser, and I wish it would just go away. And, realistically, it is - Microsoft is pushing IE7 hard, which isn't my favorite browser by any means, but it is much more friendly to web developer types. But, IE6 is still an oft-used browser, so it retains a place on our list of supported clients.
What makes IE6 so bad, might you ask? Well, lots of things, including incompatibility with established web standards (or complete lack of support for many of them), and the speed at which JavaScript executes. This is the previously-mentioned hurdle that we're running up against. Put simply, IE6's JavaScript engine is incredibly slow, leaving us unable to go further in making the product faster. IE7 helps resolve the issue, and shows JavaScript executed in an amount of time competitive with Firefox 2.
But what about Safari, might you ask? It's on our list of supported clients as well. Safari 3 blows both Firefox 2 (on Mac) and IE7 (on WinXP) out of the water. I'd always thought it felt a bit snappier, but in JS-heavy pages, Safari is the clear winner. And it's not just a matter of benchmarks either - the fetch-build-render cycle of an AJAX-type listing just plain feels faster.
I was already thinking that Safari was a pretty slick browser, though I hadn't converted to it yet. Then, I found a link on the web, saying that the WebKit nightly builds (Safari is built on WebKit) are incredibly fast compared to existing Safari installs. I'm using today's build now to write this entry, and am pleased so far. It feels like I've got a whole new Mac under my fingertips, and Firefox feels like a dog. Nightly builds are considered unstable by definition, but I haven't found any show-stopping issues yet.
Of course, every decision has its drawbacks. I'm missing a few keyboard shortcuts that I used hourly before - Cmd-Enter to add "www." and ".com" to what I typed in the address bar, and Cmd-K to move to the search field. I haven't yet found these on the web, but please comment if I've missed something. I have found SafariBlock to replace AdBlock, and I've found Inquisitor's Spotlight-like searching to be impressive both as eye candy and in functionality. And just as with anything else new, I'm sure there's other things I'll discover on the learning curve.
I believe I am, by this point, rambling. Time to do something else - perhaps continue working on StudentCodr (more info on that when version 1.0 is released), or fix my RSS feeds for this site so the entry isn't just a copy of the title.
Update: I was able to find out keyboard shortcuts for jumping to Google Search - it's Cmd-Option-F. However, since I've got Cmd-K still in my muscle memory (and it's not assigned to anything else), you can go to System Preferences and create a Safari (and WebKit, if you use a nightly build) keyboard shortcut for "Google Search..." to be Cmd-K. Problem Solved, now for auto-complete....