Firefox Going the Big and Bloated IE Way?
abhinav_pc writes "Wired is carrying an article pondering whether Firefox has become big and bloated, much like IE. As the browser's popularity has risen, the interest in cramming more features into the product has as well. Slowdowns and feature creep have some users asking for a return to the days of the 'slim and sexy' Firefox. 'Firefox's page-cache mechanism, for example, introduced in version 1.5, stores the last eight visited pages in the computer's memory. Caching pages in memory allows faster back browsing, but it can also leave a lot less memory for other applications to use. Less available RAM equals a less-responsive computer. Firefox addresses this issue somewhat, setting the default cache lower on computers with less than a gigabyte of RAM. Though the jury is still out on where the perfect balance between too many and too few features lies, one truth is apparent: The new web is pushing our browsers to the limit.'"
Disingenuous FUD aside, I can't for the life of me imagine how IE could be "bloated". It never had much functionality to begin with.
Kudos to Bashdot. Even the current Digg submission doesn't mention IE at all.
Caching pages in memory allows faster back browsing, but it can also leave a lot less memory for other applications to use.
The amount of RAM used for caching pages could be set by the user in the options. I think most Firefox users could handle that.
Libertarian Leaning Political Discussion Forum.
More than anything it's reminding me of Mozilla, now known as SeaMonkey. The reason I switched from Mozilla to Firefox was because I wanted a smaller, more nimble browser. I didn't want a RSS reader, e-mail, IRC, etc. packaged together. Firefox hasn't integrated all of those yet but it's moving towards it and I don't like it.
I guess it is the time now for people to look into Opera, which seems to be able to keep the balance. I think software should not be discriminated on the basis of not being FOSS.
Firefox has an awesome ability to add-on things very effectively. I don't understand why they don't keep fx slim with with all the proposed additional features as external (and hence optional) add-ons. Perhaps the not-so-computer-literate can use the bloated-up version of fx so they don't have to figure out how to use add-ons (I'm still amazed at how computer illiterate people can be), but leave a streamlined version for us techies to add-on options as we choose.
"A witty saying proves nothing." - Voltaire
Aside from that, the ongoing issue with Web 2.0 apps and javascript with multiple tabs using the same shared namespace and overwriting variable names still hasn't been highlighted by the security community and as AJAX and web based applications become more prominent, the end user will find more and more applications breaking other applications.
This is my sig. There are many like it but this one is mine.
If people want to bloat up their browser, I don't see how thats your problem. Now, when the browser comes bloated so that you can't slim it down without spending a good bit of time cutting chunks out of the code, it becomes a problem. If they took things like spellcheck out - slimming the base fx - and allow me to chose if I want it in or not, that'd be nice. But what do you care if I want to put a bigjillion plugins on?
"A witty saying proves nothing." - Voltaire
I don't think Firefox ever was such a lean or efficient browser. It's also buggy and the developers don't seem to care much about Linux or MacOS (bad profile support, inefficient graphics, etc.). Opera and Konqueror both seem better written and better designed.
I still use Firefox. Why? Because Firefox works well enough, it's up-to-date, compatible, and, most importantly, has tons of useful extensions.
I hope the Firefox developers will be able to clean up their act, but unless it gets a lot worse, I'm sticking with Firefox, because, on balance, it's still the best browser there is.
Firefox was only leaner than Mozilla back when it was called Phoenix and had only the bare minimum UI necessary to be a web browser.
Mozilla never was slow (at least not after it reached the point that it was good enough to consider using as your standard browser) and really wasn't a memory hog. That perception came about from the people who really didn't want an integrated email program, but absolutely refused to choose "Browser only" when the installer asked what they wanted.
Around the time of the name changed from Phoenix to Firebird, the two browsers were about on par. By the time the name changed to Firefox, it was already more bloated than Mozilla. The project goals moved more towards grabbing attention than being lean.
If Mozilla had just made a theme that blended in to the OS (Classic doesn't do a good enough job of it) and put a link on the download page to an installer that only had the browser included, there never would have been a need for Firefox.
Actually, perhaps it's time to totally rethink the internet. Browsers today are bloated partly because websites are bloated.
The majority of websites could do with a simple and less cluttered layout like google's website for instance. Compare it to yahoo and you'll see that yahoo has a bunch of "advanced features" like inpage tabs and whatnot. Lots of this extra junk you'll find around the web is javascript that chooses CSS based on browser and that displays advertisements. Lots of it is just poor use of HTML often from WYSISYG programs. More features in language means more junk on website. More junk on website means more junk in browser.
"What lies behind us, and what lies before us are tiny matters compared to what lies within us." Ralph Waldo Emerson
To paraphrase an often heard comments about EMACS way back when, "EMACS isn't an editor, it's a lifestyle". Hopefully Firefox isn't headed down the same path.
There are many, many things you can criticize IE for... but being bloated doesn't really seem like one of them. If you RTFA, they compare the growing bloat not with IE, but with Mozilla.
True, 3rd party add-ons for IE can bring it to a crawl, but that's not IE's fault. The same problem exists in any browser that supports extensibility via a plugin model.
I use Firefox on XP because it's safer than IE, certainly not because it's less bloated. Firefox consistently uses far more ram (I have several screen shots of Firefox using 1.5GB+ of ram with *no* plugins enabled and just one tab open), dies a painful death due to poor integration with things like Flash (100% CPU Flash advertisements, anyone?), or simply just crashes.
On Vista I use IE 7 w/Protected Mode. Why? Well, again, because it's safer. But it also has the benefit of returning me to the days when a browser didn't use 2x the RAM of Photoshop. Imagine that.
All over the web today there are stories about FireFox's (supposed) bloat, but no actual facts on whether it is or is not actually "bloated." Since "bloat," to most people, apparently means the state of a program having more features than is necessary, it's hard to see how the average user would ever be able to definitively answer this question. The question is probably better phrased as "Are you having major performance problems with FireFox 2.0?"
I don't know how the file size (the other definition of "bloat"), of a FireFox installation compares with other browsers but it doesn't seem like an overly large file to download. It also seems to me that when I check my FireFox preferences it actually has a very basic, simple feature set similar to what's available in almost every other browser. If the feature set is roughly the same as other browsers, how can it be rightly called "bloated?"
I think the problem with FireFox is one of performance, not "bloat" per se. I run FireFox on a Mac with only a single extension and a single theme. My computer is relatively new, the OS is up to date, it has a Gig and a half of RAM and a fast video card. On this machine FireFox is as slow as molasses. It takes ages to start and ages to load a page. It also crashes (a lot!).
I use FireFox because of AdBlocker and because as bad as it is, it's still the best there is on the Mac right now. This will likely change in October when the new Safari comes out so this summer's FireFox 3.0 release will have to be extremely, extremely good just to keep the same market share IMO.
Why can't the OS, when it sees that it is running out of memory, send a signal/message/henchman to applications and tell them that if they have the ability to give up some memory (i.e., caches, etc), then do so, to keep the system happy. There could be several levels of urgency in the request as well, like "yeah, dude, just thinking here, yeah, could you ease up a little on the memory, cheers!" through to "Sieg Heil! Deine Memory, SCHNELL!!".
Comment removed based on user account deletion
As someone who lives out in the sticks, and pays $100/month for a 1.5MBit 802.11 connection, I say no. Keep the web as plain old HTML. Limit flash (And other plugins) to things like embedded video, NOT AS THE ACTUAL WEBPAGE.
There's still a lot of people out there who are limited to dialup, satellite, or some other jerry-rigged internet connection.
256MB ? Holy crap! I don't understand why people think we need at least 512MB to run anything decently! In 2001 i was running on 64MB and i can remember i could run a web browser (granted it was IE, but nevertheless!) Winamp and some other stuff. And people _expected_ it to run smoothly with only 64MB ! I know it 6 years from that time, Moores law and such, but i still wonder - why this insane amount of hardware requirements? Notice that Opera for Symbian must run with 8MB of RAM and it has to share. And there's no virtual ram, so swapping is not an option. This of course doesn't count Flash. Right now both of my boxes have 1GB of Ram, and i don't plan on upgrading that number anytime soon - I don't play games (consoles are for that, and my Gamecube has about 48MB combined too!), i don't run VMs and i don't even have a swap partition - it never got touched anyway.
It seems that there is a magical responsiveness threshold which humans tolerate, and as the processing power and memory sizes grow, the applications follow along, staying just below that threshold. Usually the reasons are increasing amounts of shared libraries and scripting languages, which allow us to build more application per unit programmer time. We get more features and modern applications, at the expense of a sluggish environment.
This performance penalty is perhaps hard to notice. The easiest way to experience it is to run some old applications; they absolutely scream on modern hardware, to the point that the instant response becomes almost worth the loss of extra features. This is probably why things like xfce prosper.
Tsunami -- You can't bring a good wave down!
Is there not some way that operating systems can manage caches for applications in a way that certain datasets can be marked as opportunisitic caching. That is, make it as keep a copy of this in any free space, but you can discard it if real memory is needed.
Some drink at the fountain of knowledge. Others just gargle.
Go look at the source code to Gecko, the rendering engine behind Firefox, Seamonkey, Thunderbird and other projects. In short, it's a mess.
Part of the problem is the foolish complexity of it. Their whole XPCOM idea sounds nice in theory. But then you actually go to implement it in C++, and it becomes a pile of crap. Soon enough, difficult tasks start to become hard, the damn near impossible tasks can't be done, and nobody really has a good idea of what large portions of the codebase actually does. That's not the way to create an efficient rendering engine. You'll end up with memory leaks galore, and excessive CPU consumption, just as we've witnessed with Firefox.
Although it's unlikely to happen now, the best thing for them to have done would have been to throw out most of the code released by Netscape, rather than rewriting a lot of it (at the same low-quality level) in the following years. Then they could have re-implemented it using a natively-compiled implementation of Standard ML. One benefit of this would have been an elimination of the memory leaks that we hear to much about today, due to the garbage collection of SML. Additionally, functional languages are well-suited to parsing (ie. of HTML, XHTML, etc.) and language implementation (ie. JavaScript), more so than C++.
As to the parent post, let's see now:
RSS Support:
I could easily see removing RSS support. Firefox's implementation is nothing an extension couldn't do, and do much better. It's a joke for handling more than a handful of feeds, and stifles development of third-party extensions. Gee, and we used to complain about competing against built-in programs...
Security:
Can you honestly say a browser should be shipped without these, or even an option to not install them? Especially for the popup blocker - are you insane, or have you simply forgotten what the popup-infested web was like? Phishing protection is unobtrusive and useful, as is auto-update.
Miscellaneous:
Integrated search was one of the highlights of Mozilla ages ago, and is now a standard feature in every single browser. Firefox/Mozilla did a particularly good job by adopting an existing open format (from Apple's Sherlock) rather than reinventing the wheel. Search suggestions are the latest evolution of that (primarily thanks to Google Suggestions, if I'm not mistaken). Spell check is marginal - many operating systems offer their own - but I don't see how a third-party extension could improve upon it. Accessibility is just critical for those who need it. Session Restore I'm torn on, as many extensions handled it, but not necessarily well. I see that as the Firefox team deciding to take all of the lessons learned from the third parties, and do it right (much like Apple did with iTunes 1.0).
Bloat is only a problem if it hinders program development, maintenance, execution, or usability. The examples given here don't generally meet those criteria. Most of the features here are simple, self-contained, unobtrusive, and likely have low code and memory footprints.
Why does slimming Firefox down necessarily mean removing features? Opera can do pretty much all of the things you quotes and much, much more besides (email client, bittorrent client, customizable to the extent that would need about 15 different FF extensions to emulate, etc.) -- and it still manages to be slimmer than Firefox -- a smaller download (4.7 vs 5.7MB), faster to start, more responsive, a smaller memory footprint, etc.
What's purple and commutes? An Abelian grape.
In a moment I'll talk about my views on rewriting large code bases, but first I'll say that I'm glad I wasn't the only one who was with the GP poster up until the SML advocacy, and then disagreed. Even given the neat way that functional languages tend to model parsing problems, web browsers do a lot more than parse HTML and CSS files. In fact, I'd go as far as to say that this is the easiest problem they solve. Systematically resolving the layout rules in arbitrarily complex cases is a somewhat difficult problem, given the way those rules are expressed in CSS. And of course, web pages are no longer the static things they used to be: today's browsers need to cope with scripts moving the goalposts arbitrarily, maintaining the integrity of the display as much as possible during lengthy downloads of large pages or after AJAXified updates, etc. etc. It's far from clear that a language like SML offers better support for these naturally concurrent operations than the many alternatives.
I do disagree with the parent post on one fundamental point, though:
I'll see your reuse dogma, and raise you my "plan to throw one away" dogma. :-)
Actually, I don't cite this as some sort of dogmatic adherence to ConceptsTryingToSoundMoreCleverThanTheyAre at all. Rather, I happen to agree with the principle based on practical experience. In general, software design is difficult, and few people are good at it. Even those who are rarely have the good fortune to know exactly what their design will be called upon to do a few years later, and will inevitably allow more flexibility (and commensurate overhead) in some places than is really needed, while making some things unnecessarily strict and thus making later changes more difficult than they might have been.
It's been my experience that in long-term projects, far too many managers aren't willing to throw out a whole module, subsystem, or even product, because of popular wisdom that anything they replace it with will just have bugs of its own. I believe this is a mistake because, again speaking only from my own experience, a high proportion of bugs originate in special or boundary cases. According to my reasoning above, a new project built from scratch with no prior experience will rarely get an overall design that automatically avoids these completely. Discipline is rarely good enough on software projects to allow for this and ensure that new requirements are integrated into a clean overall design rather than bolted on; indeed, in a commercial environment, this may not be realistic given short term deadlines and the typical management and marketing pressures. However, over time, such bolted-on special cases will tend to build up. They start to interact, they don't always get properly documented, and new people on the project team either don't know about them or at best don't know all the original reasoning behind them, making safe maintenance difficult.
Sometimes, this problem is manageable, particularly if your project leadership consistently take a long-term view and give maintenance and testing the priority they deserve. But usually, IME, the problem reaches a certain critical mass where the costs of ongoing development of a code base full of dubiously documented special cases outweigh the costs of stopping to clean things up.
As an additional, very practical concern, tools and programming techniques are always developing. Over the sort of timescales we're talking about here, it's entirely possible that more effective tools will have been created, or more effective techniques discovered, that could solve the underlying problem much more effectively in a different way.
Thus, s
If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.