I <3 Steve McConnell*
Coding Horror
programming and human factors
by Jeff Atwood

March 18, 2008

The Dark Side of Extensions

One of the best things-- if not the best thing-- about Firefox is the rich, vibrant ecosystem of add-ons that has grown up around it. Almost anything you could possibly want to do with a web browser can be done with Firefox... if you're willing to hunt down the necessary extension. In Buy the Community, not the Product, I argued that this made Firefox the better browser. That's still true today.

But relying on extensions and add-ins isn't the whole story. Not by a long shot. Consider the average user who has no clue how fabulous those Firefox extensions may be, much less where to find them or how to install them. I'm not saying it's complicated, but any installation at all is too much work for a sizable percentage of the audience. They'll use the browser as it was supplied to them, forever. That's the power of defaults.

In 9 things Firefox should steal from Safari, Des highlighted some of the unique and innovative features in the Safari web browser:

  1. Improved current field highlighting
  2. Alternate font rendering
  3. Cleaner downloads dialog
  4. Faster HTML rendering
  5. Simple, painless bug reporting
  6. Visual incremental find
  7. Detachable tabs
  8. Draggable images
  9. Resizable text areas

All of these features are well worth copying and including in the core Firefox browser. Despite Des' thoughtful analysis, the avalanche of comments across Digg, Reddit, and Des' own site had one universal, monotonous response:

It seems the author simply hasn't really tried to use Firefox. 5 points can be changed by extensions, two are non existent, one is a Windows issue, and one is disputable.

Extensions, extensions, extensions. Indeed, why bother improving the core browser when you can force the user to install five extensions to duplicate that same functionality? This approach doesn't make any sense to me, and I think Des agrees:

Every day I see little things in Safari that could and should be copied. In Safari if I type destraynor.cmo into my url bar, it realises that there is no .cmo, and looks at previous sites I've visited, and sends me to destraynor.com. Firefox doesn't do that. Not without installing extensions. The majority of internet users, surprisingly, do not feel the need to install custom browser components. When they see Safari do something clever like this they don't think "Hey, that's cool, I better check mozilla.org to see if anyone has written an extension to spell check urls", they just think "Hey that's cool", or maybe "Hey that's cool, I wish firefox could do that." That's why you have to fight for every inch.

Since Des' initial post, Safari 3.1 was released with even more features. Firefox 3 isn't quite out yet, but Firefox 3.0 beta 4 offers a fairly complete picture of what the final version of Firefox 3 will look like later this year. The only feature that is no longer an issue on Des' original list is HTML rendering speed. All the others remain.

Extensions, as a solution to general software and productivity problems, have both dark and light sides.

Glowing lunar eclipse

Extensions offer wonderful enhancements to Firefox. It's a huge credit to the Firefox development team that they made extensions both easy to create and incredibly powerful. This is something that the Safari and IE teams appear incapable of doing. We can't even have this discussion about those browsers because their add-on ecosystems are pale shadows of the massive Firefox extension community. The Firefox team absolutely deserves all the market share they've earned from that one crucial decision.

But extensions are also an indictment of Firefox. If an extension is wildly popular and everyone urges you to install some "crucial" or "essential" extension in Firefox -- shouldn't that extension have been baked into the browser in the first place? If I ran the Firefox development team, every new development cycle, I'd take the list of top 5 Firefox add-ins and demand that we fold that functionality into the core product.

Half the value of a robust add-in ecosystem lies in product guidance-- users are taking it upon themselves to fill the gaps and holes in your product, and audience metrics tell you exactly which holes truly needed filling. Sure, there are some oddball extensions that only a few users might care about-- but when extensions reach critical download mass and the same extensions appear repeatedly on best Firefox extension lists, they're filling a universal need. Ignoring that is just irresponsible software development, pure and simple.

If software developers were doing their jobs properly, an extension ecosystem wouldn't be necessary-- 99% of the features users want and need would be already baked into the shipping software. And yet without a robust, powerful extension ecosystem, I suspect developers have a terrible idea of what features users actually do use and want. They're guessing.

It's sort of a Catch-22.

So when I see a user post an enormous list of Firefox extensions they've installed, as in the comments of this lifehacker post:

AdBlockPlus 0.7.5.3
All-In-One Sidebar 0.6.1
Always Remember Password 0.6
BlockSite 0.6
ColorfulTabs 3.0
CustomizeGoogle 0.69
CuteMenus - Crystal SVG 1.9.2
Forcecastfox I10n
Furl Tools 0.8
GMail Notifier 0.6.3.2
Greasemonkey 0.6.8.20070314.0
Image Zoom 0.2.6
Japanese English Dictionary for rikaichan 1.05
No Squint 1.0.1
PDF Download 1.0.10
PeraPera-kun 0.5.22
Places' Full Titles 3rc3
PrefButtons 0.3.3
QuickJava 0.4.2.1
Redirect Remover 2.5.3
Remove It permanently 1.0.6.3
Secure Login 0.9.0.6
Session Manager 0.6.1.9
SmoothWheel 0.44.10.20071026
StopAutoplay 0.7.2
Stylish 0.5.1
Temporary Inbox 2.1
User Agent Switcher 0.6.10
XHTML Ruby Support 1.4.20061000801
Xinha Here! 0.12

Or when I hear, as I often do, how someone couldn't possibly imagine using Firefox without the three or four extensions that they absolutely must have... I'm torn. How many of those nifty extensions are specialized functionality-- and how many are crude spackle over missing features that really should have shipped in the box?

Posted by Jeff Atwood    View blog reactions
« Does More Than One Monitor Improve Productivity?
Adventures in Rechargeable Batteries »
Comments

I agree completely. One alternative would be to keep the extra functionality as extensions, but to have them pre-installed by default. That way, advanced users could still disable / uninstall any extension they dislike.

Antoine Aubry on March 19, 2008 3:32 AM

I'm not sure I totally agree with you. Sure, it'd be great to push new features into the browser so I don't have to download so many plugins, but then would this not just bloat up the browser every release?

John on March 19, 2008 3:36 AM

Only two notes from a firefox3b4 user:
* "Improved current field highlighting" is a litter better than firefox 2 but it's not at safari's levels.
* "Draggable images" are already implemented.

Dzamir on March 19, 2008 3:41 AM

I think they're doing something in firefox 3 right by improving the core browser engine with minimal changes to layout and functionality. I think the firefox 2 was critized for added spell-checking because of the presumed performance lag this feature would result in.

That being said, as careful analysis of the most popular extensions could probably result in adding a few extra feature which would benefit everyone.

Jens on March 19, 2008 3:48 AM

I would make them preinstalled extensions, not part of core product... For example: I don't want firefox to guess URLs if I entered them wrong, it's better if they preinstall this extension so I can remove it then to have a peace of code inside a browser that just takes space...

hvulin on March 19, 2008 3:53 AM

I think Firefox did that. I have been playing with FireFox 3 beta, and it by default asks me now if I want to save open tabs when I am closing the browser.

Earlier a plugin was needed for this. This is just one instance, I am sure there are other extensions that might have been rolled into FF 3.

In general I agree with you and have seen examples of this happening (for example WordPress, rolled in tagging support in their release sometime ago, replacing the hoards of plugins that were used to provide tagging function in Wordpress).

Vaibhav on March 19, 2008 3:59 AM

Your earlier post "Why does software spoil?" provides a good reason why some popular functionality shouldn't automatically be rolled into the browser. I agree with Antoine: it should be possible to download Firefox with package of useful addons already included - give it a name like "Firefox Plus" and users will tend towards it by default - and, for users who are more sure of what they want in their browser, provide a vanilla Firefox as well.

Bob on March 19, 2008 4:00 AM

and then there are always extensions that no longer work "quite right" when a new version of the browser comes out, so you have to wait for the extension to be updated

james on March 19, 2008 4:04 AM

The only Firefox extensions I really used when I used Windows served to make it a bit more Safari like: progress bar in the address bar (to remove the unnecessary status bar), and an extension that let me customize the Menus at the top to just the things I actually use and have them drop down on one button. Other than that, simply AdBlock (which I also use with Safari now).

Mike on March 19, 2008 4:13 AM

I'm not sure it would really be a good idea to integrate the (current) top 5 extensions into the core Firefox product.

1. Adblock Plus: "Firefox is that browser that prevents all our advertisement from being shown, we can't support that browser."

2. VidDownload Helper: Allows breaking the TOU of most video sites, includnig YouTube. Not exactly a good image for the browser either.

3. Download statusbar: This one could actually work in the core product, though one could argue it steals precious screen real estate from displaying actual webpages.

4. FlashGot: Now this one does make sense and I think it could be a good idea to include it.

5. NoScript: "Hey, why did all those cool Web 2.0 sites suddenly stop working?" or the users just won't understand how to use it anyway.

Out of the top 5, only one really does make sense to include in the core product, from my POV at least.

Niels on March 19, 2008 4:14 AM

I think there are a few notable exceptions of highest rated plugins which should definitely be opt-in, for example the web development plugins.

The other problem with unofficial extensions is of course conflicts. At the moment I visit facebook if I'm currently looking at Gmail. My Firefox completely freezes if I try to navigate from one to the other. It's almost certainly a problem with one or a combination of my plugins, but since all the remaining plugins I use are 'essential' I can't bear to remove any.

Loving your new, extra-accessible captcha.

Someone on March 19, 2008 4:20 AM

I'd prefer pre-installed over core feature -- one person's essential feature is another's unnecessary bloat.

Perhaps including the most popular extensions in the installation kit along with an "Enable these features?" dialog during installation would satisfy both camps.

Larry on March 19, 2008 4:21 AM

There's one more thing: extensions are usually the weakest points in terms of slowdown/hangups. More often than not, a vanilla FF install is fast, but install 4-5 addons and it slows down. Hit the 10 extensions mark and FF comes to a crawl, in terms of start up time and rendering.

