Safari is Apple's very own web browser. A public beta was released on the 7th January 2003 at the San Francisco MacWorld expo. It is based around the KDE's KHTML rendering engine and runs on Mac OS X 10.2 and higher, with Safari 1.2 requiring Mac OS X 10.3 or higher.
For some time rumour sites had been speculating that Apple would release its own browser. Many have grumbled about Internet Explorer. It was commonly believed that if such an "iBrowser" were to exist it would be based around Mozilla's Gecko rendering engine, like Chimera (now called Camino), especially as Chimera's lead developer David Hyatt now works for Apple. Instead Safari is based on KHTML and KJS.
Note: This is my view of the situation. I'm not really taken in by Safari's wonderful bookmarks. They're just bookmarks.
- Lightweight: The Safari download weighs in at just 3 Mb, and the application itself is just 7 Mb. By comparison, Chimera is a tad over 21 Mb, IE is just under 20 Mb and Mozilla is about 35 Mb. For version 1.0 this has changed to about a 7 Mb download and a 14 Mb executable (not counting the WebKit framework), with subsequent versions all being more or less the same size. Most of the size increase is due to the fact that Safari is now available in 14 languages.
Popup blocking: This has been around for some time in a number of browsers, including those based on Mozilla. But for the first time, it's available in the default browser on a mainstream platform. People who don't have the knowledge to grab a copy of Mozilla will have this at their fingertips. Mozilla's popup blocking is however more powerful and allows a more fine-grained control of things.
Snapback: A back button on steroids. It takes you back to the last page you entered the url or submitted a form for. For example if following a google search you dive deep into one of the results, snapback will take back to the Google results page.
- Tabbed browsing: Public beta 2 brings tabbed browsing to the masses at long last! Like many I was not convinced of the usefulness of this until I actually started using it, now I'm hooked. Tabbed browsing is brilliant at reducing clutter. Instead of having 30 different browser windows (unwieldy even on my 23 inch Cinema display, I will usually have 1 or 2 for each of the sites I am reading.
Safari is a bundled Cocoa application. Installation is trivial. You download the disk image, open it, agree to the license agreement and it copies itself to your application folder. Following Apple's recent trend, it's a brushed metal application which people tend to love or hate (you can of course turn that off using Interface Builder). It's generally fairly slick. For example the progress bar appears as the background of the URL bar.
Now that the facts are out of the way, my own opinion.
Safari loads in mere second or two (take note Firefox), and pages render quickly. I was stunned the first time I tried Safari and Apple have managed to improve on this with each new version. Beyond subjective notions of speed, tabbed browsing saves me time as does the handy Google search bar (especially with the advent of the Google Calculator).
When I first wrote this I commented that Safari was "pretty stable" but now (1.2.1) it is nothing short of rock solid and can handle pretty much anything you will throw at it. You can play quicktime
movies in it, waste countless hours on silly flash
games involving penguins, and of course node. The best thing is that it keeps getting better, the rendering errors that used to crop up occasionally are all but gone.
It makes life easier for developers
With Safari 1.0 the WebKit framework became available to all developers. Apple applications such as Mail or Sherlock have all been updated to use this to display HTML. Recent versions of OmniWeb also leverage Safari's HTML rendering code (although OmniWeb doesn't actually use WebKit, it uses a customised version of WebCore, the framework that sits under WebKit). WebKit is available to both Carbon and Cocoa applications and makes fetching and displaying HTML in your program an absolute doddle. Carbon developers may want to note that all the Carbon functions do is allow you to create a WebView, to actually control it it is necessary to write some Cocoa (personally I have a framework written in Cocoa that makes a set of plain C APIs available).
It's open source friendly
It's nice to see that Apple hasn't just taken from the open-source community. In the year and a half that Apple has been working on Safari they have of course made many changes and optimisations to the KHTML and KJS code they started from. Apple released the source code for those changes and emailed KDE developers with a detailed changeLog on the very day Safari was released. The developers also received an email thanking them for the work they had put into KHTML and KJS and asking for their feedback.
I first wrote this shortly after the initial preview release of Safari, and finished off by saying
Overall Safari shows great promise, and I for one hope that it will mature into a great browser.
A little over a year later I can do nothing but say that Safari has lived up to my initial hopes. In this relatively short period, Safari has gone from a promising new browser to my reference point, burying Internet Explorer
on the way (Microsoft have officially ceased development of the Macintosh version of IE
). Hats off to Apple
The MWSF January 2003 keynote
A few hours of my own testing
Text of the mailing list posts sent to kde developers:
http://mkb.n3.net/khtml.txt or http://lists.kde.org/?l=kfm-devel&m=104197092318639&w=2