From Firefox to Safari (and back again)

I realize I may not be your average browser user. As a web developer, a browser to me is two parts daily use, two parts testing, and one part challenge. Since 2005, I've been using Firefox in some form or fashion as both my primary browser and as a testing vehicle.

I had recently started a JavaScript-intensive project, and I appreciated Safari 4's lightning-fast JavaScript execution speeds. In Firefox, I rely mostly on add-ons like Web Developer and Firebug to help me analyze and test for mistakes in websites I build in Firefox. They work great, but enabling them slows the browser down.

That's why I was excited for the updated Web Inspector that comes as part of Safari 4. (Yes, Safari 3 first came with Web Inspector, it couldn't hold a candle to Firebug's Swiss Army knife of an add-on for Firefox.) Testing was easy, and Safari 4's Web Inspector's many improvements made me think I could migrate to Safari full-time.

Read on to see how it went.

The first hurdle I had to overcome was finding ways to duplicate the add-on functionality I was used to (for both web development and day-to-day browsing) in Firefox. Even though Safari doesn't have a formal plugin (Firefox calls them "add-on") system, many exist. I'm not the biggest fan of SIMBL plugins (some might call them Input Manager hacks). They can affect stability in some cases, and operating system updates can render them inoperable. Nevertheless, if I was going to use Safari, I needed it to work the way I worked.

A good reference for the variety of Safari plugins was, which keeps a searchable index of plugins that was very easy to navigate. I found several I knew I would need:

  • Saft, a widely-used plugin that we've covered extensively here before, that does a variety of things including tab management and ad blocking.

  • DeliciousSafari, a plugin that allows in-browser access to one's bookmarks.

  • Xmarks (formerly Foxmarks), a tool that let me synchronize bookmarks among Safari and Firefox on both my desktop and laptop Macs.

  • 1Password, for password management for all my clients' sites, servers and passwords.

Of course, the list of things that are missing is almost as long as the list of plugins I could find. A lot of functionality included in the Web Developer toolbar for Firefox is included in the Develop menu, but I missed things like object outlining and my treasured "Validate" key combination of ⌘ ⇧ A (cmd-shift-A). I also missed ReloadEvery -- a plugin that reloads a page at a chosen interval: Perfect for liveblogs and checking server status. Also, ScreenGrab: a tool for taking screenshots of entire web pages was missing from the browser, but apps like Paparazzi! and online tools like BrowsrCamp can fill that void in a pinch.

Day-to-day, Safari greatly appeals to me in one significant way: Speed. It's fast and reliable: Not only rendering pages and JavaScript faster, but playing Flash more smoothly than Firefox. Firefox, after I've had it running for a little while (cough several days at a time cough), causes Flash movies and animations to skip or pause during playback. Restarting Firefox solves the problem, but Safari -- when left running similarly -- exhibits none of those problems.

That isn't to say it's perfect: Reader Lou tipped us and said he was experiencing crashiness -- "4-5 times every day," he writes. I can't say the same, but if you're experiencing the same problems, leave us a comment.

As a web development testing platform, Safari is an amazing browser: it's fast, it's easy to use, and Webkit does a great job rendering web pages. The Web Inspector included with Safari 4 is vastly improved, and includes the ability to selectively enable and disable CSS styles, a JavaScript debugger, and a profiler to find where your site is the heaviest. Functionally, it's amazingly similar to Firebug, but arranged differently. It's like having all the same furniture in a new house: you'll bump your shins on the coffee table for a little while until you get used to where your things are.

The shin-bumping, though, began to wear on me. After a week, I was still pining for what I'd lost in the switch from Firefox. In fact, by the end of the week, I found myself running Firefox and Safari side-by-side and using both interchangeably. In the end, in a flurry of frustration, I switched my default browser back to Firefox, and things are back the way they were.

This isn't to say, of course, that I don't test for Safari -- I always have and always will. Coda, my IDE of choice, uses Safari (or more specifically, Webkit) as a rendering engine for displaying web page previews from within the app. Taking the two-pronged approach means testing for Safari from within Coda, and using my default browser to test for Firefox. Testing for IE means starting Windows and using either MultipleIE or version targeting within IE 8.

So what's next? Release candidate builds of Firefox 3.5 are widely available, and they include performance and stability improvements, along with features (already available in Safari) like Private Browsing. All my plugins are compatible with it, so I think I'll give it a try next. Be sure to check back and see how it goes.