Slashdot Mirror


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.

127 comments

  1. Does this guy know what Firefox is? by xxxJonBoyxxx · · Score: 4, Funny

    >> 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?

    1. Re:Does this guy know what Firefox is? by CrimsonKnight13 · · Score: 2

      Maybe he's referring to the Mozilla codebase as a whole rather than just Firefox in itself?

      --
      Libera te ex Inferis!
    2. Re:Does this guy know what Firefox is? by Anonymous Coward · · Score: 2, Funny

      A virtual machine running an operating system that by accident happens to have a (rather mediocre) browser? Just like Chrome?

      All that was missing was the relabeling. I guess that's done with "FirefoxOS" and "ChromeOS". ;)

      Now all we need, is to port Linux to it. ... Oh wait!

    3. Re:Does this guy know what Firefox is? by Anonymous Coward · · Score: 0

      Well, judge for yourself.

      Looks like a pretty intense geek, to me. Note where he currently works.

    4. Re:Does this guy know what Firefox is? by game+kid · · Score: 2

      What is a Firefox? A miserable little pile of sources.

      But enough code... Have at you!

      --
      You can hold down the "B" button for continuous firing.
    5. Re:Does this guy know what Firefox is? by Anonymous Coward · · Score: 0

      I see, so he doesn't know.

    6. Re:Does this guy know what Firefox is? by UltraZelda64 · · Score: 2

      What is a Firefox? A miserable little pile of sources.

      Really? I was under the impression that, traditionally, a Firefox was a miserable little pile of memory leaks. Although these days, that doesn't quite seem to be the case as much as it used to be.

    7. Re:Does this guy know what Firefox is? by Anonymous Coward · · Score: 0

      *wooosh*

    8. Re:Does this guy know what Firefox is? by UltraZelda64 · · Score: 1

      I got the joke. I was joking back, but apparently that wasn't caught by your detector.

      I was contemplating whether I should have added that second line or not. Do, and people will think I'm serious and not realize I'm just joking as well; Don't, and people will get offensive thinking I'm trolling and just slamming Firefox for the hell of it. But for stability these days, I figured credit is due, because I've slammed Mozilla/Firefox enough in the past.

    9. Re:Does this guy know what Firefox is? by Maxoverdrive · · Score: 1

      Too bad that doesn't work

  2. So? by ShanghaiBill · · Score: 5, Insightful

    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?

    1. Re:So? by hedwards · · Score: 4, Insightful

      Normal probably isn't so useful here, but it would give some context. 11% of files being highly interconnected could be a sign of incompetence on the part of the developers, or it could be a sign that they're engaged in sound design by splitting off commonly used methods into their own files and treating them as libraries.

      I'd suspect that the latter is the case here.

    2. Re:So? by Joce640k · · Score: 2

      It finds that 11% of files in Firefox are highly interconnected

      It means 89% aren't...which sounds much nicer.

      --
      No sig today...
    3. Re:So? by steelfood · · Score: 3, Informative

      It's crucial to know the distribution of that 11%. If they were all located in one area, it might be as you say, But if the 11% was comprised of a few files in each major module, then that'd be bad.

      You want the bulk of your program doing the actual work to look like a tree. You don't want the bulk of your program to look like a mesh (graph). This is especially true of your core components.

      --
      "If a nation expects to be ignorant and free in a state of civilization, it expects what never was and never will be."
    4. Re:So? by Anonymous Coward · · Score: 3, Insightful

      Not only that. The number is entirely meaningless, if we don't know *how* they are interconnected.

      If they are interconnected through a well-defined and stable interface, they can be connected as much as they want... it doesn't matter!

      What counts is the *modularity*! How much can you treat everything as independent modules? How much can you change the *implementation* without causing trouble.

      Because if they are cleanly separated that way, they are no different from being completely separate projects or programs.

      It's when things become "frameworks" that all the alarm bells go off.

    5. Re:So? by ArsonSmith · · Score: 2

      So, Nearly 90% of the Firefox code is of high quality and very maintainable.

      --
      Paying taxes to buy civilization is like paying a hooker to buy love.
    6. Re:So? by Anonymous Coward · · Score: 0

      ...you do know that a tree is an acyclic graph, right?

      fun graph theory fact: prove that in any tree with N nodes, there are exactly N-1 edges.

      that's why, as you say, it would be nice to have a tree structure.

    7. Re:So? by Anonymous Coward · · Score: 0

      It's really a branch-leaf problem. Good design has many leaves (i.e. terminal points of code -- consider all of the
      functions str* are leaves, for example) and a few branches with their trunk. Usually everything should point in a single
      direction, that is to say str* functions can called from *anywhere*, but they better not be calling fprintf or fopen, etc.
      An extreme example, but to the point.

      C++ code's design can appear to be much more interconnected than it actually is and too, can be much more
      interconnected than it actually needs to be because of its model and tendency to over-complicate things in the
      name of "good" OO design.

      In the rush and bustle of corporate life, good design most times falls by the wayside and it's difficult to justify
      the re-factoring of "working" code.

    8. Re:So? by sootman · · Score: 1

      Good, obviously. It goes to 11!

      --
      Dear Slashdot: next time you want to mess with the site, add a rich-text editor for comments.
  3. Fork by Anonymous Coward · · Score: 0

    Well, to deal with this is to fork Firefox, and start with a real simple browser - no tabs, plugins, add-ons, etc.... - and call Firechick, or Firepup, or SparkFox, or SparkPup, or AweFuckit!We'reStartingOverFox

    1. Re:Fork by Anonymous Coward · · Score: 0

      Why?

    2. Re:Fork by hedwards · · Score: 4, Insightful

      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?

    3. Re:Fork by gstoddart · · Score: 1

      Plugins are there for every browser and the worst offenders tend to be things like Flash which aren't always easily avoided

      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.
    4. Re:Fork by Garridan · · Score: 1

      You missed the obvious FireFork.

    5. Re:Fork by jones_supa · · Score: 1

      Of course you need Flash. Even YouTube is not able to offer all videos in HTML5 format.

    6. Re:Fork by dutchwhizzman · · Score: 0

      So it will fit on a dongle?

      --
      I was promised a flying car. Where is my flying car?
    7. Re:Fork by gstoddart · · Score: 0

      Of course you need Flash. Even YouTube is not able to offer all videos in HTML5 format.

      Who cares about random cat videos? I watch maybe 5 YouTube videos a year.

      --
      Lost at C:>. Found at C.
    8. Re:Fork by Anonymous Coward · · Score: 0

      There is a lot of good content on YouTube. But besides the point, I watch almost all my TV shows over the internet, since I don't have a TV or cable. Hulu can be used without flash, but there aren't any non-flash based sites with illegal TV streams on them. Not every show makes it to Hulu. No flash means you'd have to torrent those shows. That is riskier, often slower, and uses more bandwidth, but you do get them in higher quality.

      Plus, sometimes you run into websites entirely made in Flash. I wanted to look up the menu of a Japanese restaurant. It was all in Flash.

    9. Re:Fork by jones_supa · · Score: 1

      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?

    10. Re:Fork by gstoddart · · Score: 0

      Not sure why the default response to "I don't give a shit about YouTube" is always to give me links to YouTube.

      It's like saying I don't eat meat and you suggesting chicken.

      You think I'm going to install Flash so I can find out the wonder of the two links you provided? Thanks, but no -- I genuinely don't care about internet videos, and I genuinely despise Flash.

      --
      Lost at C:>. Found at C.
    11. Re:Fork by jones_supa · · Score: 1

      Ok. I understand then.

    12. Re:Fork by Anonymous Coward · · Score: 0

      Make that plural and we have a deal. Everyone saying it will sound like they just have an awful accent!

    13. Re:Fork by Anonymous Coward · · Score: 0

      morons.. morons everywhere. that guy is self defeating.

  4. Re:Trojan warning by Anonymous Coward · · Score: 0

    Is there actually a trojan on the site?

  5. Got a trojan warning by dasapfe · · Score: 5, Informative
    1. Re:Got a trojan warning by Anonymous Coward · · Score: 0

      Absolutely! I had an alert about a file which Microsoft Defender does not recognize. Deobfuscated it and saw a typical Malware Exploit Kit. Had to recheck browsing history to find that it occurs on the second link of this article. To check, just turn on the network profiler or like and see that an iFrame link tries to reach 67.213.213.23. At the moment it results in 502.

  6. Law of demeter by Anonymous Coward · · Score: 0

    Aint actually a law its more like guidelines...

    Looking at dependancies from the perspective of file level seems like a mostly arbitrary and useless means of demarcation to me.

  7. Re:Trojan warning by Anonymous Coward · · Score: 0

    If your Mom goes there, I sure hope so!

  8. counting files today by Aighearach · · Score: 2

    and tomorrow we'll count the lines of code and spew more meh

    1. Re:counting files today by Anonymous Coward · · Score: 0

      Yeah, can't wait for the 2nd part. I bet in the end it turns out, that those 11 interconnected files belong to a single application!

  9. Not to worry by Anonymous Coward · · Score: 0

    It's OK, we can fix it by hacking together a bunch of Perl scripts!

  10. Re:Trojan warning by gandhi_2 · · Score: 1

    Considering that MSE takes even longer than Clam to identify new ANYTHINGS, I'm not sure how much stock I put in that report.

  11. "Went up significantly following version 3.0" by Spy+Handler · · Score: 0, Redundant

    is it a coincidence that 3.0 is when they started versioning up like crazy every two weeks? I think not!

    1. Re:"Went up significantly following version 3.0" by Anonymous Coward · · Score: 0

      That actually started with version 4.

    2. Re:"Went up significantly following version 3.0" by Anonymous Coward · · Score: 0

      is it a coincidence that 3.0 is when they started versioning up like crazy every two weeks? I think not!

      They started that with 4, but nice try.

    3. Re:"Went up significantly following version 3.0" by NotBorg · · Score: 1
      FTA:

      4.2 Switching to the rapid release cycle (RRC) has had a positive impact on maintainability

      "Crazy" seems to be working just fine.

      --
      I want this account deleted.
    4. Re:"Went up significantly following version 3.0" by Anonymous Coward · · Score: 1

      Version 3, version 4 - what's the difference? So he was off by 20 minutes. Big deal.

  12. I'm interested in seeing analysis of WebKit/Blink by 0x000000 · · Score: 4, Interesting

    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 /dev/null > .signature
  13. No Script sucks because the net sucks by Anonymous Coward · · Score: 1, Insightful

    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

    1. Re:No Script sucks because the net sucks by liamevo · · Score: 2

      Don't blame us, blame the marketers and SEO people.

    2. Re:No Script sucks because the net sucks by Garridan · · Score: 1

      No you don't need to allow all ever. I allow all for my school's domain, and nothing else. Those social media buttons don't even show up for me on most pages 'cause they use a third-party javascript loader. On the very rare occasion that I can't get a site to work, I switch to private mode (ctrl-shift-p) and allow all there. I like to use half-broken websites. I break the half that tracks me / loads cpu-intensive flash ads / makes the page take 10 seconds to load. If they still manage to annoy me, up comes firebug and *whoops*! There go the page elements I didn't like. Grayed-out content? I think not!

    3. Re:No Script sucks because the net sucks by Anonymous Coward · · Score: 0

      It's up to us, the engineers, to provide for people alternatives to Facebook, Twitter, ad networks, etc... Pointing out the problem without offering a solution other than "unplug your computer" is not useful.

    4. Re:No Script sucks because the net sucks by LordLimecat · · Score: 1

      You could just install ghostery, which generally JustWorks (TM).

    5. Re:No Script sucks because the net sucks by Anonymous Coward · · Score: 0

      So, it's NoScript's fault you're too lazy to maintain the NoScript whitelist?

  14. Condescending by Anonymous Coward · · Score: 0

    And you realize that all those features add on to the codebase, riiight?

    And you realize that adding to the code base adds on to its complexity, riiight?

    ANd you realize the GP was being sarcastic, riiight?

    And you realize that you come across as a condescending ass, riiiight?

    I await your ad hominem with pleasure so I can crush you your feeble intellect with my mighty logic.

    1. Re:Condescending by Anonymous Coward · · Score: 0

      LOL, you're just mad because I'm smarter than you. Considering the fact that you're comment has absolutely no substance to it, I'm comfortable taking my chances.

  15. LibXUL on Win32 approaching 4GB memory limit by revealingheart · · Score: 5, Informative

    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.

    1. Re:LibXUL on Win32 approaching 4GB memory limit by TheRealMindChild · · Score: 1

      Sounds like a good point to refactor

      --

      "When life gives you lemons, don't make lemonade. Make life take the lemons back!" -- Cave Johnson
    2. Re:LibXUL on Win32 approaching 4GB memory limit by Anonymous Coward · · Score: 0

      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

      Well that's easily solvable, just run a PAE kernel... oh, wait...

    3. Re:LibXUL on Win32 approaching 4GB memory limit by InvisiBill · · Score: 2

      Reminds me of http://developers.slashdot.org/story/11/12/14/1725205/firefox-too-big-to-link-on-32-bit-windows... As one commenter in that thread asked, haven't they switched to x64 compilers yet? (Apparently there are issues getting the x86 version to compile properly on x64.)

    4. Re:LibXUL on Win32 approaching 4GB memory limit by BitZtream · · Score: 2

      Switching a few command line options to the compiler would completely resolve the issue. The downside is that it'll take longer to compile.

      Realistically though, if your hitting those limits, the compiler isn't the problem, the code is.

      Bloat much?

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    5. Re:LibXUL on Win32 approaching 4GB memory limit by Anonymous Coward · · Score: 0

      Mozilla's problem is making the build process work on 64-bit systems. If you're going to accuse Firefox of bloat because of the 4gb barrier, then check out Chromium's requirements sometime.

    6. Re:LibXUL on Win32 approaching 4GB memory limit by Anonymous Coward · · Score: 0

      Old news. And Chrome was hitting that first. There was an article some time ago about that.

    7. Re:LibXUL on Win32 approaching 4GB memory limit by TheDarkMaster · · Score: 2

      I think something is seriously wrong when a program becomes too large to be compiled.

      --
      Religion: The greatest weapon of mass destruction of all time
    8. Re:LibXUL on Win32 approaching 4GB memory limit by jones_supa · · Score: 1

      I don't get it. Couldn't you just use a 64-bit compiler and set it to produce 32-bit binaries?

    9. Re:LibXUL on Win32 approaching 4GB memory limit by Anonymous Coward · · Score: 0

      The complier they use, VS I think, see the thread if you want, can't do that.

    10. Re:LibXUL on Win32 approaching 4GB memory limit by HoserHead · · Score: 5, Informative

      I'm a Firefox developer.

      This is slightly inaccurate. We aren't running out of memory to link Firefox, we're running out of memory to run Profile-Guided Optimization (PGO) on Firefox.

      PGO looks at what is actually executed during a given workload and optimizes based on that. It can be a pretty big win — 30% in some workloads —so we work pretty hard to keep it going.

      Unfortunately, PGO needs to have not only all the code, but all the intermediate representations and other metadata about the code in memory at one time. (That's why we're running out of memory.)

      Unfortunately, MSVC doesn't support producing a 32-bit binary using their 64-bit compiler.

      (FWIW, Chrome has *always* been too big to use PGO.)

    11. Re:LibXUL on Win32 approaching 4GB memory limit by Anonymous Coward · · Score: 1

      to be linked not compiled... if you use link time optimization, the memory usage grows fast

    12. Re:LibXUL on Win32 approaching 4GB memory limit by coolsnowmen · · Score: 2

      It has to do with the compiler optimizations that profile code more than it has to do with code bloat.

    13. Re:LibXUL on Win32 approaching 4GB memory limit by Anonymous Coward · · Score: 0

      It would be great to see Firefox start producing 64-bit builds for Windows as a result of this.
      Any chance of that happening?

    14. Re:LibXUL on Win32 approaching 4GB memory limit by Anonymous Coward · · Score: 0

      You are running out of memory for 32 bit Linux builds, though, and there's no PGO involved there. See post in mozilla.dev.platform. The fix in that case is to move to a cross-compiler on 64 bit Linux, of course.

    15. Re:LibXUL on Win32 approaching 4GB memory limit by Eravnrekaree · · Score: 1

      Its the optimization phase that takes up a lot of RAM. Id rather they skip the optimization phase rather than damage features and functionality. If firefox wont render pages well, i would give up on it.

    16. Re:LibXUL on Win32 approaching 4GB memory limit by Eravnrekaree · · Score: 1

      Why not switch to compiling it with something that can cross compile, running the compiler on 64 bits. Perhaps GCC or Clang could do the job?

    17. Re:LibXUL on Win32 approaching 4GB memory limit by Anonymous Coward · · Score: 0

      MSVC produces much faster binary than GCC, also debugging in MSVC is lightyears ahead of open source hacks.

    18. Re:LibXUL on Win32 approaching 4GB memory limit by Xest · · Score: 1

      "(FWIW, Chrome has *always* been too big to use PGO.)"

      Chrome is also more performant too though, so what do they do instead? Is it simply better architected from the outset?

    19. Re:LibXUL on Win32 approaching 4GB memory limit by HoserHead · · Score: 1

      Actually, the problem on Linux is also PGO.

    20. Re:LibXUL on Win32 approaching 4GB memory limit by Anonymous Coward · · Score: 0

      More performant how? Firefox has all but closed the performance gap in many respects over the last year, you just don't hear about it over the endless "it's bloated", "it's slow", "rapid releases lol" and "Chrome 4eva" nonsense that may have applied 3 years ago.

      Frankly, Chrome on Linux isn't appreciably faster in any respect except the dying Flash platform. And even on Windows, the nightlies of Firefox only have a few areas where they're worse, and more than make up for it in terms of memory usage being appreciably lower.

      So I really have to wonder what's so performant about Chrome anymore? Perhaps you meant "popular"?

    21. Re:LibXUL on Win32 approaching 4GB memory limit by Anonymous Coward · · Score: 0

      Not using MSVC. Moving off MSVC on Windows is not an option.

  16. Um, you forgot to go AC when you trolled. by Gordo_1 · · Score: 3, Informative

    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.

    1. Re:Um, you forgot to go AC when you trolled. by NotBorg · · Score: 3, Insightful

      Hasn't that been played out yet?

      Nope. Trolls echo forever.

      --
      I want this account deleted.
  17. Context is important by Anonymous Coward · · Score: 0

    For some web application or something similar trivial, i would care.
    However, a full featured modern web browser is in no way trivial. AI, compiler building, an own network stack, several rendering backends, a dozen of parsers, a GUI system and a very complex plugin system are involved; at least.
    A complete web browser is literally (yes, literally) an operating system on top of your operating system; one can be happy if the code is somewhat not total crap.

  18. Lots of pretty numbers... by DrStrangluv · · Score: 3, Insightful

    ... 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.

    1. Re:Lots of pretty numbers... by Anonymous Coward · · Score: 0

      It depends on the value of those 8 files. You can pull a brick out of a bridge with no problem, but if its a keystone that may not be the case...

      The article is pretty vague though so I wouldn't give it too much thought.

    2. Re:Lots of pretty numbers... by wonkey_monkey · · Score: 2

      I'm also wondering what "impact" means here. "Indirectly impact" doubly so.

      --
      systemd is Roko's Basilisk.
    3. Re:Lots of pretty numbers... by ArsonSmith · · Score: 3, Funny

      I'm not an expert and of course wouldn't read the TFA but from reading the headline and a good part of the summary, I've deduced that "impact"="bad" and "Indirectly impact"="scary bad".

      Hope that helps.

      --
      Paying taxes to buy civilization is like paying a hooker to buy love.
  19. Who cares? by angel'o'sphere · · Score: 0

    Firefox is forthing me to update the flash player, even if *I know* that I only visit one web site with flash on it with it.
    In other words: it refuses to work. (That means I have to shut down all other browsers with roughly 100 tabs/windows, unacceptable!)
    Since ... don't know which version? You can not disable autoupdate anymore. Unfortunately the developers believe they may change look and feel arbitrarily.
    I for my part use an very old firefox for one specific web site. Otherwise I use Chrome and Safari and consider to try Opera again.

    --
    Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    1. Re:Who cares? by jones_supa · · Score: 1

      Use the Extended Support Release of Firefox.

    2. Re:Who cares? by TheSeatOfMyPants · · Score: 1

      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!)
    3. Re:Who cares? by Anonymous Coward · · Score: 0
    4. Re:Who cares? by angel'o'sphere · · Score: 1

      Interesting link, thanks!

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
  20. Is anyone still using it? by Kazoo+the+Clown · · Score: 0

    I gave up on Firefox around version 1.4 when it became clear it was no longer anything like the lean, mean lightweight browser I was looking for, and once was it's apparent target. The bloat factor caused it to become irrelevant after that.

    1. Re:Is anyone still using it? by Anonymous Coward · · Score: 0

      Most modern computers have memory going to waste. Why would anyone care of Firefox uses some of it.

    2. Re:Is anyone still using it? by Anonymous Coward · · Score: 1

      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"

    3. Re:Is anyone still using it? by Mike+Frett · · Score: 1

      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.

    4. Re:Is anyone still using it? by Anonymous Coward · · Score: 0

      Yeah, no kidding. It's total bloatware compared to Chrome, I mean it's a whole 10 megs smaller as a binary, uses substantially less RAM, and even bundles a working MathML implementation. Fuck Mozilla.

    5. Re:Is anyone still using it? by amorsen · · Score: 1

      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?
    6. Re: Is anyone still using it? by Anonymous Coward · · Score: 1

      GG Firefox! http://caniuse.com/mathml

    7. Re:Is anyone still using it? by Anonymous Coward · · Score: 0

      I gave up on Firefox around version 1.4 when it became clear it was no longer anything like the lean, mean lightweight browser I was looking for, and once was it's apparent target. The bloat factor caused it to become irrelevant after that.

      Back in the day you could use open source software to make an old computer faster, but sadly that's always not the case anymore. Windows+IE is way slicker than Ubuntu+Firefox. Surely you can use some lightweight DE/browser, but by using commercial software you don't have to make that kind of sacrifices. This message is modded down.

    8. Re:Is anyone still using it? by Anonymous Coward · · Score: 0

      I love firefox, because the depth of the user interface customization leads to some simple features that work nearly flawlessly that cannot be done on other browsers. i guess i am mainly and talking about scrollbar anywhere, but there's also the tab manager layout window that works well for managing my daily work as a programmer, and the app tabs (or pinned tabs) which i have come to appreciate over the years.

      damn i love firefox, may it live forever, even if it always suffers memory leaks and needs to be restarted every 10 days or so

    9. Re:Is anyone still using it? by Anonymous Coward · · Score: 0

      I've been using the same PC since version 3 of Firefox, and it's only become more and more snappy, responsive and pleasant to use. It's hardly a supercomputer, either, just a standard multicore wintel box.

      I really don't know what you're talking about. Do you run a billion addons on Firefox, then compare it to a clean install of Chrome? Do you happen to have an even older computer with some obscure drivers that make it run poorly?

      Because when you say you want it back "the way it used to be" you're really asking for it to become a slower pile of mostly-obsolete tech. Surely you realize that, so I have to assume you're just out of your mind.

      Next you'll be telling you'd rather use Windows 95 for your modern gaming, because you'll settle for a practically ancient web browser for your modern browsing.

    10. Re:Is anyone still using it? by Anonymous Coward · · Score: 0

      Firefox was "lean and mean" compared to the Mozilla suite that preceded it. In that context, it's true.

      As an absolute statement, no, far as i can tell it was never true. Although it seems pretty snappy when I run it under windows 7.

    11. Re:Is anyone still using it? by Eravnrekaree · · Score: 1

      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.

  21. The code base was not designed for concurrency by Animats · · Score: 4, Informative

    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.

    1. Re:The code base was not designed for concurrency by Anonymous Coward · · Score: 0

      True, but they've spent a good year or two working towards improving their codebase for various efforts, including the Electrolysis project. It might not just be talk, they're quite serious about improving the process/threading model in Firefox, if for no other reason than to improve Firefox OS.

    2. Re:The code base was not designed for concurrency by bill_mcgonigle · · Score: 2

      There are clearly people working on Mozilla who 'get it', but the project management seems adverse to tackling anything long-term or difficult. They also like to officially deny that real problems exist. Just as a random sample of tech geeks, how long were people here bitching about Firefox memory usage while we were fed a line of excuses. I recall reading the blog of the lone dev who started what came to be known as the Memshrink project, which, when it was done, management loved to tout, but before that "didn't matter".

      The bz on multithreading the browser has been open for, what, 12 years? As of 2011, it wasn't a problem anymore. "ooh, mobile, new shiny!"

      This is one area where Chrome runs circles around Firefox. Their tech people get to work on things they think are valuable and management supports them. They take on hard projects (i.e. forking WebKit). If anything, it should be the private non-profit that can take these risks!

      So, guess which browser is an irrelevant pig dog on my 2-year-old smartphone...

      --
      My God, it's Full of Source!
      OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
    3. Re:The code base was not designed for concurrency by Anonymous Coward · · Score: 1

      FYI, Electrolysis is back on.

      https://wiki.mozilla.org/Electrolysis#Yes_these_dates_are_real_and_from_2013.21

    4. Re:The code base was not designed for concurrency by bluegutang · · Score: 1

      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

      I thought the conventional wisdom was that the Mozilla team made a mistake, unnecessarily losing time, by starting over from scratch. In other words there is not enough Netscape code in Firefox!

  22. Hah by Anonymous Coward · · Score: 0

    There's no such thing as a (non-trivial) acyclic graph. A non-trivial acyclic digraph however...

    1. Re:Hah by Anonymous Coward · · Score: 0

      Most trees have some notion of directedness anyway, in that the parents and children have an asymmetrical relationship (any node can have multiple children, but no node has more than one parent).

    2. Re:Hah by AnalogBrain · · Score: 1

      First sentence on Wikipedia:
      In mathematics, a directed graph or digraph is a graph...
      http://en.wikipedia.org/wiki/Directed_graph

  23. Largely Irrelevant by Jane+Q.+Public · · Score: 1

    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.

  24. Re:Trojan warning by Anonymous Coward · · Score: 0

    The report is actually correct. Microsoft Security Essentials (which is actually a great antivirus) thinks there's some funky IFRAME code that might redirect to a malicious website. When that threat was analyzed the target servers were unreachable though.

  25. Those who ignore History... by theatreman · · Score: 1

    Oh the history - the netscape codebase being so complex a complete re-write was necessary...

    1. Re:Those who ignore History... by triffid_98 · · Score: 1

      Quite correct. After 4.7 (circa IE5) they chucked it and Mozilla was born after several more years of re-development.

      I've no idea how bad the old code base was but I'd imagine based on past experience they would have done a cleaner job this time around.

    2. Re:Those who ignore History... by jensend · · Score: 1

      Well, things would be cleaner to re-implement this time around if they had to do another rewrite, because cross-platform development is now a basically solved problem.

      In 1998, getting one codebase that would work on things like various ancient Unices, "DOS-based" Windows (95/98/Me), and Mac OS 8/9 was a very difficult task. Beyond the lower-level concerns, few good libraries would work across all targets. C++ itself was a mess when trying to work across different systems and compilers- many things could not be counted on to work everywhere until some years after the first C++ standardization in 1998.

      So Mozilla wrote their own 'toolkit' (kinda) and portability/compatibility stuff, their own code that did much of what the C++ standard library really ought to do, and a lot of other stuff.

      With modern operating systems, modern cross-platform libraries, universal C++03 support and widespread support for most of C++11, a rewrite would be a very different story today.

    3. Re:Those who ignore History... by Eravnrekaree · · Score: 1

      Was that really why a new browser architecture was created. It may have been simply due to the fact the old rendering engine did not structurally support document reflow well, without creating a huge second systems effect anyway, which would lead to obfuscation problems. The old rendering engine may have been fine for what it was designed to do.

    4. Re:Those who ignore History... by Anonymous Coward · · Score: 0

      Um, Mozilla has largely moved away from their older baked-in code for most things, so I really don't see what the big deal is. Sometimes a total rewrite is more effort than starting from scratch, and sometimes the cross-platform utopia isn't as blissful and you NEED to keep your own networking libraries/etc.

      A rewrite is basically what they're looking into with Servo and Rust, and I don't know about you but I'd rather not wait another 5 years without a healthy competitor for Chrome keeping them on their toes.

  26. Serious question by Anonymous Coward · · Score: 0

    I'm not compiler-knowledgeable. I've heard that the current mem usage is high partially due to "profile guided optimizations", but...
    why does the compilation process for a browser of a few hundred megs require 4GB of memspace?

    Honestly, I'd like to get some insight - can anyone here provide "a layman's guide to mem usage by the linker"?

  27. RTFA by Anonymous Coward · · Score: 1

    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?

  28. Re: Trojan warning by Anonymous Coward · · Score: 0

    But what if she prefers Durex?

  29. Re:I'm interested in seeing analysis of WebKit/Bli by Anonymous Coward · · Score: 0

    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?

    Dave what's-his-name (can't remember his last name, but one of the original authors of Phoenix/Firefox who moved to Apple and turned KHTML into Webkit) said that the Gecko codebase was "baroque" (cue jokes about how baroquen it is), but that a lot of how convoluted it was had to do with how far it went to try to make sense of broken HTML. He specifically said there's a lot of stuff Gecko can handle that Webkit can't because they're rare edge cases and allowing for them complicates the code badly.

    Yes, I can hear the Apple fanbois already starting to froth at the mouth. Take it up with Dave, he said it.

    I also remember some complaining about a Firefox developer making changes to Gecko in an attempt to make his own development easier which made it much more Firefox-specific than it had been or was supposed to be. Prolly find references to it with Google if you really wanted to.

  30. Re:Ha, ha! by Anonymous Coward · · Score: 0

    Good dog - sit!

  31. Re:I'm interested in seeing analysis of WebKit/Bli by Eravnrekaree · · Score: 1

    Webkit may be better documented. I tried to find documentation on Gecko and it was very limited, I gave up on it.

  32. How maintainable? by Trogre · · Score: 1

    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
  33. The Bigger Question by Anonymous Coward · · Score: 0

    The bigger question, at least to me, is this:

    Why are we, despite huge drive space and fast processors, allowing our coding to become so sloppy and monolithic that we have forgotten the basic tenets of programming. I remember in college reading a book about UNIX. I've never forgotten where the author describes one of the key tenets of UNIX being "let each program do one thing well".

    Browsers have become so big, bloated, and their collective authors try to incorporate so very much--too much--into a program designed to render HTML and JavaScript.

    I'll likely get flamed for this, but I truly miss the minimal, the tenets upon which I learned how to use UNIX and appreciate it's simple yet powerful abilities. Just saying...