The Inside Track on Firefox Development.
« Help us with Tiger integration! | Main | Some More on Perfection »
May 12, 2005
Safari, KHTML, Perfection
I was reading CNet's coverage of some of the Safari vs. KHTML discussion that's been going on lately and was struck by a comment made by one of the KHTML developers...
"In open source, everything's supposed to be done the right way, but sometimes the less correct way is faster," Rusin said. "In fixing one problem, they were breaking a whole bunch of other things. Apple developers were focused on fixing bugs in such a way that we could not merge them back into KHTML. Those fixes were never an option for us."
Certainly, every project is free to be run the way it wants to be run - but there are a couple of givens here if you're trying to make software that changes the world:
- No software is ever perfect.
- In order to have the most positive impact, you need to take advantage of opportunity especially when it comes to release time. This means you may have to cut corners in some areas in order to ship on time. Smart money cuts corners in areas that people are less likely to be concerned about.
- There needs to be a strong focus on meeting the needs of the target audience.
Some people would call me careless, but certainly I've been bitten by my own carelessness in my past enough to have that trait be tempered by some caution. Given (1) above, I certainly believe it better to iterate quickly even if you make some mistakes - get your vision out there for people to test and give feedback on rather than fussing for months before releasing anything, only to discover it was completely off track.
Not everyone wants to change the world, but Apple does - and although they may have done the least required of them in accordance with the licenses of the original source code, it was within their rights to do what they did, and no one should begrudge them for it. Safari's renderer is vastly superior to the KHTML used by Konqueror. Should I have to wait months or years for every patch that makes Safari more compatible to be done perfectly? No. Well, maybe as a software engineer I should. But does anyone that isn't a software engineer care? Probably not. Case closed.
Posted by ben at May 12, 2005 12:23 PM
Comments
I'm reminded of the wisdom in "Why Free Software is better than Open Source".
Posted by: J.B. Nicholson-Owens at May 12, 2005 5:30 PM
I should point out that KHTML was chosen over Gecko by Apple to start with _precisely_ because it was a simpler codebase that was cleaner and less of a pain to work with, even though Gecko was more compatible and all that. This wasn't exactly an accident. It was a direct consequence of the difference in approach we see highlighted here.
Posted by: Boris at May 12, 2005 9:05 PM
if there was ever a justification for speaking only about what one has knowledge of, this blog entry of yours is it, Ben. seriously, this is sad.
had you actually read the original content you would likely have realized that Zack wasn't begrudging Apple's not cooperating better or somehow implying license non-compliance. no, instead he was annoyed by how a lot of people keep claiming that Apple is working in tight cooperation with KDE when they really aren't, and how a lot of people (many of them KDE users) keep asking him constantly when patch #XYZ from Safari was going to be merged in to KHTML.
the code quality comments, etc, were part of his explanation about why it wasn't happening how everyone, including the developers, had hoped it would. yes, there was more to his communique than the sensational snippets the press picked up.
but instead of being informed and perhaps supportive, you got duped by the press and now the press is completing the life cycle by feeding on your comments: http://www.zdnet.com.au/news/software/0,2000061733,39191656,00.htm
nothing like supporting the open source community by spreading ignorance and divisiveness, huh? way to go Ben. >:-(
Posted by: Aaron J. Seigo at May 12, 2005 9:26 PM
Aaron J.
I would say you should re-read what Ben has said.
He addresses the exact issues of quality, etc.
I no way are his comments 'bad' for the open source community, hell censoring what he thinks would be.
Instead he's giving his view on why Apple went the route they went.
I find your feedback even more 'sad'.
huh? way to go Aaron. >:-(
Posted by: Jed at May 12, 2005 9:50 PM
@Jed:
yes, i got Ben's points about code quality, and i generally agree with him.
the quote of Zack's he used was taken somewhat out of context, but that's not a big deal if one just wanted to comment on the issue of how to deal with code quality. sure, it's a bit misleading in that it makes it sound like Zack was trying to come off as a perfectionist, when if you read the original discussion, that's not really the case.
but moving past all that, it's the last paragraph of the blog that was truly inane. the whole "begrudging Apple" thing again and the general tone. this handily gave our friends over at ZDNet more grist for the mill.
seriously, go read that article i posted in my first comment.
it's one thing to spout off about other projects, it's another to do so when you're a well known and respected member of the community and it's yet another thing to come off as "scolding" (ZDNet's word, not mine) someone else.
code quality? hell ya!
frank discussion about software and technology? you bet!
ill informed commentary on the behaviour of others? uh ... no thanks.
Posted by: Aaron J. Seigo at May 12, 2005 11:10 PM
Aaron -
Don't waste time getting into it with me on this topic. I don't base my comments only on press spin.
Posted by: Ben at May 12, 2005 11:33 PM
Well Ben, if there's someone you may want to get into it with, you might as well do it with Aaron, as he's one of the lead KDE developers.
Posted by: AC at May 13, 2005 1:33 AM
Ben, You've raised some salient points. And, irrespective of any ideological transgressions (perceived or otherwise). As a web site manager, I welcome cross-platform browser development (irrespective of engine) and will continue to support my preferred standards (subjectively speaking).
Posted by: John Hood at May 13, 2005 5:18 AM
Ben, you're talking about the Agile Manifesto.
http://agilemanifesto.org/
I can respect that. I'm a signer... that's for sure.
get your vision out there for people to test and give feedback on rather than fussing for months before releasing anything, only to discover it was completely off track.
I have to completely agree with you here. It's more important to enable the ultimate focus group, rather than to keep them waiting. If Firefox did that, we'd still be on Netscape.
Posted by: Geekster at May 13, 2005 6:51 AM
ben, did you actually read what zack & the other kde guys were writing in their blogs?
nobody started begrudging apple. in the beginning, there were no complaints about apple at all - just about those people pretending apple helps khtml a lot, which is simply wrong. just after dave hyatt asked what the exact problems with their patches are, zack went on and explained it in detail. but again, not a single complaint there, just facts.
Posted by: muesli at May 13, 2005 6:55 AM
Ben, you are an idiot. You are taking an old discussion, ripping it out of context, and regurgitating non-relevant bits and pieces. You pass this off as semi-insightful. You may be a somewhat okay coder, but you really are an idiot. Don't give up the day job.
Posted by: dekkers at May 13, 2005 7:09 AM
Ouch, harsh words.
Pitty they don't use them to address the issue Ben is talking about.
Posted by: AkaXakA at May 13, 2005 7:18 AM
I do find irony in the fact that yet another major security hole was just found in Firefox.
Perfect code? Probably not. Better code? You betcha. KHTML is a breeze to work with. The entire Mozilla platform is awful.
Konqueror isn't quite ready for the 'big browser war' yet, and I think that KDE developers working on KHTML should take Apple's ideas into play. But flaming them like a big pompous ass just isn't a great idea. Bad PR for Firefox.
Posted by: Jon-Pierre Gentil at May 13, 2005 7:22 AM
The problem stems from the fact that apple forked KHTML instead of joining the project. Since then they have been hacking on their fork for some 2 years, with an occational drop of a several MB tarball of their changes. What Apple could have done is join the project and hack on KHTML in the KHTML cvs and there would be one main tree, with apples and KDE's release trees perhaps slightly divergent from that, but not to the extent that they are for most intents and purposes different code bases.
Ofcourse forking a project and releasing huge codebombs occasonaly is apples right, no one disputes this. The KHTML developers blogs (that you probably didn't read, or you would know this) gripe about KDE users that expect features from Safari/WebCore to be easily and quickly brought over to Konqueror/KHTML (by applying a patch from apple).
Posted by: bomana at May 13, 2005 7:24 AM
Go Ben, go!
KDE people: less whine, more browser usefulness please.
Posted by: mike at May 13, 2005 7:29 AM
I think this post is mostly from ignorance. "Not everyone wants to change the world, but Apple does - and although they may have done the least required of them in accordance with the licenses of the original source code, it was within their rights to do what they did, and no one should begrudge them for it." Did you even bother reading the blogs involved before posting this blog? Who is begrudging them for it? Maybe some /. commenters. However, the KDE devs were complaining that they weren't getting any credit for their improvements in KHTML since after all its just a "simple" matter of a "port" from Safari. They reiterated this point many times, and yet this post comes out several weeks later which seems mostly guided by someone reading blog headlines.
Because of technical obstacles its not so simple to bring in improvements from Safari. KHTML doesn't have the technical resources of Firefox or Safari, just a handful of developers... you can't expect them to be to joyfully throwing in code that will make KHTML less maintainable. KHTML is important; Konqueror is just one of the ways KHTML is used in KDE after all. And regardless, porting is difficult due to platform Safari is being coded for (hint: its not X11). Add to this the uncooperativeness of Apple, and you can see the KHTML developers frustration when KDE users say "this works in Safari, why not KHTML?" The whole issue is about giving credit where its due really.
Posted by: Ian Monroe at May 13, 2005 7:33 AM
"get your vision out there for people to test and give feedback on rather than fussing for months before releasing anything, only to discover it was completely off track."
Very insightful and true. I may quote you on that one. :)
Posted by: David Tenser at May 13, 2005 7:35 AM
Real developers ship.
Posted by: sambeau at May 13, 2005 7:50 AM
I find these Konqueror/KHTML attacks ("Perfect code? Probably not. Better code? You betcha. KHTML is a breeze to work with. The entire Mozilla platform is awful.") on Firefox amusing. I don't know if any of you guys have looked at market share recently, but it stands like this:
IE - 83.07%
Mozilla/Firefox - 14.09%
Opera - 0.41%
Konqueror and Safari weren't even listed.
Pretty telling, huh?
http://www.e-janco.com/browser.htm
Posted by: Hans Mast at May 13, 2005 7:50 AM
Yes Hans, the same stats prove that IE is higher quality than Firefox. Or that Windows is superior to everything else. You've really hit the nail right on the head.
Posted by: taj at May 13, 2005 7:57 AM
Hans Mast:
Why don't you compare apples to ... well, apples. Look at the browser share on the Mac platform and see Safari vs. Firefox.
Don't blame browser developers for poor OS choices on the user's part. Or, in other words, learn how to separate variables.
Posted by: BrentN at May 13, 2005 7:58 AM
Case closed.
lol
I'd hate to be the KHTML guys.
Posted by: OSXITCO at May 13, 2005 8:21 AM
Is there a free iPod at your doorstep by any chance.
Posted by: anon at May 13, 2005 8:38 AM
"get your vision out there for people to test and give feedback on rather than fussing for months before releasing anything, only to discover it was completely off track."
Very insightful and true. I may quote you on that one. :)
It's been around software development for quite some time. As soon as he said that I thought of the Rational Unified Process (see below link). With modern software design and user requirement migration moving at the paces that it does, I think this is really the only way to go for developing large scale applications.
Posted by: Hank at May 13, 2005 8:40 AM
Well, now I've read the other comments and see most of my points were already made. Aaron Seigo is insightful as usual. Why is Ben allowed to waste Aaron's time? I bet Aaron has plenty of things he'd rather be doing then responding to such inflammatory blogs, porting to Qt 4 just started after all.
A good example of how the discussion has already moved on:
http://www.kdedevelopers.org/node/view/1046
Posted by: Ian Monroe at May 13, 2005 8:40 AM
Ben, I had an image of you as a pragmatic and open-minded guy, especially when you can think of something like Firefox. But I find this post of yours and the reply to Aaron in distaste.
Too bad, you're getting involved into a heated discussion which you were never related to.
Posted by: Swaroop C H at May 13, 2005 8:46 AM
There's just a big difference between the model of development of the K environment and the "products" Ben's used to build, thus he's not able to comment on how KDE developers should work. Second, social softwares should burn in the mostly deep hell; its only purposes are marketing and "spread the word", ignoring what "word" means.
Last but not least: "KDE will be able to sustain itself just fine without users, while it will not last a single day without developers. So when it comes to choosing between scaring away developers and scaring away users, the choice is rather easy actually." -- Waldo Bastian (google for it).
Ignorance is bliss. Thank you for helping a lot, Ben.
Posted by: Caio Begotti at May 13, 2005 8:48 AM
Yeah! Those KDE people should just reimplement the whole Mac API so they can use the code that Apple gave them and quit whining... oh wait that doesn't make any sense does it?
Posted by: Just another Guy at May 13, 2005 8:55 AM
"KDE will be able to sustain itself just fine without users, while it will not last a single day without developers. So when it comes to choosing between scaring away developers and scaring away users, the choice is rather easy actually." -- Waldo Bastian
I thought this to be a pretty mundane, movealong discussion until I read this quote. Do KDE developers really feel this way? I do scientific application and interface GUI development in support of our hardware projects and therefore consider myself an end user as far as this discussion goes. I regard it rather counterproductive to wear such a callous attitude towards the people who are your potential advocates at the platform selection table.
How do you respond when a competing platforms zealot says "Well KDE is a good platform, but they feel they'd get along fine without users."
Luckily I don't form my opinions from blog posts and comments, irrespective of the poster reputations. Too easy to lose context.
Posted by: Wayne Francis at May 13, 2005 9:19 AM
Responding to ZDNet's spin, rather than Zack's actual post? Thanks Ben, you're right up there with the Slashbots who don't RTFA, now. I'm sad.
Posted by: dupe at May 13, 2005 9:31 AM
Some people believe Firefox is everything. Others are KDE/Safari types. Personally, and with all candor, I believe George W. Bush is an idiot.
:-)
Posted by: Jerome Howard at May 13, 2005 9:47 AM
Hans Mast on May 13, 2005 at 07:50 AM wrote:
>IE - 83.07%
>Mozilla/Firefox - 14.09%
>Opera - 0.41%
>
>Konqueror and Safari weren't even listed.
>
>Pretty telling, huh?
KDE - ~60% (up from previous year)
GNOME - ~20% (down from previous year)
XFCE - ~5%
other WMs - barely hit the radar
[above from: http://www.desktoplinux.com/articles/AT2127420238.html]
i'd say this was more telling especially since khtml is an integral part of kde. what you're seeing in the kde percentage is the pay off of this philosophy:
Do good work.
It's longer in the short run,
But shorter in the long run.
comparing khtml to firefox is a bit of an apples to oranges comparison. what we're wanting to compare is the results of long-term coding practices, not who's more popular in the short-term. kde's functionality can be steadily improved because of the reliable foundation upon which it's built. firefox still has yet to prove itself to _me_. right now firefox is in the "good-enough" category to be an excellent replacement for ie (which is pathetic). only time will tell whether or not firefox has been coded to last.
Posted by: David M. Besonen at May 13, 2005 9:53 AM
"KDE will be able to sustain itself just fine without users, while it will not last a single day without developers. "
> Do KDE developers really feel this way?
yes, but it's one of those quotes that requires a bit explanation to get the full picture.
see, we REALLY value our user base. nothing makes me happier than to see someone using KDE. well, except for spending time with my family or a really good beer on a hot day. =)
and as much as we value our users, we value our developers even MORE. this is because the developers are the people who make the software that those users that we value so high use. the developers make it possible to have software at all around which to form a user base.
so it wasn't a statement of how little we value our users, but how much we value our developers. they both mean a hell of a lot of us.
> Luckily I don't form my opinions from blog
> posts and comments
you're a wise man. =)
Posted by: Aaron J. Seigo at May 13, 2005 10:07 AM
This doesn't seem very open minded, on one hand you seem ignorant of the content of Zach's post and on the other you dismiss Aaron's call for reasonable discourse. That's very shameful for someone who choose problemsolving as a profession.
Posted by: Saem at May 13, 2005 10:25 AM
Hey, I think there is a lot of different things going on here. Mostly I'd say this is a post about software development methodology - the faster you add a feature the faster you can refactor what you got wrong, and the quicker you can get it right.
That's my theory of what Ben is saying, with KHTML vs Webcore as an example of differing philosophies. Comparing KHTML and Gecko and saying that Gecko's code is more difficult to manage is fairly obvious given that it actually supports a whole platform for building apps, not just a rendering engine.
If in ten years time KHTML is better than Webcore I will be highly suprised! But its up to the KHTML guys to improve their product and if they think keeping the code very neat is in theor interest for their market thats good for them. I doubt anyone will be using their browser though once Mozilla supports Cairo and all the other cool stuff coming...
Posted by: Andrew Phillipo at May 13, 2005 10:33 AM
Firecocks f4nb0i listen up. You are simply jealous and still pissed off because Apple has chosen KHTML over GECKO. Sure GECKO may render things better but sadly there is all the bloat (XUL and other cruft) tied towards GECKO's tail so it's quite useless for small systems. Now you have seen your chance to slam the KDE people for something that hasn't be said as you want to make it sound. I think you Firecocks people should start concentrating on your huge memorleaks that Firecocks is, with each tab another 100mb flying to hell and closing the tab don't free the memory. What do you want to achieve anyways ? Do you think by offending the hard working KDE folks you gain anything ? Maybe some Apple employee come sucking your rod or maybe they even dump WebCore for GECKO ? Dream on, get real and fix this bloat called Firecocks, it can't even render FONTS correctly, it miscalculates DPI, it eats memory and it's still tied to the big sucker called XUL.
Posted by: Pope at May 13, 2005 10:48 AM
I'm very disappointed to see this kind of shallow commentary from someone who is well known in the software community.
KHTML is a module that is used by many other components. It's extremely important that it behaves as expected so that those other components can count on that behavior. If some piece of KHTML's behavior changes, all of a sudden 10 other modules could break.
Safari is an end-user product. Sloppy coding might introduce a bug in Safari itself, but it's not going to produce a domino effect like a bug in KHTML would.
I'm surprised that you are suggesting that the KHTML developers should start adopting the kinds of methods that the Safari team used, when the two projects serve entirely different audiences. The "code fast, fix it later"/Agile/Extreme programming method, or whichever buzzword you are currently supporting, doesn't apply to every situation.
Posted by: Udo at May 13, 2005 11:00 AM
I'm nothing but a lonely web developer and graphic designer and lifelong Apple user (but with an open mind).
It seems like the KHTML crew is having a problem with not having enough control over their puppy, which is understandable. Personally, I'd hate the idea of someone taking my code, rewriting parts of it, handing it back to me saying "here, this is better". Unfortunately, this is a matter of pride that most authors have to learn the first time a book or story of theirs gets published. Editors with a purpose: Because writers don't have a biased opinion of their own work (neither good nor bad, they just have a hard time looking at their stuff objectively).
WebCore is faster and more compatible than the other fork of KHTML, right? Shouldn't the KDE folks at least *think* about the idea that *maybe* Apple (with millions of dollars to spend in software development, and huge teams of organized developers working full time) could have just done something right?
I'm sure it may pain some to swallow their pride and accept that open-source isn't always flawless. KHTML is their baby, and to have a large company come in and say "here, we did it better", it makes sense that they might not like that. But honestly, the whole point of open-source is to build and improve, using a vast array of methods and minds.
Is it not better, that if someone has done something good for the engine and it's too big to fix with few patches, that that code now become the base from which everything else follows? I mean, Safari is incredibly fast in it's newest incarnation. Blazingly so. The whole fact that Apple is willing to make WebCore entirely available to anyone and everyone should be enough to show their commitment to the OS community.
To the KHTML developers: Remember, WebCore *is* KHTML. It's not like you'd be losing anything. Instead, you'd be gaining a great base from which to start (which is mostly your work to begin with). While it may not be "pure", striving for that degree of perfection is narcissistic and ignorant, especially if you ever want to release a product. End users don't care if the code's "pure", only that it works. WebCore does that, and faster than the other KHTML fork.
Posted by: Zang at May 13, 2005 11:00 AM
Man... they're talking about render engines not browsers. Konqueror is not just a web browser, and any "browser" you know today can beat it (see its features list). The subject is KHTML's vs. WebCore's development. KDE people don't mind at all if you need to release your "product" (which I strongly hate as a term refering to "software") as soon as you can, to keep your user base. They care only for the quality of the whole environment, and having some fun, I can imagine.
Also, the "the faster you add a feature the faster you can refactor what you got wrong" idea is a little stupid for me. Just do it once (or at least try to), and in good way for everybody that could join in to mantain the piece of code in the future (forget the always-need-to-fix-bugs-that-you-left-because-you have-a-tight-schedule philosophy)
Posted by: Caio Begotti at May 13, 2005 11:01 AM
©1997-2006 Ben Goodger. All Rights Reserved.
Opinions expressed here are my own, and not those of any organization that I may be affiliated with.
Reload icon is © Stephen Horlander;
Firefox logo is by
Jon Hicks, and is a
trademark of The Mozilla Foundation.
GetFirefox buttons are from rakaz
