Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I distinctly remember how the web dev world (myself included) groaned at the prospect of supporting another rendering engine. Gecko was clearly the best browser at the time, and the choice of KHTML seemed bizarre, to say the least.

Even the intention of Apple building it's own web browser seemed weird, Apple had failed at a previous homebrewed browser (Cyberdog), why not just build on top of what Mozilla had already done?

I remember Apple stating that Konqueror's code was much more leaner, faster and modern. I've always wondered if the birth of Safari was an early sign that Apple was interested in developing the pieces missing for an internet device. Safari seemed like a godsend foresight from Apple when they released the iPhone, but I can't help wonder if it was planned this way all along.



I would love to claim the foresight of planning for the iPhone all along. Alas, that was not the case. :) For any of us.

We built our own browser because we didn't want to depend on another company for a critical application.

We built our own browser engine because we wanted to use the technology in more things than a browser.

We built that engine small and fast because Bertrand Serlet would have shot me if I had done otherwise. :)

You have to remember that Mac OS X itself was smaller in those days. Not iOS small, but considerably smaller that it is now.

After the initial success of Mac Safari, there was a time when I was second-guessed by some for choosing KHTML and KJS as the basis for WebKit. When we decided to do the iPhone, I was suddenly a genius again. :)

That's just the way it works in the real world.


It is probably just the dumb luck of having started the same day as you and Maciej (and thus going through orientation at the same time), but it was completely obvious to me that you were building a browser team, at least once you stopped working on Mail.app bugs during the Puma crunch and he moved over to your team a few weeks later ;-)

To drive home Don's point about how secret Alexander was: I was given official access to Marklar months before Alexander. Since there was no Rosetta at that time the Intel builds of OS X had no bundled web browser (and porting Chimera or Mozilla were clearly nowhere on that team's priority list at the time, for obvious reasons). I was eventually given access to Alexander largely because I was doing enough Intel related work that it was necessary to have access to a browser on my Intel machines.


>We built our own [map app] because we didn't want to depend on another company for a critical application.

I believe, in retrospect, Apple's Maps.app will be considered in the same league as Safari. It may have had a rougher start than Safari, but I think it's a great program.


But it's different for maps, it's not the programming that was at fault, it's the cartographic data.

And to continue the parallel, it would have probably been better for apple and everyone else if apple had just used the gecko engine for their browser.


> And to continue the parallel, it would have probably been better for apple and everyone else if apple had just used the gecko engine for their browser.

In what way?

WebKit seems to have enjoyed some success since then... since Chrome toppled both Internet Explorer and Firefox.


It might have been better at the time to use gecko, but apparently building a new rendering engine had enough advantages that Apple decided it was worth it. In hindsight, WebKit was the right call. It's powerful enough to run advanced desktop browsers, yet lightweight enough to power (almost) the entire mobile web.


I thought that WebKit was based upon KHTML. Was it different enough upon initial release that you would consider it "building a new rendering engine"?


Mozilla was a bridge to step away from IE and "Made for IE" sites.

It's goal was "bug-for-bug compatability with IE" so that you could run Mozilla / Netscape on websites that weren't updated / weren't ever going to be updated.

KHTML / Konqueror was effectively "strict-mode-only" not caring (as much) if sites broke, but implementing things "as sanely as possible".

Firefox was Mozilla with a sane UI on top of it.

Mozilla UI was trash because goofballs in suits kept ruining it by pushing for "site-specific-themes paid for by advertisers" which caused the "chrome" to be incredibly buggy / slow / etc.

WebKit / Safari was Apple delicately picking up KHTML, making the "hard" decisions to implement some things poorly / hackily / different / more quickly than the "purist" open source KHTML volunteer developers had envisioned.

They actually handled it overall quite well, as opposed to their other forays into open-source land (kernel / darwin, cups, etc).

WebKit is excellent now because it didn't have to start with that bridge step, and had speed / correctness / isolation as a focus from the start. So even though WebKit is the current "leader", it owes a lot to Mozilla for doing the hard grunt-work that allowed it to take cover behind the big lumbering dinosaur and come out unscathed on the other side.


I remember using KHTML back before Safari was out, and it was wayyy behind Firefox. I'd bet that KHTML was mostly just a sane starting point that needed a significant amount of work to complete with IE/Firefox.


Safari pre-dated Firefox, so something about your recollection is a bit off here. Perhaps you're thinking of SeaMonkey or Phoenix as the point of comparison?

Either way according to Wikipedia, Don had forked KHTML/KJS in 2001 (which pre-dated the first public release of Phoenix by a year or so), so his choices were to hack SeaMonkey into something suitable or to start from somewhere else.


