How Maintainable Is the Firefox Codebase?
An anonymous reader writes "A report released this morning looks at the maintainability level of the Firefox codebase through five measures of architectural complexity. It finds that 11% of files in Firefox are highly interconnected, a value that went up significantly following version 3.0 and that making a change to a randomly selected file can, on average, directly impact eight files and indirectly impact over 1,400 files. All the data is made available and the report comes with an interactive Web-based exploratory tool."
The complexity exploration tool is pretty neat.
>> A number of modules, namely, accessible, browser and security, frequently appear among the most complex modules. Further investigation may be helpful in identifying why that is the case.
Does this guy know what Firefox is?
It finds that 11% of files in Firefox are highly interconnected
Figures like this would be more useful if they were put in context. What is a "normal" level for connectedness? What is the level for the Linux kernel, or for GCC? Compared to other similar sized projects, is 11% good or bad?
MSE says this bugger is present on the site: http://www.microsoft.com/security/portal/threat/encyclopedia/entry.aspx?name=Trojan%3AJS%2FIframeRef.K&threatid=2147679863
You know that you don't have to load things in tabs if you don't want to, right? And I highly doubt that you're going to have any meaningful performance improvements by loading up different windows. Plugins are there for every browser and the worst offenders tend to be things like Flash which aren't always easily avoided. Extentions themselves aren't usually a problem if you don't install badly behaving ones. And many of them do actually help out with performance, noscript anybody?
and tomorrow we'll count the lines of code and spew more meh
Considering that MSE takes even longer than Clam to identify new ANYTHINGS, I'm not sure how much stock I put in that report.
THL phish sticks
I am wondering how this stacks up to a project like WebKit/Blink, as well as seeing that project against the original KHTML. Sure it is a renderer/HTML layout/JavaScript engine only, and won't contain the browser chrome like Firefox, but I think it would be interesting to look at.
Many people have also suggested that WebKit is easier to embed into various different environments (more so than Gecko) and that it has been able to evolve faster mainly due to the code base being cleaner, and I wonder if this holds true when looking at it from a complexity standpoint, or is it more complex but simply laid out better and in a way that is easier to understand?
cat
Except that Flash is easily avoided ... if you don't want Flash, don't install it, and don't use sites which require it.
You might decide that there's stuff you can't live without, and I definitely agree that in company environments it can be damned near impossible as it seems there's usually one or two things you need which requires it.
But if you decide you don't want it and won't use it, it's actually not difficult at all to avoid. I've been doing it for over a decade, and it hasn't been on any of my own machines. My work machines, I've never been able to avoid having it, but only in IE which is the browser of last resort for those company things you have to visit a few times each year (like the ethics training courses we all know and love).
You just have to decide that not having it is worth more than the sites which need it, and there hasn't been a single site which made we think "OK, for this I'll install Flash".
Lost at C:>. Found at C.
OK let's start with:
noscript anybody?
I loaded it. And every single website I use - like my library, credit union, broker, SLASHDOT, Amazon, etc ... will not work correctly without their scripts running. I can't even login without having to "Allow all scripts''
Why "Allow all..." because, every goddamn website calls a myriad of different other websites for god knows what the fuck they're doing.
I TRIED to selectively whitelist websites and all I got was half functional shit- and not being able to access my account many times.
I mean really Web "Engineers" - WTF?!?!
It seems that every one of you point call asshole like google analytics and other advertizing shitholes.
And this social media shit. I mean really, do you have to have those stupid fucking buttons for Facebook, Google+, and every other narcissistic fucking web site out there?!?
Hey kids! Wanna get rich quick!?
Start your own business that caters to societies insatiable need for narcissism: See Apple, Harley Davidson, every luxury car or product maker out there, Facebook, Google+, every goddamn reality show, people registered on Slashdot, the real loosers who are registers under their Google+ or Facebook accounts, ....
Appeal to people's vanity and get rich.
At least the Christian myth about Satan is correct: people are suckers for the 7 deadly sins.That's how to get rich! Follow Satan!
See every TV preacher that has ever existed
According to recent comments (continued on the next day's thread), the win32 compiler that Mozilla use is approaching the 4GB limit, after which LibXUL (which Firefox depends upon) will no longer compile.
It's currently at 3.5GB, and at the current rate, will reach the limit in approximately 6 months: Chart of memory usage of LibXUL during last 90 days
While I think that Servo will produce a more decentralised design than Gecko and XUL, the memory limit will be reached well before that. With Windows XP support ending next year, Mozilla should consider migrating to x64 as soon as reasonably possible, keeping x32, but focusing on stripping large and extraneous code above new features.
Really? The version number thing again? Hasn't that been played out yet? Incidentally, 3.0 is not even close to when they moved to a rapid release cycle.
... that have no meaning at all.
Impacting 8 files on average would be horrible... for a project with 8 files. But how many is that relative to the size of Firefox?
11% of files in Firefox are highly interconnected... but how does that compare to other projects of similar scope?
The one value in that summary that had any meaning at all was the comment that the percentage of interconnected files "went up significantly following version 3.0". That at least has some relative measure we can use as a base.
You missed the obvious FireFork.
"Crazy" seems to be working just fine.
I want this account deleted.
Version 3, version 4 - what's the difference? So he was off by 20 minutes. Big deal.
It's a real problem. The Firefox dev team gave up on running add-ons in a separate process (the "electrolysis" project) because the code base was too single-thread oriented. Remember, some of the code dates back to Netscape. There's talk of reviving that project now, but it's mostly talk and meetings.)
Refitting concurrency tends to be very hard and the result tends to be ugly. You get something like Windows 3.x or MacOS 6/7, where easy things are complicated for the wrong reasons.
Bullshit. If it were irrelevant you wouldn't have clicked on every last FF article to profess its irrelevance. The truth is that it's so relevant that you feel threatened enough by it to leave your mark everywhere.
P.S. You forgot to tick "Anonymous Coward"
Oh please, even on a super computer the Firefox UI is as slow as Molasses. I can say that since I use Firefox everyday as my main browser. Why should I stick up for something that I know has issues. He wasn't even talking about RAM, he was speaking of lightness, like Midori for instance; Firefox use to be lean and mean like Midori.
I haven't personally looked into it, but I'd be highly interested in a Fork that brings it back to what it use to be. I can't find any information, but for Linux, as of last year the 3x branch of Firefox was still being updated; but don't quote me on that.
There are lots of measures of a code's "maintainability", with interconnectedness being just one of them.
More to the point, that's what code tests are for: to make sure changing one thing doesn't break another. Talking about the "health" of the code base without knowing about test coverage or effectiveness is pretty damned meaningless, regardless of "interconnectedness". My view is that Ali Almossawi's paper is therefore a waste of dead trees.
Oh the history - the netscape codebase being so complex a complete re-write was necessary...
The main complaint about Firefox, right from the start, has been memory leaks. You are rewriting history, Firefox was never lean and mean.
If anything Firefox is like Emacs in that the median power of computers is increasing faster than the resource consumption.
Finally! A year of moderation! Ready for 2019?
GG Firefox! http://caniuse.com/mathml
Of course you need Flash. Even YouTube is not able to offer all videos in HTML5 format.
Use the Extended Support Release of Firefox.
The conclusions of the research are very positive and shed a very good light on the health of the code. Why is everyone commenting like the conclusions are the opposite?
Who cares about random cat videos? I watch maybe 5 YouTube videos a year.
There is really good stuff in YouTube these days. Not just cat videos or dogs on skateboards.
How about bigthink or EEVblog, for example?
Webkit may be better documented. I tried to find documentation on Gecko and it was very limited, I gave up on it.
Firefox isnt meant to be a super lightweight browser but one that can render anything. A lightweight browser would be an unuseable browser for normal people. If you want a lightweight browser try Dillo. The UI code and the rendering code probably consumes very little at runtime compared to all of the image data that is being stored in memory, anyway.
Well if the fate of Camino with Gecko is anything to go by: not very.
"Nine times out of ten, starting a fire is not the best way to solve the problem." - my wife
I ended up switching to Opera after retrying it a few months ago-- it has a whole slew of formerly Firefox-only extensions now (like AdBlock Plus, Stylish, Greasemonkey, LastPass, etc.), I haven't run across any site incompatibilities yet, and it's a hell of a lot faster than Firefox was running for me.
Now mostly at Usenet:comp.misc & SoylentNews.org (it's made of people!)
First sentence on Wikipedia:
In mathematics, a directed graph or digraph is a graph...
http://en.wikipedia.org/wiki/Directed_graph
Interesting link, thanks!
Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
Ok. I understand then.