While the rest of the web is marking the ignominious final death of the browser bearing one of the greatest names of the pre-War Internet, I want to lament the death of a very different thing, a remarkable yet unheralded rendering engine.
Today marks the public release of iCab 4.0, which uses WebKit as its rendering engine. The accompanying notice urging anyone using Mac OS X 10.3.9 or higher to use iCab 4 is a pretty good sign that the iCab 3 rendering engine has reached the end of the line.
iCab 3 made its semi-public debut (to registered iCab users) towards the end of December 2004, with a completely rewritten engine that boasted of CSS 2.x support second-to-none and rendered the web as it was intended in 2004. Given the hype surrounding Safari’s support of the CSS
text-shadow property in those days, iCab went one better and supported the property more correctly and completely.
Other things I remember about iCab 3.0’s HTML/CSS support were the
inline-block property (not available in Gecko until the forthcoming Gecko 1.9) and proper rendering of the
<q> element per-language, with no additional work required by the author (which neither Gecko nor WebKit could do) beyond actually specifying the language of the element. And, unlike in WebKit or Gecko, text content inserted via CSS pseudo-selectors (like properly localized quote marks, necessary for correct display in WebKit and Gecko) was selectable and copyable, so none of the content, which was unfortunately shoehorned into presentation to work around other bugs in those rendering engines, would be lost.
To be sure, iCab 3 had its fair share of bugs, some of which persisted right to the end. Nevertheless, the belated appearance of iCab 3’s first semi-public preview (some two years, I think, after its first announcement as iCab 2’s forthcoming successor) turned a lot of heads. Beyond saying ”you can no longer write iCab off as a ‘not a modern browser,’” iCab 3 ran on versions of the Mac OS as old as 8.5 (yes, that’s the “classic” Mac OS; 8.5 was released in October of 1998), promising modern browsing to all PPC Macs (the first of which were released in April 1994!).
The other notable feat accomplished by the iCab 3 rendering engine was to become the second rendering engine, and the first to release a semi-public or public build (available to all registered users on May 20, 2005), to pass the Acid2 test of various web standards in May 2005.
In spite of all the obstacles the modern web threw at browser developers, the fact that one man could single-handedly write an entire rendering engine that “kept up with the Jonses” and ran natively on Mac OS 8.5-Mac OS X 10.5 inclusive is nothing short of miraculous.
iCab the browser UI was never a thing of great beauty, but it was functional and included innovative features, many of which, to my knowledge, still have not been copied.
- Most renowned for its powerful if clumsy filter manager, iCab was one of the first to provide configurable ad, script, and pop-up blocking.
- iCab also could detect if a local web page you were working on had changed and would reload it automatically, which shaved hundreds of thousands of keystrokes or clicks off of website development. That, and the built-in HTML checker (behind the famous “smiley”) made iCab an author’s friend.
- iCab also was a pioneer of an “open,” portable web archive format; unlike Gecko, iCab didn’t rewrite pages, forget to include referenced files, or require collecting files and folders before transfer, and unlike Internet Explorer, an iCab web archive was a
.zipfile that could be carried to any computer, unzipped, and used effectively.
- iCab’s download manager was homely and complex, but it was one of the first web browsers to support resumable downloads (by contrast, the forthcoming Firefox 3 will finally support this feature). You could also choose to “download” all or part of a site, either as individual pages or as a web archive.
- iCab got “don’t load images”/“load images” correctly; it was possible to turn off image loading by default and then load individual images if desired, something modern browsers have forgotten. And iCab’s “offline mode” was actually still functional in the mid-2000s.
- One of iCab’s more recent innovations was the ability to visually indicate the target of an anchor when arriving via a link (e.g., the footnote link above that points to the footnote anchor below). Proposed in the iCab mailing list by user Daniel Beardsmore, this was implemented in iCab 3 as a light blue bar that fades out over the location of the anchor on the page.
All of this while keeping up with the ever-changing world of rendering web pages.
Amazingly, it seems most of these browser features have been tacked on to the new WebKit-based iCab 4, and perhaps freed of the job of writing a rendering engine, Mr. Clauss can continue to innovate more quickly—if fighting the quirks and bugs of three versions of WebKit doesn’t eat up this time.
Still, it is a day of sadness for the three-year life2 of one of the most amazing rendering engines the world has ever seen—and for the end of browser development for the classic Mac OS. Let us raise a glass to the passing of one of the last independent rendering engines, to its successes, and to the good years of browsing it gave us. Adieu….
2 The iCab rendering engine is much older, of course, originating in CAB on the Atari (TOS) in the mid-90s and arriving on the Mac in late 1998/early 1999. Similar to how Gecko was an entirely new rendering engine than the engine in Netscape 0.x-4.x, it’s exceedingly likely that the engine in iCab 3 shared nothing with its predecessor, save for the fact it powered the iCab browser. ↩