So, I stick with just 4 extensions (plus Foxmarks that I usually disable, and enable only for occasional synchro.

Sumesh on March 19, 2008 4:23 AM

This is a thing that I have been trying to tell for a long time now.
Thanks Jeff.

Niyaz PK on March 19, 2008 4:25 AM

Agree with poster John here. You can't have everything.

I prefer the flexibility in defining and installing extensions that I find useful. I dont want the FF extension for eBay, or the LinkedIn companion, for example. And I dont want to have to sift through a list of predefined extensions and make sure somethings not installed that I dont want. I find nothing wrong with a baseline version and tailoring it to my specific use. How long before the extensions become "sponsored" after that, and I dont have a choice?

The cries for feature inclusion sound like useless griping to me. Not that the features in and of themselves are not valuable (they are) but I just dont see how hard it is to install the extension.

Elliot Rodriguez on March 19, 2008 4:31 AM

When you say, that every user has some extensions which he absolutely must have, I think you are missing a crucial point: These are extension that this single user must have, not all of them.

Most extensions you listed are not installed on my browser right now. And if you take, say 100 users who do install extensions there would be not a single one, that all have installed.

On the other hand, there are some extensions, that IMHO are doing things that are just common sense. "Clean and Close" https://addons.mozilla.org/de/firefox/addon/2608 for example.

I would also have not any problem with "9 things Firefox should steal from Safari", which you mentioned. But even if there are extension, which would do these things, i would not bother to install them. If they are included in Firefox by default, fine. If not I don't mind.

dummy on March 19, 2008 4:32 AM

"If I ran the Firefox development team, every new development cycle, I'd take the list of top 5 Firefox add-ins and demand that we fold that functionality into the core product."

Lucky for us you don't then.

Noah Slater on March 19, 2008 4:33 AM

I completely disagree. You should have the right to determine how much of a pig your browser will be. Bundling every extension that some subset of people like in the browser is like bundling in every program that some subset of people like into the operating system.

The end result is that then I don't get to choose the extensions I like, I have to choose between 2 and 1000 different varieties of pre-rolled Firefoxes that seem to be targeted to everyone but me; they've already put out some sort of crazy SuperMyspace Firefox...

I already think that they've incorporated too much. Naked Firefox is getting chubby. Once Firefox starts checking my spelling, I'm looking for a new browser.

Jamaal on March 19, 2008 4:35 AM

@Bob, I don't think a new version with pre-installed extensions should be called Firefox Plus or anything, instead the vanilla Firefox should be renamed. It's a suttle difference but I think it makes quite a bit of difference to which version users will choose.

It could be a problem having different "editions" though, it could lead to the tempation of offering an "edition" which is almost bloated. I definitely agree that the extension's features shouldn't be rolled into the core, that would be forcing it upon people too much. The issue comes when extensions are closed source and the developer stops developing them though.

For now, I'll stick to Opera, although there is some feature-bloat I guess.

Grogs on March 19, 2008 4:39 AM

Firefox might have an improved memory footprint, but hey, not once you've installed all the "essential" extensions to get it up to the same functionality levels of Opera and Safari.

Jonny on March 19, 2008 4:46 AM

I think you've hit the nail on the head about Firefox, and also why Linux isn't more widely adopted.

I've been a power user ever since I first edited my autoexec.bat file at work to make the old 286 I was using run faster than the 386's on everyone else's desktops. And yet, I've been slow to adopt Linux in spite of the tweakability that is available... When Ubuntu Studio came out and Vista was on the horizon, I gave it another try with a seasoned developer's eye. My first reaction was pleasure at how simple it was to get installed and running... and my second was disappointment at how limited it was out of the box for features that Windows and Mac users take for granted and how very very complicated it was to locate (and sometimes install) the myriad of poorly described packages needed to achieve that same level of functionality.

Linux and Firefox cater to the power tweakers, and while I feel that more of the Millenium generation are being raised as power tweakers, relying on that means your adoption rate is generational

Oddly, I would also classify many of Vista's/IE7's/Office2007's most confusing changes to be in the same category - driven by the wants of power tweakers (e.g. sidebar gadgets, ribbon toolbar, compiz-style desktop switching) at the expense of the biggest user base - those who will never look beyond what is installed for them. Catering to a vocal minority.

RS Reitz on March 19, 2008 4:47 AM

Disagree. Totally. That's the path MS took that now delivers us problematic software bloated with new "features" aped from others in a wretched attempt to be all things to all people. Bah. Sorry, but the app developer's total focus should be to make the core app as fast and efficient as possible. Do NOT get distracted by feature bloat. Let the users add what they want.

I think it's a great idea to offer FF packages preinstalled with cream-of-the-crop add-ins, but PLEASE just make the core browser app as lean and mean as possible.

Add-ins are brilliant and it's one reason why FF is my only browser.

ChrisL on March 19, 2008 4:48 AM

> Lucky for us you don't [run the Firefox dev team] then.

As Neils pointed out, this is a good thing. The minute we incorporated AdBlock, FlashBlock, and FlashGet into Firefox, all our Google ad revenue would "magically" disappear, rendering us destitute.

Obviously there is a balance that needs to be struck, but I think there's a lot that we could learn from analyzing the top five add-ins for *any* product, not just Firefox. Say, Visual Studio or Eclipse for example..

> Once Firefox starts checking my spelling, I'm looking for a new browser.

I can't agree on that one:
http://www.codinghorror.com/blog/archives/000864.html

Jeff Atwood on March 19, 2008 4:49 AM

The other problem with the extensions model is that if something fails to work, then you are told immediately to remove all extensions and see if that fixes it. Of course there is logic to that (ruling things out), but it is seriously unhelpful; if we aren't "meant" to have them, stop advertising them as a feature. A way to script browser testing for combinations of installed extensions would help, so one could avoid all that tedious mucking about in extension space to work out which bit is wrong. Something like Watir or FireWatir is how I'd imagine this, with a capability to swap in and out existing extensions. But I'm unfamiliar with FF internals/API so couldn't begin to write this. So unless someone reading this can do it in their sleep, the LazyWeb won't step in to solve this.

hgs on March 19, 2008 4:57 AM

What you are saying is true but don't forget that Firefox is actually implementing this stuff.

Such as restore session functionality added after MixTab Plus extension. Which makes sense.

Other thing is that I don't want Firefox to ship with Forecast or Furl extensions (which are listed in top 20 but adding these kind of stuff will end up with a bloated default browser)

It's like saying let's ship Windows with all popular applications in it. But there are cases and where you need to ship it with a video player such as Windows Media Player but you don't need to support Quicktime movies.

Another thing is extensions like AdBlock that you don't want to ship with default Firefox or you don't want to ship Firefox with with fasterfox extensions or settings either.

John Ther on March 19, 2008 4:58 AM

The people that complains here are power users; 99% of the people I installed Firefox have never EVER installed an extension. They don't even know what it is.

Firefox misses lots of "basic" functionality. I am with Jeff in this one. I would blindly add extensions, but there are some "basic" stuff that ought to be included. For now, I shall remain in Safari's land :)

Martin Marconcini on March 19, 2008 5:03 AM

Jeff, you got a problem with Scandinavians? They kill your cat? They hurt your feelings? The ate your lunch?

Once again. A post on web browsers. A comparison between two browsers. A note on usablity of browsers. A commentary on the discoverability and efficiency of defaults in a web browser.

And you can't find it in your heart to spell an O and a P with an E next to an R right beside A?

Anonymous Coward on March 19, 2008 5:07 AM

I vehemently disagree; as others have said, you'd just be bloating the software. Now having firefox come installed by default with those extensions that can be unloaded would be fine, but putting it in the core functionality would be bloat, and users would be complaining about the browser's speed again. I think the firefox team has done a good job of finding the realistic medium of features everyone should actually expect from their software.

dnm on March 19, 2008 5:17 AM

Yay for another crap browser article from Jeff Atwood who lacks all ability to include Opera into his quest to let the world know of features that were most likely, were, are going to be, stolen from Opera.

I did a search for Opera and found nothing thus this article fails enough for me to not bother reading the first paragraph.

Phillip on March 19, 2008 5:17 AM

While I agree that FireFox should be imitating some of the cleverer features from Opera and Safari, and that the expansions are useful- most of the popular expansions offered are large apps in-and-of themselves.

The Mozilla Team tried the all-in-one-package system of building a browser- you can still download SeaMonkey if you're interested. It comes with a built-in e-mail client, IRC client, and kitchen sink.

I've worked with FireFox set-ups that contain a lot of extensions, and I gradually settled on the one that I just can't live without: FireBug. For people who don't do web development, it's completely useless and cluttery.

Most of the FireFox extensions on top-ten lists are asinine card-games, music-player additions, built-ins for soon-to-be-defunct social networking sites, ways to download things *more*, and other such cruft.

When it comes down to it, the problems you've listed may be fixed by extensions, but certainly not by the 'most popular' extensions. The 'big boys' are just too heavyweight and silly to include in a major browser release.

Curtis on March 19, 2008 5:20 AM

why would adblock take away your google ads revenue? you only get paid if somebody clicks. nobody's clicking, and nobody wants to see the bloody ads - that's why adblock is so hot.

_sahirs on March 19, 2008 5:23 AM

Don't forget the issue of extension compatibility. I don't bother installing Firefox extensions because they might break in the next update, requiring me to update that extension as well - but that extension might not be compatible until someone fixed it, which - if it's not the original author - may introduce subtle new bugs to the extension.

Long story short: i'm done with Firefox because Opera provides me the best out-of-the-box experience. For two reasons: mouse gestures, and the (default!) setting to save all open tabs. In Firefox and IE i'm merely asked if i really want to close all those tabs, but there's no default no-questions-asked option (i could find) that opens the tabs the next time. I think Firefox does this only if you click a checkbox each time you close, but it's not enabled by default and this nagging close dialog i couldn't get rid of.

So, there you go, extensions and all ...

steffenj on March 19, 2008 5:27 AM

I like FF3 a lot, but I'm still an Opera head. Hopefully 9.5 will be stable and out of Beta soon. I can't wait for 10 either.

I have 4 browsers on my work PC and sometimes 3 on my Mac at home. Opera is what I use for real surfing/research, the others I can only use for checking the odd site. Yes, thanks to extensions, Firefox can be made more Opera than Opera, but the mouse gesture recognition isn't just as good and little things like that. Opera is much smaller than Firefox, though FF3 is lightning quick, but there are still loads of things in Opera I don't use, like the panels, notes and widgets. And I don't use the M2 mail client now I have Mail.app.

I enjoyed reading Joel Spolsky's latest essay on web standards, but I think the xhtml/CSS thing is nowhere near as much of a problem as JavaScript incompatabilities.

John Ferguson on March 19, 2008 5:42 AM

To quote a good friend of mine "bad defaults are bad design (period)".

It would be nice to see Firefox packaged with the most clever and reliable extensions... it would certainly save the Firefox guys the effort of implementing these things themselves, whilst providing a mechanism to rapidly expand the functionality of Firefox "out of the box" for very little cost.

Jheriko on March 19, 2008 5:44 AM

Jeff, great post. I think several commenters here completely miss your point, though.

Vetle on March 19, 2008 5:51 AM

I've actually avoided putting ad block, etc. on my parent's and sister's versions of Firefox. I know that they'll both end up on a site that doesn't display correctly and have have no idea what to do - they may not even realize it's something they can fix by calling me.

So even if it was included in the next version, it would probably have to be off by default and the same people wouldn't be able to use it anyway.

Ironically I used Opera for months before I realized it had built in wild card ad blocking and that scripting could be enabled on a per-site basis. I sometimes wonder what else I could be missing because it was hidden away in some non-obvious place.

Greg on March 19, 2008 6:01 AM

I guess I'm a FF power user. I have 10 different "must have" extensions installed. But of the "9 items Firefox should steal from Safari", none of them (other than faster HTML rendering obviously) interest me in the slightest.

You say is that only power users install extensions. But the features you listed would only be of interest to power users. Do you think your grandma cares about detachable tabs and resizable text areas? Call her and ask. I bet she'll say different.

Grandma probably does like spell check though, including that in FF 2.0 was brilliant.

Matt Henry on March 19, 2008 6:04 AM

Extensions are written by numerous third parties. The only way to insure the browser itself keeps its integrity is to make any extension separate and allow the user to install them and live with any consequences.

PaulG. on March 19, 2008 6:05 AM

Perhaps its a side point, but I just wanted to point out that since Firefox itself is not a default browser on MS Windows, it requires a home computer user to proactively find Firefox, download it, and install it. This indicates that for many typical Firefox users (those who are running MS Windows), extension installation should not be anything out of the ordinary. Linux users, for whom Firefox often comes default, will find this extension installation process even more normal. If you have gone out of your way to install Firefox or make yourself a Linux box, then you will probably go out of your way to find extensions for Firefox as well, if not code them yourself.

wingman on March 19, 2008 6:06 AM

I disagree. I suspect a lot of people are choosing FireFox partly BECAUSE of this core + extension philosophy. Bloatware tendency is difficult to stop once you take the other philosophy.

From the point of view of software development, developers of core engine should stick to core issues, and leave other issues to extension developers. This is a pretty solid conceptual division of labor.

As for Safari/IE-envy, I think it's possible to provide download for "FireFox with pre-installed extensions that feature-match Safari/IE."

Paulus on March 19, 2008 6:17 AM

> If an extension is wildly popular and everyone urges you to install > some "crucial" or "essential" extension in Firefox -- shouldn't
> that extension have been baked into the browser in the first place?

I suppose. But I don't think that's really the case here. Pretty much every addon I've ever seen is a niche product, despite the protestations of its fans.

I've been a Firefox user since its initial alpha release, have tried quite a few addons, and have even tried my hand at writing a few. Some are quite nice, but there are *no* addons I consider essential.

Just to make sure I wasn't going crazy, I went through the list on the first hit of your google search (50 Best Firefox Extensions). There was only one extension on the list that I'd consider bothering to download: The one that opens a webpage in IE for you (for those badly-coded websites). Even that one couldn't really be part of the default install, as it only makes sense on platforms that have IE (and probably doesn't work outside of Windows). Anyway, it just saves me a couple of mouse clicks and a copy-paste operation.