I think you're right about using SeaMonkey. Either, I remember using some Mozilla based browser that was way ahead of KHTML that is still used


I honestly have no idea. I'm not a developer. :)


Presumably, by your logic, Google and Adobe were wrong to adopt webkit instead of Gecko too.


Don, you've had a couple of great stories make it to HN recently -- awesome reads. Looking forward to reading many more.


Thank you! I'm typing as fast as I can. :)


Keep them coming, please :)


That's twice you mentioned 'being shot' for failure. Sounds like a real culture of fear. I get the excitement for a chance to innovate the future of computing, but I sometimes get a sense of real Stockholm Syndrome from people at Apple. I personally don't want to work at a place where people are so afraid of failure. Look at Forstall's recent exit. All those years changing the world through computing, and at the end he gets a disgraceful boot out the door.

You can change the world from a growing startup without having to fear for your career at every turn. You can have fun without being afraid. Imagine that!


That's just me being facetious. Don't read that much into it.

Apple was an excellent place to work and I had a great relationship with Scott, Bertrand, Avie and Steve. Nobody was going to shoot me. AFAIK. :)


It's the underlings you have to watch out for.


Or it was just a phrase!


Konqueror was by some distance the best browser available at the time (even today there is Konqueror 3.2 functionality that I can't find in anything else), and the fact that they were able to keep it that way with about 5 devs total spoke to the quality of the code.


Agree. I used KHTML (later known as Konqueror) as my primary browser (as a webdev!) since early days of KDE until I switched to Mac in 2006. Konqueror always felt right on KDE, just like Safari feels right on OS X (native feel, integration, etc).

A little feature I still miss was that you could navigate up in URL hierarchy by alt+up, just like in file-browsing mode (not sure if it's still supported by today's Konqueror).


Try command-clicking the Safari title bar sometime (when you're at a page with a URL that goes several levels deep) if you haven't before.


That's nice one! )Although not nearby as intuitive as <cmd/ctrl>+up.)


Not sure I agree — its standard for OS X documents to show their hierarchy when their title bar is command-clicked; cmd-up arrow is much less broadly used.


It's not only standard Mac OS X behavior, but Mac OS in general. I learned this trick in System 7, and I believe it was around for some time before then.


It's Ctrl(or Cmd)-Backspace in Opera.


I suspect the reason for choosing KHTML over Gecko may have been more political than anything else. Since Mozilla was the dominant non-IE browser at the time, it would be hard to justify any fork to the community without meaningfully given back. For example, Apple could go off into a cave and add touch handling support with momentum scrolling and GPU acceleration, and the Mozilla community would be absolutely furious with Apple for creating effectively unusable work, assuming they did the work over several months/years in secret. The last thing Apple wants is a large group of loud people complaining about itself.

By comparison, KHTML was not really a serious project. It had a few developers, but nowhere near the scale of what Mozilla had. Thus, when they forked it to do their work in secret, only a couple people complained.


> By comparison, KHTML was not really a serious project. It had a few developers, but nowhere near the scale of what Mozilla had.

You'd be surprised at the negative impact that a large number of developers can have on the quality of a software project.


When Safari came out, I happened to just have looked at the Mozilla code. A significant part of the "scale of what Mozilla had" was due to the design decision to couple the major browser components using a home-grown (and, hence, included with the sources) clone of Microsoft's COM.

To make matters worse, unlike Microsoft's version, the Mozilla version needed to support multiple OSes and multiple compilers.

Because of that, I believe Apple's claim that the choice for KHTML was on technical grounds.

(I don't remember whether Mozilla already used XUL at the time. If so, that could have been another argument for choosing KHTML)


Amusingly, before Chrome, Google used to contribute a lot of engineers to Firefox/Mozilla. They decided to do their own after deciding they weren't happy with it. I don't quite recall the main reason, might have had something to do with some sort of mess for cross compiling or variable sizes or something mainly.


I would not call Cyberdog a failure. Yes, it wasn't fast and it didn't have a great rendering engine, but frankly, neither did the competition, and I found its look and feel so good that I kept using it for a long time (with IE as a backup for pages it did not handle, IIRC)

OpenDoc, on which it was built, failed, but even that, I would not call a complete failure. It may have just been bad timing (of the Newton vs iPhone kind). If you are looking for a large hobby project: I would love to see something OpenDoc-like today running in a browser. Require viewers to be freely downloadable from e.g. GitHub, but allow developers to sell their editors, and see where it gets.


Agreed — Cyberdog was the best thing about OpenDoc.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: