01.01.08

Requiem for a rendering engine

Posted in History, Software at 9:57 pm by

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.

Having laid out these feats of strength, it is time to remind everyone of the most shocking fact about iCab: all of this was done by one person, Alexander Clauss.1

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 .zip file 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.

In the end, the waves of browser sniffing that plague “Web 2.0” and a slow and somewhat buggy Javascript/DOM implementation (technologies on which “Web 2.0” is built) likely proved too much for iCab’s home-grown rendering engine.

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….

        

1 iCab 3 used the external InScript JavaScript engine, written by Thomas Much.

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.

16 Comments »

  1. User Grav­atarNeil Rashbrook said,

    01.13.08 at 5:48 am

    So, iCab 3.0 ran on a 1998 OS? SeaMonkey 1.1.7 runs on two 1995 OSes, Windows 95 and Windows NT3.51, and I have a Windows NT3.51 tinderbox to prove it. (Wikipedia actually claims that Firefox runs on Windows NT3.51 but I can’t verify that because I always thought it had some dependencies on IE4.)

  2. User Grav­atarMichael Tsai - Blog - iCab 4.0 said,

    01.13.08 at 10:53 am

    […] Update (2008-01-13): Requiem for a rendering engine. […]

  3. User Grav­atarSmokey said,

    01.13.08 at 1:52 pm

    Neil: I’ve never used Windows very much, but looking backwards from today, it seems to me that Windows 95 is much more like current Windows versions than Mac OS 8.anything is like Mac OS X; there’s a vast chasm between them. It also seems to me like a similar comparison (technology-wise, and leaving out the year differences) on the Windows side would be Windows 3.1.

    Still, very impressive on SeaMonkey’s part. ;)

  4. User Grav­atarWysiwyg said,

    01.14.08 at 8:36 pm

    iCab 4 is a great browser and i really wanted to use it daily, but unfortunately the toolbar is damn ugly. Call me vain, but i find pretty hard to concentrate with those HUGE pill buttons staring me all the time. The worst thing is that the “use small buttons” doesn’t work: it resizes the address and search fields instead, and leave the buttons as big as they were.

  5. User Grav­atarRyan said,

    01.14.08 at 9:04 pm

    iCab was the last browser I ran on my 68LC040-powered Performa 636CD before retiring it in 2001. And it was zippy! I still needed Netscape4 for online banking but iCab was great for everything else. Back in the 14.4 modem days, selective image loading was a real godsend, and iCab was that rare browser that kept working on pre-PPC Macs for many years after PPC was introduced.

  6. User Grav­atarnick s said,

    01.15.08 at 12:51 am

    Circa 2000, when the college Macs ran like cold treacle, on account of the sysadmin’s lack of interest leading to clogged up System Folders and suchlike, iCab meant you could browse when Netscape and IE. For that, praise indeed.

    People now forget (with good reason) the time that passed between the Netscape source release and the emergence of a workable browser from the Firefox project: I know, because I ran so many of those crash-prone pre-pre-alphas. iCab was there on the Mac during those lean years.

  7. User Grav­atarSmokey said,

    01.15.08 at 1:29 am

    Wysiwyg, I agree; I think the toolbar icons are the worst thing about iCab 4 (followed closely by the tabs, which feel too big and heavy). I emailed Alexander shortly after the release and asked about supporting custom icon sets like previous iCab versions did, and his reply was something along the lines of “maybe in the future.”

  8. User Grav­atarhackd » one-man deal said,

    01.15.08 at 2:33 am

    […] I haven’t used iCab more than a trial, once, and found some things unpleasant about its UI. But I read it’s a decent browser, functionally. What’s more, it’s been written (complete with the rendering engine it was using on version 3) by one single person. […]

  9. User Grav­atarLKM said,

    01.15.08 at 3:00 am

    Here’s another feature iCab has had first: Hold down a modifier to open a link in a new window.

    For a long time, iCab was my main browser. I used to code all of my HTML using iCab as the reference browser. First, I made iCab happy. That would usually result in sites that worked everywhere (with some graceful degradation for features only supported in iCab) except IE. Then, I’d break the site for IE :-)

    Something else that just occured to me: Woz used to be an iCab user. He often commented on things on the iCab list, I think.

  10. User Grav­atarAndy said,

    01.15.08 at 4:15 am

    Apple should hire Alexander to work on the WebKit and/or Safari teams. At the very least he should be a contributor to the WebKit development svn

  11. User Grav­atarJen said,

    01.15.08 at 7:48 am

    Hi, Oh honourable Arabic smoker – long time no hear! We all miss you :).

    Moving on. . .

    Andy makes a good suggestion (Apple should hire Alexander . . .), but what a cruel thing to do to a free thinker! Alexander & Jobs would probably last about point oh five ms together.

    No. Keep buying your friends the occasional iCab licence so he has a cash flow, and sit back and watch the innovations flow.

    Sorry to all our WinBox only users – you can never have experienced using an app that followed Woz et al’s excellent (original Mac) user interface guidelines. Old Mac users know just how productive such an interface is, and Alexander is one of the few remaining developers who understand the basic concept. With all it’s (now very few) hiccups, iCab is just sooo usable as a result. Again my primary browser.

    Web access flows, sooo easily and well that now it (v4) is allowed into my bank & broker’s sites, I find I have a lot of spare time each day which had disappeared when the browser sniffing became hyper, and iCab was so often broke, and I had to bear the cludge of ‘other’ browsers.

    I personally think it is gorgeous that AC has turned the sniffing tables in v4, and now, with ‘View | Browser Identity . . | Indentity for best compatibility’ selected I can get into any site, with a grin on my face at AC’s gall and again, originality. Sniffing browser sniffers! Huge grin.

    Cheers, Jen

  12. User Grav­atarJuan de Dios Santander said,

    01.16.08 at 6:58 pm

    Loved to read the article… I wonder if I could get your permission to translate it into Spanish and post it in my blog!

    And prosperous 2008, by the way!

  13. User Grav­atarMemoria de Acceso Aleatorio » del.icio.us: Requiem por iCab 3, el motor web basado en estándares creado por un solo hombre; Hoefler & Frere-Jones, tipógrafos said,

    01.17.08 at 5:02 am

    […] افكار و احلام » Requiem for a rendering engineRequiem por iCab: iCab 3 dispuso, durante 3 años de un motor web creado por una única persona, que fue el segundo —tras WebKit— en pasar el test Acid2… y ahora deja paso a ICab 4, basado en WebKit.(tags: webkit icab software html rendering engine)Hoefler & Frere-JonesWeb de las tipografías de Hoefler y Frere-Jones… posiblemente una de las más bellas que he visto en mucho tiempo. Pero es que me encanta una buena tipografía…(tags: hoefler frere-jones typography website) […]

  14. User Grav­atarMemoria de Acceso Aleatorio » Requiem por un motor de visualización web said,

    01.27.08 at 1:50 pm

    […] artículo es una traducción de una entrada lamentando la desaparición del motor de visualización web d…. Ardisson es uno de los desarrolladores de Camino, el navegador web basado en el motor de […]

  15. User Grav­atarSmokey said,

    01.27.08 at 10:57 pm

    As the above trackback indicates, Juan de Dios Santander has posted a Spanish translation of this article on his blog. :-)

  16. User Grav­atarmtmildew said,

    01.29.08 at 3:45 pm

    Hi. I just had to comment in iCab. I have been using iCab since 1999. I liked it so much that I did pay for it in 2004…well over due, I thought. It became my primary brower then. I had no trouble using it for banking either.
    It has out shined all the other browsers. If I had a problem I would email Alexander Clauss and he actually would take the time to respond!! You can’t find that happening with the other browsers. He is brilliant!!

    I am now using iCab 4.0.1 Beta 30. I have found that whenever there is a problem it is quickly fixed!

    I belong to the Yahoo group for iCab and I will view the comments and answers, however, I have found that Alexander Clauss is right on top of any so called problems. Example: the large icons…. That seems to have been fixed. Go into your “View” “Customize Toolbar” and click in the box at the bottom to “Use small size”. There, it’s small.

    I love this browser!!!

Atom feed for comments on this post · TrackBack URL

Leave a Comment