I'm sorry, but if that's all I get out of the "50 Best", then I don't think there's really an issue here.

T.E.D. on March 19, 2008 6:21 AM

> If I ran the Firefox development team, every new development cycle, I'd take the list of top 5 Firefox add-ins and demand that we fold that functionality into the core product.

And after 10 development cycles you'd have 50 add-ins pre-installed and no one user would likely be using more than 5-10 of them. And then we'd see a post on Coding Horror about the ridiculous memory usage of FF...

I think that's how you end up with programs like Word and Excel. They have all the features that you could think of, but to any one person it seems like feature bloat because they only use a small fraction of those features. The beauty of extensions is to let the user decide which _non-essential_ features they wish to add. I use FF for development so I like to add the developer extensions like Web Developer and Firebug. But my parents would probably want things like spell checking.

It might make sense to _ship_ FF with the most popular extensions so you can just bring up the extension dialog and enable them, so they appear to be additional options/features of the standard app. But I wouldn't take it much farther than that.

David Avraamides on March 19, 2008 6:22 AM

"If software developers were doing their jobs properly, an extension ecosystem wouldn't be necessary-- 99% of the features users want and need would be already baked into the shipping software."

But aim to do this and you end up with bloatware.

The big problem with firefox extensions, I think, is that the extensions site search and browse functionality is embarrassingly bad. There should also be better use made of reviews, and some kind of related extensions functionality. Make it easier for people to find the extensions that are helpful for them and teh pross outweigh the cons by far.


Rhys on March 19, 2008 6:28 AM

One other option is to offer the "top five" as an automatic part of installation. No need to reinvent the wheel by adding the existing code, just pick the option at download time and they get included.

Al on March 19, 2008 6:28 AM

It's clearly a hard problem deciding when a feature should be included out of the box or have to be turned on or added-on manually. I like Jeff's idea though, that we can learn a lot from "popular" extensions. The less I have to do to get Firefox working on a fresh install, the better.

Rich Bateman on March 19, 2008 6:29 AM

It's a fine line between a lean, mean program and a bloated mess. Remember where Firefox came from. (NETSCAPE) Remember what a bloated mess that was?

When you look at it like that, you can see why the Firefox developers are so rabidly phobic of adding "features."

At least, that's the way *I* see it.

Keithius on March 19, 2008 6:36 AM

I generally agree with your position (as well as with Des), but the reality is that Firefox 3 is not all that far behind.

1. Improved current field highlighting - finally looks great on OSX with FF3b4. If you want this on Windows complain to Microsoft. I think Firefox is taking the right approach of using native OS widgets instead of custom implementations (like Safari does on Windows).

2. Alternate font rendering - same as #2. Firefox font rendering looks as good as Safari on OSX. On Windows is matches Windows font rendering. This is as it should be.

3. Cleaner downloads dialog - honestly, I don't see the issue here. The download window in FF has always been fine. But it is significantly simpler in FF3b4.

4. Faster HTML rendering - no real thoughts here. I'm sure some people care about this, but certainly not very many "regular" users.

5. Simple, painless bug reporting - FF3b4 has Help -> Report Broken Website and Report Web Forgery. No biggie. Safari's actually gotten rid of the ugly bug icon lately, anyway.

6. Visual incremental find - while I prefer Safari's find feature, Apple is also able to use full OS capabilities to do this. With a cross-platform codeset, I think FF does a pretty decent job at this.

7. Detachable tabs
8. Draggable images
9. Resizable text areas

The last three are the biggies. But I'm not sure how much "regular" users will touch these areas, anyway. Draggable images, most likely, but at least on OSX FF3b4 does this nicely.

Derek on March 19, 2008 6:42 AM

Those people suggesting pre-packaged extensions seem to be forgetting the small matters of compatibility, updates, and regression testing. Microsoft has been in this territory before, and it's not a fun place to be. Raymond Chen explains it best:

http://blogs.msdn.com/oldnewthing/archive/2008/02/25/7885570.aspx

Aaron G on March 19, 2008 6:53 AM

It seems to me that the easiest way to satisfy both views of the needs of the core (the "keep it simple" view and the "make it powerful" view) is to have the downloadable binary ship with the top 5 needed extensions. If they came pre-installed, then people who never change the defaults would have the functionality that keeps the browser competitive with other browsers, while power users could simply uninstall or disable the extensions they don't need. Since I can expect the overlap between power-users and people who care about simplicity and performance over functionality to be large, this should balance the needs of both camps well.

Of course, it comes with its own headaches. Bundling those five extensions means they need to be supported as well as the core browser itself, or you risk alienating new users if those extensions fail for some reason on their quirky setups. Additionally, it'd be fun to watch the Firefox community slug it out over which five extensions are "completely necessary." I'd be interested to see if they would be able to come to common vision on such a question.

Mark Tomczak on March 19, 2008 6:54 AM

One thing that would be useful is a higher level of structure in the Firefox add-on world. One could then have a single 'consolidated' add-on that, that implements a specific add-on strategy-- e.g.,automatically installing the top five add-ons, or whatever.

MattF on March 19, 2008 6:55 AM

Some extension are to specialized to get into the final product like Web Developer Toolbar or Firebug, other extension are highly rated but there are commercial reason to not include them (like Adblock), others require special knowledge of API’s that are subject to change.

There are a lot of good reasons to not include functionality into the final product.

Beside the fact that the good extension system allows that mission features can included as extension also the developer can see by the extension popularity what features are really used by the users of Firefox.

But what extension should they include? First the most popular ones, with features most users will need and the smallest code base. If we’re looking at the top #5 this will be probable NoScript and Download Statusbar.

Joe Scylla on March 19, 2008 6:56 AM

The top 5 extensions are popular, but there is no reason to believe that they are popular with the same classes of people. Indeed, Arrows impossibility theorem shows that it is impossible to construct a satisfactory community wide ranking from the ranked preferences of individuals so it would certainly punish some users to roll more extensions into the browser.

This is of course predicated on the fact that installing extensions has a non-zero cost to users that do not make use of them due to increased clutter, reduced browser performance, time spent configuring the browser to hide the features etc.

Max on March 19, 2008 7:00 AM

Jeff, I have to disagree with you that extensions, however popular, should be baked in to the default release of the browser. This would create a huge headache, because then the FF dev team would be supporting the extension instead of the community.

The entire purpose of the extension community is to offer tools for the browser that they find useful, and let others try them out. If you don;t like them, uninstall it. That may be hard if it comes prewrapped.

Matt Presson on March 19, 2008 7:00 AM

I think Firefox could do well with a simplified version of the plugin manager window in NetBeans (See: http://www.javalobby.org/images/postings/mendes/jfxp2.png ) Down the left, display popular and "verified" extensions grouped by category, then on the right have a details panel that describes what the extension does.
In my experience this has worked very well since it's introduction into NetBeans.

Ross Anderson on March 19, 2008 7:01 AM

FireBug. I could remove every other extension in FireFox and be fine. But I must have FireBug.

Chris Brandsma on March 19, 2008 7:02 AM

I agree with the previous comment about a special Firefox Plus version. A special developer's version of Firefox would also be helpful.

Robert S. Robbins on March 19, 2008 7:04 AM

> The minute we incorporated AdBlock, ... into Firefox, all our Google ad revenue would "magically" disappear.

Of course, that would depend on the adblock filters installed by default. In the same way that "typical users" don't install extensions, they would probably only use the filters configured by default. And you can imagine the battles that could cause...

Seriously, I'm glad that adblock isn't in Firebox "out of the box", because if it was, advertisers would need to find a way of delivering unblockable ads (like Jeff's, but much much worse!). Currently, I don't think they have the motivation.

Roddy on March 19, 2008 7:16 AM

Jeff,

No offense, but I don't *want* more extensions and features in my browser. I want it to work, crash less often and possibly block every site in the world from "tribalfusion." If I want an extension for a specific purpose, I'll add it. I wish I could do this with MS office and the cable company. In both cases, I want about 10% of what's available (OK, maybe 1% in the case of cable). I'd just as soon buy the rest as and when I need it.

As for those who never install extensions and don't know what they are, are those people ever going to use them anyway? Or even know they're there?

ThatGuyInTheBack

ThatGuyInTheBack on March 19, 2008 7:17 AM

Firebox==Firefox D'oh.

Roddy on March 19, 2008 7:17 AM

Sorry difficult to agree on the title. Its all about freedom. Freedom to choose freedom to ignore. With extension you have all you want. And if one sees cool Safari feature then my reaction would be search for a similar one on addons site or even attempt on on your own! :)

Extensions is the best thing ever happened to a Web 2.0 age browser.

Ajo Paul on March 19, 2008 7:29 AM

Am I the only one who thinks NoScript serves little purpose?

Yah, it reduces the likelihood of damage from Firefox bugs, but it also breaks lots of huge firms' websites.

techy on March 19, 2008 7:30 AM

Ever since you stopped blogging exclusively about Microsoft developer tools, I've been following your blog a lot more closely and have recommended it to several friends. Cheers on another well done post Jeff!

dilbert on March 19, 2008 7:32 AM

The problem is, different people like distinctly different combinations of extensions. Sure, AdBlock is probably the first extension people install. But beyond that, you'd end up with a much less usable product. My spouse lives by the CoolIris preview extension; I can't tolerate it. The VideoDownload helper is my friend; he can't tolerate the animated toolbar icon and just wanted it gone.

"If software developers were doing their jobs properly, an extension ecosystem wouldn't be necessary" is just plain wrong. The extension ecosystem is why Firefox is now the best browser out there. Instead of a small group of minds trying to conceive of every useful feature, we have hundreds of minds doing so.

It's true that integration suffers. That's why we have companies that copy the best features into their own browsers. Firefox is the R&D platform for the web.

Anonymous on March 19, 2008 7:33 AM

Casual users use the browser as they find it is an understatement. Casual users use the browser they find in the computer. Feature-set for them is a non-issue.

Advanced users will know how to get the most from their browsers (leverage add-ons, community, whatever...), making vanilla feature-set a non-issue.

Now for intermediate users... what the hell is that?!

Firefox share speaks volumes of their capacity to make competent development choices (and survive hard-times too, ex: the performance issues of FF2).

Remember it's audience is stronger with the kind of user that would find it easier to change browsers.

Frederico Pinto on March 19, 2008 7:34 AM

Pretty straightforward. There are 4 different types of software changes:

1. bug fixes
2. improvements
3. features
4. whole new sub-applications

You can, in principle, use plug-ins for any of those. Everyone would agree solving #1 solely by plug-ins is pretty stupid (as an answer to 'it crashes if I press X', 'go install this plug-in' rates below 'don't press it then' for helpfulness).

Equivalently, in the opposite direction, if you don't use plug-ins for #4, then your estimated ship date risks hitting a time overflow bug in your planning software.

The debatable area is in the middle. All the 9 points raised in the OP are, to my mind, pretty clearly #2: improvements to existing capabilities. You can enter text in any browser, making the box resizable is an better way of doing the same thing, not a feature in it's own right.

Problem is, if the only tool you have is an army, everything looks like a war. For a developer casually interested in contributing to Firefox, if the first mechanism that comes to hand is a plug-in, then write one is what they will do.

I think Eclipse, despite being made of plug-ins, gets this righter than Firefox. The team work to make it easy to contribute patches which they integrate into the baseline source code. So you see a lot less tweaks and patches as plug-ins, and a lot more PHP editors, work planning systems, etc.

soru on March 19, 2008 7:35 AM

Opera ftw.

Binarycow on March 19, 2008 7:36 AM

Reminds me of a Paul Graham aphorism. "When your users keep walking through a hole in the wall you should probably make a door there."

I thought I saw a small progress bar for downloads in my status bar in the latest Firefox beta. Not as cool as Download Statusbar, but still.

I was pleased to see the "save my tabs on exit" extension integrated into the browser. steffenj, this works now.

One hack that I think is totally great is at <a href="http://www.spasche.net/mozilla">http://www.spasche.net/mozilla</a>. It allows you to read documents with "unrecognized" extensions and mime types in the browser by adding "Open in Browser as... [Text/Web/XML/Image/Other]" to the Open/Save dialog. You can read source code without saving anything, for instance.

This one could and should be integrated into the browser. It is more confusing to click on a text file that Firefox could easily display, then be forced to either open it in a separate application or save it to disk, than it is to have the option to stay in the browser.

Is the extension germane to web browsing? There are a bunch of extensions that do FTP, but you can do all the same stuff by running an external FTP program. In other words, taking a standalone app and sticking it into Firefox by writing an extension does not point out a hole in the wall in Firefox qua browser.

Does the extension fix a pain point that occurs in the course of browsing? The "Open in Browser as" extension solved a problem that drove me up the wall. I like Download Statusbar as well; it solves a pain point that you have to context-switch to the Downloads dialog to check on your downloads.

Not including Adblock is a political issue.

Not including NoScript is a vast-majority-of-users issue: NoScript makes the user think and the default behavior is to cripple functionality the vast-majority-of-users have come to expect, so the vast-majority-of-users shouldn't have it by default.

Not including Yet Another Tetris Clone is a no-brainer.

Ron on March 19, 2008 7:47 AM

You didn't comment on something else about extensionmania: Extensions cause product instability.

By the time Mac System 7 came out, Macintosh started getting a fairly stable operating system. It rarely crashed and was relatively stable. The popular Multi-Finder was incorporated into it and it seemed very popular. Yes, it didn't have preemptive multitasking and protected memory, but it was pretty good for its time.

One of the most popular features added to System 7 was the ability to add extensions to it. Before System 7, you needed a special tool, and you were limited (I think the number was 32 which included Control Panels) to the number of extensions you could previously add. Now, all you had to do was drag Control Panels and Extensions to special folders, and they would automatically be included in the OS the next time you booted.

The result was a cornucopia of new extensions and control panels which crated an absolute mess. Extensions and Control Panels conflicted with each other, crashes became common, and what was once considered a fairly stable operating system became a teetering mess. System 7.5 incorporated many of the most popular third party extensions, but these weren't incorporated into the OS very well. System 7.5 was prone to constant crashes, "Sad Mac" (where the system wouldn't boot up), and many Mac users abandoned the Mac platform for Windows 95 which just came out.

I have quite a few problems with FireFox extensions. A few seem to make FireFox crash or misrender pages. Most stop working whenever I get a new FireFox update. They are not easy to install or find, and I've even seen Trojan extensions that claim to do one thing, but allow a user's computer to become more vulnerable.

There's a fine balance that needs to be put into effect. Features that are useful need to be incorporated directly into the software as first class features. At the same time, you want to avoid feature bloat. You want your software to be massively configurable and addons are an excellent way to go. However, if you encourage people to install too many extensions, you make your product slower and less stable.

I've noticed that Firefox becomes a bear when too many useful extensions are added, and what was once was a fast and small browser has turned into as bloated and massive as Internet Explorer. FireFox needs to figure out which features are useful, add these features to the core product while stripping away extraneous garbage.

David on March 19, 2008 7:47 AM

If people would just use Opera they wouldn't need any extensions.

Chris Nahr on March 19, 2008 7:52 AM

It might be interesting to take a look at software that has implemented a lot of user extensions. In my view, Blizzard Entertainment has done a really good job with their World of Warcraft UI.

It's highly moddable, and huge community has sprung up around making mods. Blizzard has been very carefully folding some of the most popular/useful mods into the default client. They're a lot more selective than "the top 5 most popular mods though", as they try and retain an emphasis on making the default UI accessible to new players.

Rohan on March 19, 2008 7:59 AM

+1 Funds have started up around Facebook and iPhone apps, It'd be great to see the same for any extension deemed worthy of being rolled into Firefox. This support from Firefox would also help create better extensions (I suspect my Firefox crashes often due to extensions).

monsur on March 19, 2008 8:04 AM

I for one would stop using Firefox if it started bloating up with all the functionality of the extensions.

Baking in such functionality would ultimately (probably) lead to different versions of Firefox - Superlite, Vanilla version, Developer Edition, Designer edition, P2P edition, Stealth edition, Pimped edition etc. The many faces of Vista still confuses me!

Mark Lennox on March 19, 2008 8:07 AM

There is a delicate balance. Integrating the functionality can make the browser better, but it also naturally causes bloat. I believe that what should be integrated are small feature improvements. Not only from other browsers like Safari, but new things.

The new awesome bar (url bar) is a good example of this. Once you use it you wonder why every browser doesn't have it already. Firefox needs more features like this.

Offering extension 'packs' might not be a bad idea. Several extensions designed to work together for a common goal. A web developer pack, or a social networking pack. A google pack...

There are lots of possibilities, but I don't hink integrating every bit of extension functionality in is the right approach. Extensions are largely designed to do things the developers *can't* do. They serve a purpose.

Daniel

Daniel on March 19, 2008 8:12 AM

With the exception of the built-in download manager, I will have to go with FF's way of doing business. They started a buzz and have kept many people happy with their development.

Trying too hard to put all features into a product usually ends up with something fat. Having a core product that is extensible lets you add the "fat" you want, and it's more fun!

Steve on March 19, 2008 8:15 AM

Hi Jeff,

