March 18, 2008
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:
- Improved current field highlighting
- Alternate font rendering
- Cleaner downloads dialog
- Faster HTML rendering
- Simple, painless bug reporting
- Visual incremental find
- Detachable tabs
- Draggable images
- 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.
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:
All-In-One Sidebar 0.6.1
Always Remember Password 0.6
CuteMenus - Crystal SVG 1.9.2
Furl Tools 0.8
GMail Notifier 0.6.3.2
Image Zoom 0.2.6
Japanese English Dictionary for rikaichan 1.05
No Squint 1.0.1
PDF Download 1.0.10|
Places' Full Titles 3rc3
Redirect Remover 2.5.3
Remove It permanently 18.104.22.168
Secure Login 0.9.0.6
Session Manager 0.6.1.9
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
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.
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.
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
4. Faster HTML rendering
5. Simple, painless bug reporting
6. Visual incremental find
7. Detachable tabs
Done in post-b4 builds.
8. Draggable images
9. Resizable text areas
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).
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.
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.
hmm... 3 reasons: apologies :)
Type opera:config into the address bar :)
Then go into the settings for Bittorrent and unclick enable.
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.)
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.
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.
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?
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.
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.
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.
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.
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...
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).
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.
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
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).
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.
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.
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.
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.
This is a thing that I have been trying to tell for a long time now.
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.
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.
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.
"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.
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.
@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.
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.
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.
Uhh, I meant "glacial" not "monolithic".
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.
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.
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:
"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).
"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.
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.
"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".
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.
"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.
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.
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.
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 :)
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?
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.
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.
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.
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.
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 ...
Let the Flame Wars begin...
*Star Wars Song*
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.
Jeff, great post. I think several commenters here completely miss your point, though.
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.
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.
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.
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.
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.
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."
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.
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.
"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.
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.
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.
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.
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.
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.
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.
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.
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.
FireBug. I could remove every other extension in FireFox and be fine. But I must have FireBug.
I agree with the previous comment about a special Firefox Plus version. A special developer's version of Firefox would also be helpful.
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!
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.
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.
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.
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!
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 RD platform for the web.
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.
Pretty straightforward. There are 4 different types of software changes:
1. bug fixes
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.
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.
If people would just use Opera they wouldn't need any extensions.
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.
+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).
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!
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.
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!
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!)
How about Firefox Distros? Would that be too crazy?
Like "Firefox for Web Developers" (Firebug, WebDeveloper, CSSViewer, HTML Validator, etc.)
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"
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.
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.