The indispensable ingredient that binds developers together on a free software project, and makes them willing to compromise when necessary, is the code’s forkability: the ability of anyone to take a copy of the source code and use it to start a competing project, known as a fork. The paradoxical thing is that the possibility of forks is usually a much greater force in free software projects than actual forks, which are very rare. Because a fork is bad for everyone, the more serious the threat of a fork becomes, the more willing people are to compromise to avoid it.
— Karl Fogel, Producing Open Source Software
Is Firefox actually forkable? In one sense, clearly, yes – there have been several pseudo-forks, from Beonex to Flock to Iceweasel. But Firefox is much more than just a codebase – it’s also a well-loved brand, a movement, and a connection with 400+ million users. Anyone taking the Firefox code and starting their own project doesn’t have that – as Flock discovered. “Firefox”, in its widest sense, is pretty much unforkable.
So if, as Karl suggests, the possibility of forking is actually a force which binds developers together and makes them willing to compromise when necessary, does the Firefox community actually lack that safety valve, leading to a lack of necessity to compromise from those with power within the project, and greater frustration for those without it?
Or, to look at it from another angle, does the lack of forkability actually give leaders (who have meritoriously risen to the top) the opportunity to execute on a single-focussed vision without the risk of fragmentation of their community?
As my accidentally-leaked scratchpad put it, “Discuss…”.
No fork immediately steals a project’s reputation and users. Forks have to earn those. There’s nothing Firefox-specific here.
Firefox is difficult to fork because it contains a lot of rapidly changing code. A single person wouldn’t even be able to keep up with security fixes.
Size is a factor. You can create your own fork of the Firefox code easily enough – but can you maintain it? Probably not, unless either the fork is driven by a faction of the original developers, or if the fork is staying close enough to the original that it continues to benefit from it…
I do think there is something to be said for the pressure the potential of a fork creates though. I would also argue that Firefox’s size and established history can be detrimental to the project at times.
Accepting Firefox as too big to really fear a fork, Firefox loses some motivation to innovate and react quickly. Likewise, being an established project that is so large, for so long, creates a ton of built up ‘best practices’ and methods to accomplish specific things. In effect, there can be so many rules and procedures that some of the best ideas die and fizzle out, or that some of the potential best contributors never make it anywhere near contributing code.
Thankfully, Firefox does still have Chrome, IE, and Opera putting pressure on it. Agree / disagree?
Doesn’t the Browser component of SeaMonkey qualify as a fork of Firefox? And a successful one so far?
@Tony – I think Seamonkey fits the conditions I mentioned. It’s a different UI, but it’s not diverging much from the code that goes into Firefox or Thunderbird – particularly with regard to complex bits like Gecko. And I believe it’s developed by long-time Mozilla developers…
That said, is it really a success? The project may be producing good quality software (which is a good start), but I don’t know anybody who uses it, and almost as few who have even heard of it.The idea of a combined email/browser suite just hasn’t seemed relevant to me for a long, long time.
@Simon: How do you define a “success”? I don’t define it only by market share. I use SeaMonkey myself, it works, it has loyal followers all over the world; and I even convinced one man (I think I can call him a Vim developer though he does it in his spare time) to upgrade to it from the Mozilla Suite. Also, how do you count software users? Now that the SeaMonkey user-agent string includes “Firefox/” to thwart sites which were misguidedly sniffing for Firefox rather than Gecko (or than, preferably, sniffing for features rather than trademarks), maybe some “couting agencies” are still including SeaMonkey with Firefox? (Here’s my present UA string: “Mozilla/5.0 (X11; Linux x86_64; rv:12.0a1) Gecko/20111222 Firefox/12.0a1 SeaMonkey/2.9a1”).
Yes, even most Firefox developers, many Thunderbird developers, and quite a number of extension developers seem to behave as if SeaMonkey didn’t exist, and that is sad; but the notion of an all-in-one browser, mailer and chat client is quite relevant to me; for one thing, it reduces the update work by two or three, and since I’m using nightlies it makes a difference. Isn’t another Suite — Opera — “successfully” pushing the same concept from a different codebase?
P.S. Yes, the SeaMonkey codebase is close to Firefox’s and Thunderbird’s, but not identical: there are differences in the frontends; and yes, some long-time Mozilla developers are still working on SeaMonkey in their spare time; OTOH the “benefit” is not only one-way: several times I’ve seen bugs found in forked code by SeaMonkey users, fixed in the SeaMonkey codebase, and then ported to Firefox; or else, while porting a fix from Firefox to SeaMonkey a SeaMonkey developer discovered an error in the code being ported, corrected it, then back-ported the fix.
For a long time I would have said that OpenOffice was unforkable. It may be that larger projects require a much higher threshold before someone will attempt to fork, but when push comes to shove forks can happen.