Was the picture of the moon just a "Random Image Arbitrarily Inserted In Text" (http://www.codinghorror.com/blog/archives/000834.html), or was it a reference to Eclipse? It kind of reminded me of their logo.

borris on March 19, 2008 8:19 AM

I run Safari primarily (on OS X) and Firefox occasionally, primarily because Firefox has better Javascript error checking than Safari does, and sometimes I need to debug that shit. Also, for some reason Safari totally crashes when I use Lexis-Nexis. Which is odd, but not a major part of my day.

Anyway, I have I think maybe two Firefox extensions. TWO. They do really simple things thatI occasionally use. And even with just those two, practically every time I open the browser I'm informed that there are updates to install and THEN I can open my browser.

I'm not a picky guy. I like the fact that extension creators update a lot, in theory. It shows they are active. But once a week? And does this really have to be the FIRST thing I see when opening the browser? Usually when I open a browser it's because I've got something I want to look at. Couldn't it be designed to let me look at it first, and then maybe if I'm hanging around, being a little idle, it could, in a non-obtrusive way, suggest that there might be updates to be had? I don't remember when Windows Update switched to that sort of model, but it's a definite improvement.

(No, I haven't run the beta. No clue if this is in the next version. Shouldn't have been in the previous one!)

Shmork on March 19, 2008 8:28 AM

How about Firefox Distros? Would that be too crazy?
Like "Firefox for Web Developers" (Firebug, WebDeveloper, CSSViewer, HTML Validator, etc.)

Fernando on March 19, 2008 8:32 AM

If the top extensions are added with each new release, it will become bloat-ware. At that point, Microsoft may start to show an interest in it. The next thing you know, it will become an "integral part of the operating system"

Rob on March 19, 2008 8:32 AM

The only two things stopping me from using Safari on my Mac are:

1. Google Browser Sync
2. The del.icio.us plugin

I use more than one computer, and having all my settings, bookmarks and history automatically sent between them is so useful that every browser should do it.

As to the "but rolling all the popular extensions into FireFox would make it bloated and horrible"... well yeah, it would... but you've already installed all those extensions anyway so you aren't going to notice.

James on March 19, 2008 8:51 AM

The Opera browser will never challenge Firefox let alone IE until Opera comes up with a snazzy name the way Mozilla did with Firefox. Opera has to be the worst browser name ever.

Kuerwen on March 19, 2008 8:52 AM

I unsubscribe.

nick on March 19, 2008 8:55 AM

I think it's just a perception that there are so many things for firefox because it comes with some of these things per default.

Download IE7Pro www.ie7pro.com and you have all this for Internet Explorer too, full scripting api for creating addons and superb ad blocking and all those things that supposedly make Firefox better.

It's great and free, the only difference is that IE doesn't come with it from start.

PL on March 19, 2008 9:00 AM

Maybe comparing default Safari to default Firefox is apples to oranges. I tend to think so. If you've gone out of your way to install Firefox, and you're using it on a normal basis, than that "installation" part is probably not that much work. Safari and IE tend to market well to people who just don't care, and want to just browse the internet.

I install Firefox because of the myriad of tools available that just aren't present (or that just plain SUCK) in other browsers. Ever tried debugging javascript in IE? How does that compare to Firebug? I'd much rather start with a small installation, and build on it as _I_ would like. I definitely don't want the kitchen sink, in which I don't use half the features.

I do think, however, that Firefox performance with TONS of Firefox extensions installed needs to be looked into.

Paul Hummer on March 19, 2008 9:03 AM

@Paul
I honestly don't think you looked very hard, there are myriads of tools and scripts for IE7 too. Perhaps not as collected to one single website as it is for Firefox.

PL on March 19, 2008 9:06 AM

This is from the same guy who wrote several pieces about trading features for simplicity, feature bloat, etc.

Just make up your mind already. It's disingenuous to complain about software becoming too complex to use and learn, too bloated to download, and then criticize a piece of software for literally not having enough features that "everybody" wants.

M on March 19, 2008 9:12 AM


# Draggable images

already in firefox 3, actually, it can do more than safari, you can drag elements across tabs, which safari can't; you can also drag combination of elements, while safari can only let you do one at a time

# Resizable text areas

this is first an extension for firefox 4 years ago, since when it becomes a "steal from safari" topic?

cris on March 19, 2008 9:24 AM

perhaps a good middle ground should be an "uber extension" package system whereby users can download packs containing several popular extensions based upon their personalities. Alternately, Mozilla could mine usage data on extensions to see which ones should make it into core, much the same way the Drupal CMS team does with its highly extensable product (there are thousands of useful Drupal "modules")

jake on March 19, 2008 9:26 AM

How many of those nifty items in your home are specialized functionality-- and how many are crude spackle over missing items that really should have come with the rent? I mean, surely everyone needs "a bed"? Why not include "a bed" in the rent?

Anonymous Coward on March 19, 2008 9:28 AM

The Firefox development team does look to extensions for guidance on features to include -- that's where things like the tab management improvements and session store and spellchecking in Firefox 2 came from, for example. In FF3 we have the download statusbar and some search-keyword management elements at least, and we spent a lot of effort on infrastructure around download management and bookmarks/history to make them more fertile ground for experimentation, to say nothing of improving the security, memory efficiency, and ease-of-installation around add-ons themselves.

But that an extension is popular among the set of people who install extensions and blog about it, or that _some_ of the extension's features are candidates for uplift, doesn't mean that that extension itself is ready or appropriate for 165M users to have by default. The bar is much much higher there in terms of robustness in the presence of unusual configurations (how many of those extensions work correctly in right-to-left locales? with a screen reader? in the presence of ligatures in the text?), efficiency, user interface polish. Where we have incorporated extension features, it has always meant a large amount of work, often in concert with the author of the inspiring extension. Successful extensions are usually exactly that: great sources of inspiration, typically not very effective sources of ready-to-serve code.

Mike Shaver on March 19, 2008 9:35 AM

I think it would be a horrible idea to add those extensions to the browser core. I have about 20 extensions installed, but I have only 3 of the top 10. Adding these extensions to the browser core takes away the customizability that makes Firefox better than any other browser out there. I don't want to have either unnecessary features, like I do with Opera, or absolutely nothing at all, like I would with IE. Firefox is a perfect middle ground.

glxr on March 19, 2008 9:40 AM

couldn't disagree more about incorporating the top 5 extensions into firefox. your top 5 extensions aren't the same as my top 5 extensions and either won't be the same as my wife's top 5 extenstions. forcing bloatware on users is an too common occurrence. let's keep firefox on a diet, shall we?

JRock on March 19, 2008 9:49 AM

This is a good discussion, and represents a lot of the tradeoffs we (as the Firefox development community) do in fact face every time we sit down and think about how we want to improve Firefox.

- What is core to a web browser?
- What will be useful to the majority of our users?
- How can we ensure that the improvement is worthy of the risk it involves, either to the functionality or simplicity of the rest of the product?

In short, a lot of the questions that come up on <a href="http://www.37signals.com/svn/posts/913-question-your-work">this slide</a> come up whenever we think about adding a feature.

As for the list of 9 issues, I actually think that Firefox 3 Beta 4 has achieved 5 of them (improved current field highlighting on OSX and Vista, which have OS-native support for that; better font rendering; cleaner download dialog; faster HTML rendering; image dragging). The other 4 are things we weren't able to address either because the costs were too significant, or the solutions weren't immediately clear.

We'll continue to listen and uplift, with a focus on making the web a better, faster, and more straightforward place for everyone, and enabling people with specialized use cases and tasks to customize their browser, and indeed their web (see: greasemonkey) to be the way they want.

Mike Beltzner on March 19, 2008 9:51 AM

Oops, "this slide" --> http://www.37signals.com/svn/posts/913-question-your-work didn't notice the HTML restriction.

It's a great slide! :)

Mike Beltzner on March 19, 2008 9:52 AM

Firefox uses the OS to do text rendering, it doesn't contain its own renderer. On OSX, Firefox renders identical to Safari 3. On Windows, Firefox renders identical to IE7.

http://codeplusplus.blogspot.com/2008/01/web-font-shorts.html

I discovered that Linux's text renderer was actually more accurate than either windows or osx.

Sean on March 19, 2008 10:13 AM

Obviously, it's not enough to look at which extensions are popular and base decisions on that. The important thing to do is to look at _why_ particular extensions are popular and examine whether there's a more suitable core solution or not.

Let's look at Adblock - why is Adblock popular? Some adverts are really distracting/annoying. Most static/text-based adverts have never really been that much of a problem on the web, but moving and obtrusive adverts are. I see no reason why Firefox couldn't pause all GIF animations by default, thus eliminating a good chunk of annoying advertising outright. Flash would probably need a more robust solution; Firefox would need to know whether the media is paused or not, and pause it directly via an API if it's going to auto-play.

NoScript - I think it's mostly popular due to advertising being annoying (see above).

FlashGot - Many features, not all of which would really fit. Being able to pass files off to an external download manager directly might be a nice Firefox in-built option though.

Download Statusbar - Probably popular because the single-window download manager is a separate window and because it's harder to track individual downloads without having it fully visible.

Ben Basson on March 19, 2008 10:18 AM

"but when extensions reach critical download mass and the same extensions appear repeatedly on best Firefox extension lists, they're filling a universal need."

Which extensions are those, then? Those most downloaded extensions are not filling a universal need, they're filling a need amongst geeks who download a lot of files and like to flip javascript on and off for different sites. Everyone has a different view of which extensions are "must have" - I'm not sure I've seen one that appears in every "must have" list.

Put up a blog post with the 5 universal extensions that you think should be in by default, and see if 90% of people agree with your 5...

Michael Lefevre on March 19, 2008 10:27 AM

Why extension should be added to the core browser:

A browser is a browser. I think if an extension adds considerable value to a browser, such as spell checking or highlighting current field, it deserves to be integrated into the core browser installation so everyone can benefit.

If a handful of extensions are used by a LOT of people, then someone needs to test those extensions properly, verify they are compatible with firefox and other extensions, etc.

Why an extension shouldn't be added to the core browser:

Features such as "Gmail Notifier" doesn't belong in a browser. It doesn't benefit the large population of users. Yes, it's nice since you don't have to constantly reload pages or keep a separate window open for Gmail.

Or GreaseMonkey. I don't want to write Javascript to browse the web. You do, but I don't, and I would guess a large population of people don't either.

Kashif Shaikh on March 19, 2008 10:37 AM

I agree, but the only problem that I think could come from constantly loading each new release with the best extensions, is that it would slowly get more and more bloated.

This, to a certain extent, is what has been happening to Windows since it's creation.

Zoasterboy on March 19, 2008 10:37 AM

Hey Now Jeff,
Great post! Cool Iris is kinda nice add in too.
Coding Horror Fan,
Catto

Catto on March 19, 2008 10:38 AM

It seems like sort of middle ground could be adding a tab in the installer (of course this does not help those that don't use an installer) which displays a small selection of best-rated mass-market extensions that you can simply click a checkbox to include in the installation (installs as normal extension so you can disable, upgrade etc.). It would be a good opportunity to teach about extensions in general, like where to find them.

Of course, this would increase the testing burden somewhat, because Mozilla would need to test every combination of the suggested plugins in many, many different settings. Some of that testing is actually already happening with top ranked extensions.

HT on March 19, 2008 10:40 AM

"If software developers were doing their jobs properly, an extension ecosystem wouldn't be necessary"

I have to disagree with this statement, It is because the FF team has done such a great job that there is an extension ecosystem.

Eoin on March 19, 2008 10:42 AM

You should have a look at:

<a href="http://wiki.mozilla.org/Spectator">http://wiki.mozilla.org/Spectator</a>

"Spectator is a Firefox extension that collects data about how Firefox is used. This information is used to better understand what people value in the browser."

Thomas on March 19, 2008 10:56 AM

The problem with extensions is that if get a large enough sample size, almost everyone has three different "must haves".

Down that path lies featuritis and madness...

(Although I would like to see Greasemonkey as default, and AdBlock as default, and...)

engtech on March 19, 2008 11:13 AM

and I'm so disappointed to find out what Ruby XHTML support really is.

engtech on March 19, 2008 11:15 AM

Firebug. A web developer's wet dream.

Mattkins on March 19, 2008 11:15 AM

The only extensions I have in FireFox are:
AdBlock,
NoScript,
Download Them All,
IE Tab

I don't need / want any others. Don't bake in features I don't need. I understand your philosophy that most users would never bother with extensions (perhaps they don't know they exist), but don't burden power users in a futile attempt to serve ignorant users.

KG on March 19, 2008 11:24 AM

I have to disagree on one point. You say:

<blockquote><b>If software developers were doing their jobs properly, an extension ecosystem wouldn't be necessary</b></div>

But doing a development job properly does <em>not</em> mean that extensions are unnecessary. Especially since you point out that doing their job "properly" means folding in <u>the most popular extensions</u>. That leaves the other 99% of extensions out of the mix, ones that certains users will find invaluable.

A better statement would be that if developers were doing their job, then the most popular extensions (which equates to being the most desired features) are in the code while the users can get the individual or smaller set customizations they need elsewhere.

To say extensions wouldn't be necessary is to make the mistake of assuming one set of features fits everybody's needs, or that one development team can make everybody happy. We all know that's impossible. ;)

Darryl L. Pierce on March 19, 2008 11:37 AM

I have to agree with the halfway solution others have suggested: having some extensions by default and being able to uninstall them.
But I'd like to take the idea further. Why only browsers? Word processors, for example, are now ultra-bloated with features most of us seldom or never need (and I don't mean the optional features of MSWord, for example: each one of them would be the equivalent to 8 or 10 extensions).
Right now, AbiWord is the one that almost gets the idea, but its extensibility is mostly directed for file conversion, filters, and programming needs, when I mean things like adding/removing live word count, auto-text entries, mail merge capabilities, table auto-formatting, equation editing (perhaps with several levels of complexity, from basic to advanced math), bibliography management (a la EndNote or Zotero), corkboard (a la Scrivener) etc.
That, and a proper page preview (by default, please!) and I'd ditch MSWord or OpenOffice for a lighter word processor in the flick of a switch.

Jorge Rosa on March 19, 2008 11:44 AM

The funniest thing about this discussion is that it's pretty clear who has tried the Firefox 3 betas. Also, asking for an extension that makes HTML rendering faster is like asking for luggage that makes your flight go faster.

db48x on March 19, 2008 11:50 AM

I'm pretty sure firefox *has* incorporated some extension into it, most notably tabbing extensions and session-restoring ones, and that was in FF2.0! While you may complain that they don't incorporate them fast enough, you can't really claim that they aren't being responsive.

PJ on March 19, 2008 11:55 AM

FEBE lets you back up portions of your profile, including extensions. CLEO lets you create an XPI that packages together several of your installed extensions; the package can then be installed into another profile, onto another computer, etc.

The commentors who are describing distributing groups of extensions might want to have a look at these. However, I don't know what the less straight forward behaviors are, e.g. when the destination already has an extension installed (perhaps at a different version level).

FEBE
<a href="https://addons.mozilla.org/en-US/firefox/addon/2109">https://addons.mozilla.org/en-US/firefox/addon/2109</a>

CLEO
<a href="https://addons.mozilla.org/en-US/firefox/addon/2942">https://addons.mozilla.org/en-US/firefox/addon/2942</a>

Paul B on March 19, 2008 12:03 PM

Recently I've been happily using Opera.

It has a lot more functionality by default than Firefox does, but it seems that many of the Firefox add-ons would be really good to have.

So now what.. ?

- Switch to Firefox because of all the add-ons?

But Firefox is so.. clunky compared to Opera, that maybe I'd rather not!

Then again.. and so on.


Shiranaihito on March 19, 2008 12:11 PM

I can't help but think of the parallels between the bake-in/leave-as-addon balance and the similar one in programming languages- "Language Feature" or "Library". For instance, in Icon you can get the length of list foo with "*foo". Other languages, Length is a method/function in a library somewhere. How do you decide when something is necessary enough to bake in?

I tend to lean towards the more conservative approach to baking in- I see firefox as a "starting point" for my browser, upon which I pick and choose functionality based on how directly their features affect me and how heavyweight I want my browser to be. After all, wasn't firefox developed to be a fast, lightweight version of the Mozilla browser?

The thing is, while baking in would obviously allow speed optimizations to be made for certain features (where those optimizations might not necessarily be possible via the plugin interface), the number of them that would have to be installed replace popular plugins would eventually bog the browser as a whole down, and there's no guarantee that most of us would even use them all.

A better solution might be to simply have the firefox installer automatically include the 10 top favorite add-ons, but LEAVE them as add-ons, so that they can be removed for performance purposes, or upgraded on a more regular schedule (an add-on author can pump out updates a lot faster than firefox will push new release versions, after all).

As a sidenote, that "cmo" thing needs to be an extension, or at least an option with a checkbox next to it. Otherwise when .cmo or .nte domains come out, there'll be hell to pay.

Alex on March 19, 2008 12:31 PM

You bring up some good points that some of the most popular extensions should be baked right into the browser, but looking though my list of extensions (most which I couldn't live without) are specific to me and what I'm doing with the web.

The only extensions that I have that I see as being beneficial to the entire community as a whole is the Download Status Bar.

I personally love Mouse Gestures as well and feel everyone should install them (they are in the default install of Opera by the way), but I'm not sure people would love having that forced on them. The behavior might confuse some people causing frustration at the UI.

Ryan Smith on March 19, 2008 12:51 PM

Hm, I think, you are right in a certain way, but I disagree with your conclusion.

However, a warning, take my post with a grain of salt. I am a unix-user and I love to be able to make a program do exactly what I want.

I agree that it is annoying to be told 'install this extension', 'install that extension' and so on - and especially, usual users just wont do it. However, I disagree that you should fatten the core engine of the browser (or, the software) if you already have a good extension system. In fact, Id rather remove functionality from the core system and move it into extensions to get a slimmer core engine.

Why? Dont I disagree with you now?
Well, no.
I think you have to differ between the *core engine* and the (let me phrase it this way) *dumb user distribution* (less offensive: the non-power-users).

Imo, the core engine should be damn slim, because there exist powerusers that want to use the core engine the fastest possible way, with just the extensions they need (who needs a thing that tries to correct address if you just dont mistype?).

However, as you said, you should not force the less experienced users to do too much about installing extensions and such. Thus, you should track the extensions most users have installed (or, enough users have installed) in some way an just put all of these extensions in a single distribution for the lazy user.

That way, you are having a browser (or, a software, as this is pretty general) that can be used by powerusers in a very efficient way, however, lazy users will get a browser that is comfortable to use. The features of that browser will even expand pretty nice.
And this is pretty much what you want.
Lazy users? They just download the package with the popular extensions preinstalled. They wont care that much about a bit of bloat and maybe even some slowness, so thats ok.
The bit-more-experienced users? Well, they might grab the package with the popular extensions preinstalled, uninstall some, install some others and be happy.
And those freaky powerusers that need some engine to retrieve websites from a shell or want a slim speed demon? well, they grab the bare-bones version and install whatever they need and are happy as well.
OF course, you have to look out that a lazy users wont grab the bare-bones version by accident :)

At least, thats my opinion, tainted by MICAHI (Make it complex and hde it)

Greetings

Hk on March 19, 2008 12:53 PM

i totally disagree. 80% of the people use 20% of the browser. But other 20% than the others. So we have people which want adblock, but we do have people who don't care.

The best solution would be a minimal browser (xul/webrunner based) with a lot of extensions, and preconfigures profiles with the most important extensions (history, bookmarks, tabs)

allo on March 19, 2008 12:54 PM

Dude,

I think you should use Opera once in a while. Considering the geek that you are, I'm surprised you're not using Opera.

I can't breathe in front of a computer which doesn't have Opera installed! In the last gazillion years every machine I've sat on has to have Opera installed.

Give it a serious shot. It's a bit like vi. Once you get the hang of it, you wonder how you managed earlier.

- abhijit.

abhijit on March 19, 2008 12:56 PM

It's a tricky balance between adding unnecessary features and adding useful features. I think when Firefox considers whether or not to incorporate new functionality, they should forget the fact that an extension could be created. They should just ask themselves, "Is this feature helpful to many people? Should we make this a feature that we'll display on our home page?"

There will always be people that say too much has been added into a once lean browser (hardcore Firefox users) or that too many extensions are needed (Opera users). Firefox is doing fine. Since 1.5, they've added "Undo Close Tab", "Save and Restore session", and some tabbing options that was previously relegated to extensions. The devs have made many posts that discuss this dilemna of bloat vs features, so they're well aware of the issue.

Gabriel on March 19, 2008 1:03 PM

Extensions help to keep Firefox lean. Bloating it up with extensions as core features will only result in Firefox becoming fatter than it already is.

Extensions also epitomize what web 2.0 is all about: community. The community contributes to FireFox's success.

wookie on March 19, 2008 1:12 PM

1. Improved current field highlighting
Done on Mac.
2. Alternate font rendering
Done on Linux - it now follows system settings. (In Safari you can't change to Windows-like rendering.)
3. Cleaner downloads dialog
Done.
4. Faster HTML rendering
Done.
5. Simple, painless bug reporting
6. Visual incremental find
7. Detachable tabs
Done in post-b4 builds.
8. Draggable images
Done.
9. Resizable text areas

Bielawski on March 19, 2008 1:13 PM

I have to almost completely disagree with this whole article. Mostly based on the fact that FF2 and FF3 alike have both been releases that had a lot of addon functionality built into them. You seem to have ignored half the features that you listed that have been brought into FF3, and ignored the things Firefox can do that Safari doesn't.

Getting a list of the most popular addons is easy too. Just browse by popularity at AMO. You'll find most of them are obscure things for power users of particular sites (Google Mail Notifier for instance), or things you wouldn't want in the core for legal/money reasons (AdBlock or NoScript), or things that have been discussed and aren't within the scope of Mozilla's goals (IETab). Then you'll find others like the download statusbar that have been incorporated into FF3. Wait a second! That wasn't even on Safari's list of perks was it? No!

For every one of those cool ones though, there are a dozen that haven't made it in to the core yet. That's just development. Things take time. Good implementations require a lot of coding work and a lot of UI mockups and review. I'm sure resizable text fields and draggable tabs, etc will make it in the core. But they're not killer features, and given the choice of using limited development time to enhance the entire engine (something extensions can't really do), or take someone's simple extension and beef it up into something that's ready for every single one of their 100 million+ users to have, I'd rather have to go to AMO (or browse it through the integrated dialog now).

DigDu on March 19, 2008 1:20 PM

Features are bad. Features add bloat, clutter and bugs. Features steal your time and rot the mind.

Software is bad. Software is full of bugs. I'm tired of stuff that doesn't work, I'm tired of fixing stuff, and I'm tired of mastering features.

You can add extensions if you want, but extensions are not guaranteed to work with each other, or with future versions. Add a feature and register for MozillaZine. You're gonna need it.

If I want clutter, I'll got to Yahoo or something. If I want function, I'll go to Google. Likewise, do Windows' incredibly complicated menus and options really do anything for you, or is it just more junk to swear at?

Remember, less is more. Keep it simple.

VanillaMozilla on March 19, 2008 1:37 PM

I switched to Opera for 2 reasons: startup speed, speed dial address bar searching (g whatever to automatically search google for something, as well as y whatever for yahoo etc.). I found out that some of this functionality was available via add-ons for firefox but by then I had switched, and really, do I want the hassle of finding, downloading, installing and then forever updating the extension when the next ver of firefox comes out?

I'm not going to say "OMG I couldn't LIVE without MY browser!!!1" but I definately prefer it.

Now if you could turn off the built-in torrent downloader I'd never have to start up IE ever again.

Steve-O on March 19, 2008 1:39 PM

hmm... 3 reasons: apologies :)

Steve-O on March 19, 2008 1:39 PM

Steve-O

Type opera:config into the address bar :)

Then go into the settings for Bittorrent and unclick enable.

Phillip on March 19, 2008 2:05 PM

Ok, let's step back a little. We are discussing here the allocation of Firefox development resources. Let's assume (for the sake of argument) that we are past the trade-offs between bugfixing/improving existing functionality/adding new functionality and we have chosen to allocate a certain amount of resources to adding new functionality.

What I think the development strategy ought to be is this: take aboard:
- the most desirable extensions. Try to be smart in determing which ones by combining download stats, ratings AND stats from updates (to see which add-ons REMAIN installed).
- votes on bugs for improvements which really are new features.
- votes on bugs for fixes that have >1 solutions.

With these sources of wisdom, figure out what can be done in the core product to make fullfilling the desire possible by means of an addon. Do that. Then develop the Add-on. In case of the ambiguous solution to a particular bug: develop two add-ons. Or three.

That's right: Firefox developers writing add-ons.


I would like to see a similar principle applied to some add-ons themselves: once you get more than one core functionality (and associated option-and-a-half) split up the add-on.


Now, this would kill the already wobbly mess that is the add-ons repository by sheer overload and unsearchability. It would also violate a handful of Human Rights towards end users. I therefore propose the following set of countermeasures, that might even be useful without my rabid proposals above:

- Dedicate FF resources to upgrading the quality of Add-ons that appear to get the most usage. Trim them to be lean and resource-friendly. Test them rigourously on the FF test facilities.

- Automatically test combinations, rank conflicts by multiplying the usage factors of the conflicting parties. Fix the conflicts on the top of that list.

- Publish bug fixing efforts in this respect in some sort of tutorial form, so that the army of add-on developers have a rich resource to learn from other people's mistakes.

- Add functionality to the AddOns website like 'users who installed this add-on also liked these...'. (this may or may not be possible given the information that many users don't like to give out on grounds of principle)

- Add functionality to the AddOns to group them. Allow groups of groups. Let a thousand groups grow. A page for an AddOn should say something like 'This AddOn is included in these packs: WebMaster, MovingContentJunkie, (etc)' with the option to install those 'Packs' in one go.

- Invest resources in rating AddOns. Not just by the user community, but also metrics on download size, observed memory/CPU/startup time/etc footprint. Use similar resources for improving the descriptions, working towards making it possible to find the right ones. Describe typical usage scenarios, trade-offs, etc.

- Make an effort to find out why half the Add-Ons authors specifically avoid using the comment/feedback system of the site. Fix the issues. No excuses.


I think that if I got my wishes, we would get a FF that is even leaner than it is already, with many a design choice battled out in the 'marketplace' of AddOns.

Some final tangential comments on various previous posters:

- I reckon that people who complain about missing a feature know at least enough to know that it is missing and some 90 percent of that group can be expected to be able to find the missing piece in some AddOn. IMHO, people who aren't able to make a selection or an informed decision about whether or not to tick a box in a selection of Add-Ons that are deemed worthy of default inclusion are not going to appreciate the better browsing experience they might possibly be able to have.

- Any included Add-On chosen leaves many people on the other side of that choice. It is a myth that anyone can decide what's best for the varied multitude of users that FF has. That line of thinking didn't quite work for a well-known word processing app--and that should be a simple domain compared to the usage possibilities of a http client with a content rendering engine hooked up to it.

- On the question of included-in-core vs available-seperately, I would even go so far to say that the most promising example of customising your tool to fit your need is Prism. Forget about site-specific extensions; how about a whole browser geared to just one function?

(rabid ranting now over. relax.)

Schmolle on March 19, 2008 2:10 PM

It pays to be very careful about deciding how universally popular an extension is before rolling it into the product. Integration means having to add functionality to allow people opt-in/out of that feature and have it on their computer either way. It's all overhead in a system that is constantly trying to remain reasonably lean.

Certainly some features would be universally useful, or at least tolerable, but of the top extensions list you quoted, I have installed about one third, many of them because I'm a web developer. Others on that list are things I absolutely don't want, but other people will invariably want some of those in their set.

It makes sense to roll the truly universal features in (and this is happening, by all accounts). The rest of the challenge could simply be to make the other popular ones more obvious and easier to "activate". Then again, I posit that anyone not able to deal with the current add-ins paradigm would gain little benefit from its offerings anyway.

Roger Barnes on March 19, 2008 3:24 PM

Given how many firefox developers work for Google I doubt there will be an ad-blocking extension rolled into the core browser any time soon. I think Jeff's main point regarding analysis of popular extensions/plug-ins etc for any product remains valid. Another side to this is the "crushing the little guy". Microsoft makes a huge platform (called windows), any time they try to roll a popular add-in (3rd party application) into the platform various world governments are there rubbing their hands together and seeing dollar signs.

JosephCooney on March 19, 2008 3:39 PM

I have to admit, I can't seem to use anything other than firefox because of the extensions, but no matter how hard I try, I can't get my wife to use anything other than IE.
What's interesting is that this same issue goes the opposite direction in operating systems. Apple has the all-in-one package, while Microsoft has created the easily extensible OS with a healthy community of 3rd party applications.

Rock on March 19, 2008 3:43 PM

I'm going off the base (potentially ignorant) perspective here that "everything is baked in" essentially means "monolithic". Both are just ways of looking at the fact that "it does everything."

Given that Safari is an Apple product, I find it somewhat ironic that what many are praising about Safari (everything's baked in) is a large part of what (unix-based)OSX enthusiasts claim is wrong with Windows (monolithic).

Disclaimer: I'm not calling anyone a hypocrite, I'm not inviting a flame war, and I'm not claiming on OS rules over the other. I'm just saying that it's interesting how the views on "the better way to go" seem to change as you go up in scale from browser to OS.

Alex on March 19, 2008 4:26 PM

The complaints you cite have nothing to do with extensions and everything to do with the monolithic pace of development that a large browser like Firefox tends to follow.

Lee Aylward on March 19, 2008 4:45 PM

Uhh, I meant "glacial" not "monolithic".

Lee Aylward on March 19, 2008 4:46 PM

"Disclaimer: I'm not calling anyone a hypocrite, I'm not inviting a flame war, and I'm not claiming on OS rules over the other. I'm just saying that it's interesting how the views on "the better way to go" seem to change as you go up in scale from browser to OS."
The mistake you're making is assuming that the same people are making both arguments. Yes, there are some doing that, but they are the kind of bandwaggon jumpers who spotted Windows as an easy target in high-school, and are committed to that viewpoint.
But I think we're mostly dealing with non-intersecting 2 camps; the HOMO's (Honourable Order of Mac Operatives) and the URP's (Unixy Real Programmers).

Tom on March 19, 2008 4:49 PM

@Schmolle:
"IMHO, people who aren't able to make a selection or an informed decision about whether or not to tick a box in a selection of Add-Ons that are deemed worthy of default inclusion are not going to appreciate the better browsing experience they might possibly be able to have."
This would be one of the stupidest comments ever to be prefaced by IMHO, if not for the incredible nonsense generation abilities of webusers.
Just because you're nervous about downloading unknown quantities from the web or don't feel confident about making these decisions, doesn't mean that you won't appreciate a URL spellcheck.
In fact, the reverse applies. The kind of people who don't use the web much are exactly the kind of people who misspell URL's. I follow the "My Grandad" principle on this thing.

Tom on March 19, 2008 4:50 PM

FEATURE CREEP, FEATURE CREEP, FEATURE CREEP.

Different people want different features. I use over 30 extensions, and I feel I couldn't possibly do without a single one of them, yet I don't use even a third of the top 5/10/20/whatever extensions.

You'd demand folding in the top 5 extensions every release? You'd bash anybody else who did that. Firefox would quickly be as bloated as Microsoft Word. It would be picked on every time anyone wrote a blog about feature creep.

Firefox must either:
* require users install extensions to get all the features the want
* bloat like crazy

This is a trade off. You can't have it both ways.

James Justin Harrell on March 19, 2008 4:51 PM

@Bob:
"Your earlier post "Why does software spoil?" provides a good reason why some popular functionality shouldn't automatically be rolled into the browser. I agree with Antoine: it should be possible to download Firefox with package of useful addons already included - give it a name like "Firefox Plus" and users will tend towards it by default - and, for users who are more sure of what they want in their browser, provide a vanilla Firefox as well."
I'd agree, but with one reservation. I'd make the Add-On filled the default, and offer a specialist version: "Firefox Core".
After all, the whole point of this post is that the mass-market don't go hunting for non-defaults, even with names like "Plus", "Ultimate" and "SuperDeDoopery".

Tom on March 19, 2008 4:53 PM

"Firefox must either:
* require users install extensions to get all the features the want
* bloat like crazy"
We're talking about a small number of extensions that are commonly used, and which should be removable.
But if you go overkill on avoiding Feature Creep, soon you end up with a product that's missing several core features. Say so long to your audience.

Tom on March 19, 2008 4:57 PM

I'm not worried about bloat. My new machine is between 4-8 times more powerful than my old one, them being about 4 years apart. I can afford a few more features! The problem for me is that by the time I get the feature set I want, it seems Firefox is slower and buggier than it would be if the most popular features were baked in, leaving extensions for the truly esoteric functions. Have you tried to construct a piece of software with, say, ten designers who don't talk to each other?

In effect, my Firefox installation feels more "bloated" than Opera, while delivering a similar feature set. To be fair, Firefox in this case has a few features I use that Opera doesn't. That's why I use Firefox and why I'm still for extensions, just not for what many consider basic functionality.

I totally agree with Jeff that leaving features out means the vast majority of users or potential users will never benefit from them. And for them, SW will have stalled in the past.

I do think there's a third way though: Firefox Core and Firefox Plus (or whatever), but where the popular and palatable (ie. maybe not adblock) are integrated properly, not by packaging extensions.

Greg on March 19, 2008 4:59 PM

Let the Flame Wars begin...

*Star Wars Song*

Hoffmann on March 19, 2008 5:27 PM

I only read about 1/3 way through the comments, and got tired so here goes:

FF already does this. For example, in version 1.5 the "miniT" extension that allowed drag-and-drop tab reordering was integrated as a default feature.

The point is as everyone has said above: everyone's "must have" list is different enough that it's very rare that adding any extension in by default is a good idea for everyone.

Anthony Lieuallen on March 19, 2008 6:11 PM

Yeah! And why doesn't Starbucks just dump the top 10 coffee additives into everyone's coffee? "Experts" can just remove the stuff they don't like!

And why doesn't Safari also convert .cm to .com? Screw Camaroon! There are still some specific corner-cases that don't pander enough to monkey typists!

Brianary on March 19, 2008 7:10 PM

Two things:

One application where extensions (mods) is constantly integrated in the core app would be World of Warcraft. Several mods have over the years been deemed so good that they became integrated as blizzard mods.

Second, wtf is up with http://feeds.feedburner.com/codinghorror ? FILE_NOT_FOUND

C-J on March 20, 2008 1:10 AM

@Tom:
"Just because you're nervous about downloading unknown quantities from the web or don't feel confident about making these decisions, doesn't mean that you won't appreciate a URL spellcheck."

1. For clarity's sake: my comments are not about downloading potentially harmful mystery packets, they're about making choices beyond 'default'. Fear of the Big Bad Web and how to ease it for our grandparents is another discussion altogether.

2. My point is exactly that if one doesn't know about the availability of choice and/or isn't able to deal with making the choices involved, one is much more than likely not going to appreciate the improvements that would come from it.

"The kind of people who don't use the web much are exactly the kind of people who misspell URL's. I follow the "My Grandad" principle on this thing."

Your example of URL spellcheck is a good one in this case: it breaks a very important principle of messing with expectations. I like to think that software that corrects my typing mistakes makes me a worse typist, because I never get a trigger to correct myself. For our grandparents it causes them to have an even bigger divide between what they think they entered and what the obvious result is. Hence, they'll take even longer to scale the learning curve.

Wanna help out for this use case? Present a page with a message saying "Couldn't find that page. Possibly you have misspelled that. Did you mean X, Y or Z?" (with X, Y and Z clickable links, off course)."
(oh, and be nice and try to find out if you have connectivity before assuming user error)

Schmolle on March 20, 2008 1:43 AM

i think the really crazy thing is, they say: install this or that extension to get this or that features. But when your browser crashes, they will say: our core is great, blame the extensions!
Wtf?!

mart on March 20, 2008 1:55 AM

There is a parallel and a solution.

The online role-playing game Guildwars has hundreds of skills you can learn, but you can equip your character with only 8 of these at a time. To keep this manageable, the designers have given the users a way to save those combinations of 8 (called a build), load them, and communicate them via a short letter code (e.g. OgGkkyq06yWD5OoAghu/3xL7lAD) which can be copied and pasted everywhere (web pages, email, chat).

Now if there was a way to make "builds" for firefox extensions, combining several into a useful package, you could recommend to the less tech-savy users to open "Extra/Add Extension Package...", paste a code in there, and have everything installed automatically.

That said, there's probably an extension that does this...

mendel on March 20, 2008 4:13 AM

You can save tabs in firefox 2 by killing the process instead of closing the browser. No plugin needed.

Sam on March 20, 2008 4:31 AM

"but then would this not just bloat up the browser every release?"
It's all about how smart you are with it. The suggestion to "include the top 5 extensions" I think was a nieve one. But the idea of including more into the Firefox core I think is a good one. Again, you just have to be smart. How bloated does making textareas resizable make the app feel? I'd argue very little. Again with detatchable tabs.

Safari has lots of features but yet still, in my opinion, doesn't feel like it's bloated (unlike Opera) because the features are chosen carefully and integrated very cleanly.

Compare that to IE8 and you start to see features that aren't just "out of the way neat little additions" but whole new featuresets. That feels like bloat.

So the argument coming up here time and time again doesn't really make sense. "Adding AdBlock/NoScript/Whatever would be stupid!". Of course it would. But would making textreas resizable, tabs detatchable, download windows in some manner dockable etc. really be *that* stupid?

soru put it well when he listed the various different levels of features - there is debate about what are improvements and what are features, but I would argue improvements definately need to be in the core and a lot of things (e.g. resizable textreas) are improvements.

And if we need a vanilla browser who's only real features are extensibility, then spellcheck, session saving, phishing protection, searchbar, live bookmarks, popup blocker, incrimental find, even tabs should all be plugins. Yet they are what Firefox was sold on - this great feature set so much better than IE and then *also* this extensibility model. Yet the core featureset hardly grew and now I have to make an unstable browser just to get features like *proper* session saving, good download management, resizing textareas, good url fixing, detatchable tabs etc. that should really be in the browser core. Yes, some of them are coming to some degree and I welcome them, I wonder if you guys moaning here do?

Safari out of the box still feels clean, yet it has a great featureset that is available to those who wouldn't know about installing extensions. My mum would have a hard time discovering and browsing through extensions and thinking "That would really help me" but she can easily discover resizable textareas, an improved download manager or session saving and find it useful.

Sorry, a bit of a rambling, unorganised post there :S Now for the hot-pot of responses to random bits of posts :D

"Oddly, I would also classify many of ...Office2007's most confusing changes to be in the same category - driven by the wants of power tweakers (e.g. ...ribbon toolbar...)"
Actually the ribbon toolbar is driven by the desire to make Office more accessable to every user. There is no tweaking of the ribbon toolbar, no tearing off toolbars, no customisation beyond the quick access toolbar, much to the dislike of many power users. They bore the brunt of the wrath of the power user to focus on accessibility for the average user. The rest of your points still stand though.

"And you can't find it in your heart to spell an O and a P with an E next to an R right beside A?"
And he only mentioned IE in order to decry it's lack of extensions. Notice the lack of mention of the increasingly feature rich IE8 as well. Oh noes!

"you only get paid if somebody clicks."
Actually a portion (and I want to find the statistics for this) of advertising is pay per view. Also, even on pay-per-clicks a lot of advertising systems give metrics on views as well. If it's not getting views, they won't continue to advertise.

"Was the picture of the moon just a "Random Image Arbitrarily Inserted In Text""
It was a reference to extensions having "both dark and light sides."

[ICR] on March 20, 2008 4:32 AM

Oh, sorry for any spelling mistakes in the last post. I'm in IE as I'm at home where they don't really know about plugins so I don't have spellchecking. And some of the qoutes may be misqoutes because it's a pain to find things to verify without incrimental search. If only a browser came with those features built in...

[ICR] on March 20, 2008 4:33 AM

how about let the ff have one-click-to-add-top-N-extensions function?
i hate adding them one by one.

hatedance on March 20, 2008 6:56 AM

My only complaints about Firefox is that the way it does tabs sucks. I don't want to have to click on a menu item and then hunt for where it says "Add new tab". I also HATE how the close tab button is on the far right instead of just being right there on the tab like in IE.

Those are two ideas they ought to steal from IE.

Kaitain on March 20, 2008 7:39 AM


I think the best way to educate FF newbies about extensions is when FF installs and runs for the first time, a little info dialog box comes up about extensions which has a link to the extensions download area on the web. Then let the user take it from there.

If the more functions are pre installed in the core, the less reliable FF will be, I don't want them.

Abdu on March 20, 2008 9:35 AM

I'd simply add a step to the installation wizard, showing a list of the top ten extensions, short descriptions, and checkboxes, some of them checked by default. The installer would download selected extensions from the website, to keep the installer itself small.

Manu on March 20, 2008 10:14 AM

@Kaitain: upgrade to Firefox 2 (and try the 3beta); default behavior is having one close button on each tab. And Ctrl+T is your friend: it opens a new tab, no mouse needed.

Jorge Rosa on March 20, 2008 10:59 AM

@Kaitain: Ctrl+T

@Manu: That's a great idea; I hope you can start that development soon! ;)

It would also be nice if extensions were as easy to add as new programs in Ubuntu: a list of checkboxes.

Brianary on March 20, 2008 11:02 AM

I used Firefox since it was Phoenix (see URI, below). ADBlock and Greasemonkey were two extensions I found very useful. Much like Firefox made use of my RAM and, eventually, swap file as it swelled to obscene sizes.

Now, I use Opera. It has ad blocking and what they call "user.js" (their version of Greasemonkey, which is actually compatible with all the Greasemonkey scripts I use). It's faster and uses less RAM than Firefox does. The only time I run Firefox now is for those sites that, for some reason, don't work in Opera.

http://en.wikipedia.org/wiki/History_of_Mozilla_Firefox#Naming

Daniel Cormier on March 20, 2008 12:54 PM

Jeff, you just got quoted on Wired.com

Extend Firefox Contest Highlights the Catch-22 of Browser Add-ons
http://blog.wired.com/monkeybites/2008/03/extend-firefox.html

IanCaz on March 20, 2008 12:58 PM

I suppose Jeff really just put the point out there.

Firefox is only as strong as its own extensions, and without them it's not that special of a browser compared to the competition.

On the other hand, it's incredibly awesome/cool if you want it to be, thus it's a browser for people who want their browser to be great, and don't simply want a great browser.

It's kinda like a mac/PC argument in terms of "who wants to buy what and why"...

Viredae on March 20, 2008 7:00 PM

Decent data point: the fact that Firefox (and IE for that matter) think I want to load up a blank page every time I explicitly create a new tab makes me wonder who the developers are and how they actually use the web. At least IE has the ability to set new tabs to load your home page as a default option.

So I can set my new tabs to all load the google out of the box.

Firefox is a different story (and my vastly preferred browser). I have to use one of several extensions that allows me to manage this default (or discover and as-of-yet-undiscovered tweak). Which is fine for FF2 and the mainstream version. It's a one-time pain in the ass.

But for new releases and betas, the extensions lag release by some completely variable function, and it literally could be a couple months before I can fire up a new fresh tab that points to google.

There are many possible alternate solutions here, I just think it's one of those small burrs under the saddle that comes from the safety net of extensions.

Firefox doesn't feel like it has to get it's feature set exactly right. Extensions will plug the holes. Cuts both ways. Yes, this allows them to meet the disparate set of user expectations and preferences more broadly, no, it doesn't improve the core very much.

Pardon me while I now go find some to expire with an axe.


GrantC on March 22, 2008 6:21 AM

Heard about crapware for laptops -- if Firefox team start adding add-ons firefox is going to be one big bloated software. Some guys need crap for their laptop while others don't. In the same way some need the add-ons and some don't.
The Firefox team should make people aware of the add-ons rather than add them.

DigitalPackrat on March 22, 2008 8:46 AM

Opera is nice but with (1) no support for Roboform and (2) too many broken sites and no way to view them without firing up another browser, it's a non-starter for me. Which is too bad because I really like the mail client, more than any other I've used.

Rhywun on March 22, 2008 5:37 PM

I only use two extensions in Firefox. Adblock Plus and Slashdotter.

One could argue Adblock Plus should be included but that isn't very likely ;)

Slashdotter is specific to a single site so it belongs as an extension.

I also tweak a few settings in prefs.js such as
* browser.tabs.closeButtons - to remove the close button from every tab
* network.prefetch-next - to disable prefetching
* browser.tabs.loadDivertedInBackground - so that when I send a link to Firefox from another app Firefox does not steal focus
* browser.tabs.loadFolderAndReplace - so that when I (accidentally) middle click a folder on the bookmarks toolbar it doesn't nuke my currently open tabs!
* network.http.pipelining - to enable pipelining

Out of all of those the only setting I feel should change in the default install is the loadFolderAndReplace as it is annoying to kill all your current tabs with an accidental middle click!

To be honest I use Firefox over IE and Opera because I just prefer it. I don't really like how Opera functions and I just don't really like how IE works anymore. I have IE7 installed but only use it for Microsoft sites as they don't work correctly in Firefox. I also find that with lots of tabs open in a couple of windows (normally 40-60 tabs in two or three windows) that Firefox is much more responsive. Memory use is about the same give or take 10MB or so (which is nothing these days).

Morgan on March 24, 2008 5:20 AM

@Kaitain: By default a close button is on every tab in Firefox 2. I agree with you about the lack of New Tab button on a default install. I add this to the main toolbar next to the Home icon.

Personally I prefer this location as it is static whereas in IE7 it moves when you add new tabs.

I understand the design behind it however it is very annoying as when working with a mouse I tend to rely a lot on muscle memory and this is not possible when the button moves.

Morgan on March 24, 2008 5:31 AM

This is SO true, and also has to be taken into account when comparing benchmarks.

On paper Firefox is snappy and low on memory usage. But when it has my personal "minimum set of extensions" installed, the same browser is both sluggish and steals way more memory than the other browsers (which does have most of the functionality of these extensions builtin).

All browser comparisons seems to compare a vanilla Firefox to a vanilla Opera/Safari/IE, but this is a totally useless comparison...

Håvard Pedersen on March 25, 2008 8:41 AM

The reason that Firefox came to be was because Mozilla was too bloated. People didn't want the kitchen sink, they wanted an extensibe minimalist web browser.

Scott on March 26, 2008 10:53 AM

Just a couple ideas I think are good.

There should be a few different editions of Firefox. For instance:

- Basic Edition (Basic = Vanilla... or pick another name)
No extensions at all.

- Intermediate Edition (Intermediate = Normal = average user)
Adding a few extensions for intermediate users. That would be something like Safari’s functionalities, etc.

- Developers Advanced Edition, Bloggers Advanced Edition, Heavy Web Users Advanced Edition, SomethingElse Advanced Edition.

Firefox developers should design this editions (around 4 or 5) with a focus on different market segments needs. And the most marketed edition should be the Normal (Intermediate) Edition (i.e. the Mozilla’s home page should have a direct download link only to this edition and a link to an “Other Editions” web page).

AND -this is important- it should be VERY easy to change from one edition to another dynamically, with something like a menu item: Tools -> Change to another edition -> (List of the few editions).

This would lead us to the idea of alternative -unnoficial- editions (designed by the community), consisting of a set of extensions. (i.e. Wikipedia Edition, Slashdot UltraNerd Edition, Facebook Edition, Ultra Porn Surfer Edition, whatever). No official Firefox support for any of these. And I don't mean a set of extensions like in FEBE/CLEO extensions, which are only installable, I mean that there should exist a Firefox built-in functionality to change from one edition to the other 'automagically'.

Installing many extensions is very good for nerds, but not even close to easy for the big public.

Regio on March 27, 2008 2:01 PM

I heartily disagree that most 'really hugely popular extensions' should be rolled into the browser... but there are a few that have small ideas that are VERY good and should be integrated..

Personally, I think that the theme (theme, not extension) Noia Extreme has a UI element that should be rolled into the generic theme.

I'm not a huge fan of the actual theme's buttons/color/etc.. but ever since I have gotten used to this feature, I can't use any other theme for any kind of online research.

I set firefox to open tabs in the background if I middle click on a link.. and I tend to open a dozen or more at once, and then work through them at my leisure.

The nice thing Noia does, is that it keeps track of which tabs I have and haven't looked at yet:
http://pdeneka.net/araemo/screenshots/tabs.png

The two with their titles in blue and italics are the two I haven't looked at yet. That isn't so bad right now, but if I had enough 'coding horror' windows open to hide everything but 'coding horror', how would I keep track of which ones I have and haven't read without clicking through each one and actually reading part of it?

Araemo on March 28, 2008 1:49 PM

Araemo that's a great point-- I think a lot of product design *should* be lifted directly from popular extensions, for exactly the reasons you describe.

Jeff Atwood on March 28, 2008 5:30 PM

Interesting interview with Mozilla's Asa Dotzler on extension philosophy

http://blog.wired.com/monkeybites/2008/03/mozillas-asa-do.html

Jeff Atwood on April 3, 2008 3:38 PM

"If software developers were doing their jobs properly, an extension ecosystem wouldn't be necessary..."

What an ignorant and arrogant statement. News Flash: Extension Developers ARE developers.

Next you'll be telling Torvalds he should integrate a browser into the kernel.

Anonymous on June 1, 2009 11:39 AM






(no HTML)


Verification (needed to reduce spam):


Content (c) 2009 Jeff Atwood. Logo image used with permission of the author. (c) 1993 Steven C. McConnell. All Rights Reserved.