In Where Are All The Open Source Billionaires? I used this chart as an illustration:
Because open source code is freely distributable, anyone can take that code and create their own unique mutant mashup version of it any time they feel like it. Whether anyone else in the world will care about their crazy new version of the code is not at all clear, but that's not the point. If someone wants it bad enough, they can create it -- or pay someone else to create it for them. This is known as "forking". It's the very embodiment of freedom zero, and it's an essential part of every open source license.
But there are forks, and there are forks:
What is different about a fork is intent. In a fork, the person(s) creating the fork intend for the fork to replace or compete with the original project they are forking.
That's exactly what happened to the Pidgin project recently.
In their 2.4 release they changed the GUI action of the text field where the user types their IM from a manually re-sizable window, to a fixed size window that auto-re-sizes based on the amount of text typed. On the surface, this sounds like a minor change, but it triggered a massive user revolt! Why?
This is what they're up in arms about:
The developers, for whatever reason, dug in their heels on this one and refused to budge. You can read through some of the commentary on the bug ticket to get an idea, but the general tenor was combatative bordering on hostile. The bug was eventually closed as "won't fix".
The community's response was swift: Oh yeah? Fork you!
Funpidgin is a fork of the popular open source client Pidgin which allows instant messaging with over twenty different protocols.What makes us different from the official client is that we work for you. Unlike the Pidgin developers, we believe the user should have the final say in what goes into the program.
So far five new features have been added to Funpidgin upon requests from users, and all of them are optional. It is these options that make the use of Funpidgin enjoyable to a diverse range of people.
Funpidgin is a fork in the truest sense; the developers intend to replace Pidgin. But will it? Who knows. There are four possible outcomes from any fork:
You can find examples of all four outcomes peppered throughout the history of open source software. You might think that the adoption of open source software licenses would lead to dozens if not hundreds of incompatible, slightly-different versions of the same stuff -- bewildering users and developers alike. I'm not so sure. There's a tremendous amount of inertia around the open source projects that survive long enough to become popular. Consider the challenges the newly forked Funpidgin project now faces:
Forking is incredibly difficult to pull off. It is a painful, but necessary part of the evolution of open source software. Just as in real evolution, I suspect that most forks die in vast, nameless numbers, before they become strong enough to engender any forked progeny of their own. Forking is the absolute bedrock of open source software -- but it is also not a path to be chosen lightly.
The Pidgin thing sounds like one of my usability pet peeves; programmers setting up restrictions just because they can.
The old programming principle about being liberal what you accept and strict what you output should be also used for interfaces. Be liberal about what you allow users to do and strict (i.e. consistent) what your program does. Being liberal I mean things like letting users resize windows with widgets that may benefit from being larger and let them use whatever font sizes they deem appropriate. Hard coding fonts and text field sizes is for web designers and (other) clueless control freaks.
Even if you were an interaction designer with decades of experience you will never be able to foresee all ways and contexts that your software will get used. What makes no sense to you may make perfect sense to others and whole issue may be entirely irrelevant to functioning of your program. So, why would you force users to your view.
On example I have red is when someone insisted that Firefox tabs should be used to ONLY group related open pages together in one window and you should ALWAYS open another windows for opening unrelated pages. I sincerely doubt many share his view, but Firefox allows him to do that and others to have what ever combination of pages open in what ever amount of windows they like.
Bloodboiler on May 16, 2008 2:36 AMI don't get it. Just use GTalk.
kevin on May 16, 2008 2:48 AMSpeaking of alternative to alternative chat clients, have you tried Digsby? It's still in beta, but it's coming along VERY nicely.
Paolo on May 16, 2008 3:24 AMhttp://www.rants.org/2007/06/26/when-is-open-source-not-open-source/
--
For example, take the issue of governance in an open source project. Many projects use the benevolent dictator model, in which one designated person gets to make the final call in controversial decisions. "Designated by whom?" the skeptic might ask. The surprising answer is "It doesn’t matter — because if anyone disagrees strongly enough, they can copy the project and take it in another direction." In other words, benevolent dictatorship isn't really dictatorship, because it depends completely on the consent of the governed.
--
This is a fairly common view of forking, but it's not quite the whole picture.. A lot of things exist in a half-forked state, wherein patches aren't just made to scratch some itch, but *maintained* for a sequence of versions of the trunk project.
I agree with what you're saying, but in reality you have a few more choices than to fork or not to fork.
Anders Eurenius on May 16, 2008 6:57 AMIts nice to see a project fork just to cater to users... the original devs should get off of their high horses and accept the old truth - "The customer is always right". :)
I guess someone was bitter about all the work they had just done and didn't want to undo it...
I like the way it was reported as a bug too... reminds me of my own opinion that a serious design flaw, particularly on the UI, should be treated like a bug and not a feature.
Jheriko on May 16, 2008 7:00 AMUser Are Not Designers. There isn't any more to be said.
http://weblog.obso1337.org/2008/four-words-for-funpidgin/
seele on May 16, 2008 7:05 AMA lot of things exist in a half-forked state, wherein patches aren't just made to scratch some itch, but *maintained* for a sequence of versions of the trunk project.
I think there are two usages:
1) Forking, as a specific source control / software engineering concept (I would tend to call this branching and merging, ala http://www.codinghorror.com/blog/archives/000968.html)
2) Forking, as a general principle of open source software
Jeff Atwood on May 16, 2008 7:08 AM"We believe the user should have the final say in what goes into the program"
I see a rocky road ahead for FunPidgin
Des Traynor on May 16, 2008 7:13 AMI can see a problem here, because at least in usability terms, "the customer is always right" is not always true.
Funpidgin is a classic example: "all of them are optional"
This could very well create an unusable interface which eventually will make users avoid Funpidgin. Also, this is one of the very reasons Gaim was "forked" (converted) into Pidgin. Gaim had a very bad user interface with many options.
Don't underestimate "sensible" or "good enough" defaults, which sometimes should not be changeable. In this case it's dubious though if not even adding a secret option somewhere deep inside Pidgin or a configuration file could have been mandated.
Adam on May 16, 2008 7:20 AMHang on a minute.
There are no Amazon referral links in this post.
JimmyBob on May 16, 2008 7:29 AMOn forking-
I've been dissapointed with the open source community's support for a Windows C++ IDE. Dev-C++ appears to be no longer supported, and other projects have sprung up from its ruins. Each has its own pecuilar user base but not enough critical mass for me to have enough faith that anything is going to around long enough.
This is where proprietary software seems to have an edge: Visual Studio has a large user base, immense library support, and has been around for eons. Support for it is stable and ongoing and unlikely to get wrapped up in the throws of forking. You can get most of the functionality for free (as in $$) through an Express edition.
It seems many users get fed up with the fork-o-rama and just want something that might limit their freedom, but will ultimately get the job done.
Doug Turnbull on May 16, 2008 7:29 AMAt least I think it is nice that people are able to fork, Instead of the LOTR model:
One OS to rule them all,
One OS to find them,
One OS to bring them all
and in the darkness bind them.
But is a very interesting observation what is dictatorship, freedom or democracy. To some Microsoft is freedom of choice compared to Apple, where others think of it as pure evil dictatorship. A Microsoft developer might think that he is working in a nice democratic environment; where else an open source developer can feel he/she is working in dictatorship.
Peter Palludan on May 16, 2008 7:31 AMRight, but (1) is completely undefined in a number of situations; from complete lack of source control to distributed s/c. And, given that, at what point can it be considered a fork? I'm just (superfluously, I hope) pointing this out because this whole "to fork, or not to fork" take on it is juvenile and getting seriously stale.
Consider, for instance, Debian's auto patch support. Fork or not a fork?
Various alternatives for Lua: (http://lua-users.org/wiki/LuaPowerPatches) fork or not fork?
It should also be noted that, while the debian patches usually are of the 'play nicer' flavour, some of the Lua patches can be non-negotiable for the app that links in Lua.
In my experience, the simplistic view of forks is mostly used (as a rolled up newspaper) on the suits. In real life code is a lot more fungible.
Anders Eurenius on May 16, 2008 7:32 AM@Adam - Gaim was simply renamed Pidgin to stop AOL bleating about it. No forking involved.
Ciaran on May 16, 2008 7:32 AM"all of them are optional" sounds like way too many options for the user to choose from. See the article "How much control should our users have?" for a nice discussion about this topic (http://headrush.typepad.com/creating_passionate_users/2007/02/how_much_contro.html)
But in case of the auto-resizing textbox I think it would really be the right choice to add a simple checkbox to enable this feature.
Florian Potschka on May 16, 2008 7:34 AMGaim became pidgin due to legal issues with the name 'gaim' it had nothing to do with the amount of options or anything else. There was no 'forking' or 'converting' there. Simply a rebranding, all of the same developers were involved. (I should know, I'm one of them.)
Etan Reisner on May 16, 2008 7:34 AMI'd like to further comment that at no point did the pidgin developers "dig our heels in" and I believe a careful reading of the linked ticket (and various email threads about this issue) will bear that out. What did happen is that we believed, and largely still do, that there is an auto-resizing middle-ground which will largely satisy everyone and were attempting to gather feedback in order to improve things for everyone. The problem was that, by and large, most people were uninterested in any attempts to fix things and were claiming that nothing but a complete and total reversion to the previous system was acceptable. It was *that assertion* which we refused to accept.
I'd like also to point out that in both 2.4.1 and the soon-to-be-released 2.4.2 there have been changes to the auto-resize system to incorporate the reasoned, constructive comments we did receive.
Etan Reisner on May 16, 2008 7:38 AMOh, and one last thing. The resizing patch that funpidgin forked to apply was almost instantly converted into a plugin (that works just fine with pidgin) by the original patch author, once we suggested that he do that.
Etan Reisner on May 16, 2008 7:39 AMIn my opinion, this is just one of several situations where Pidgin developers have shown they don't care what their users want. Since the introduction of MSN offline messages, Pidgin have swallowed them silently. There has been no fix because "none of the developers use MSN for much".
Hvard Pedersen on May 16, 2008 7:41 AM*points at etan* look! The whole story!
Steve-O on May 16, 2008 7:46 AMEtan, to be clear -- I'm not sure I agree with either party here. Certainly as a developer myself I can empathize. Users often have bad ideas of what they want, what makes sense, and general usability concepts. Saying "yes" to every user request is a recipe for disaster.
http://www.codinghorror.com/blog/archives/000109.html
What interests me most is the forking concept, why it matters, and how it works.
Anyway, if evolution and history is our guide (and isn't it always?) I'd say it is unlikely Funpidgin will survive for very long.
Forking happens in the closed-source community too; however when it does, the fork usually has to start from scratch.
philihp on May 16, 2008 7:50 AMJeff, I wasn't trying to attack your or question your assertions (as such). I was responding more to the general tenor of the response posts. I would like nothing more than for this discussion to ignore the pidgin specifics and think about forking in general. That is a much more interesting topic.
I can't say I think we, the developers, handled this as well as we could have, but I can say we didn't handle it nearly as badly or as mean spiritedly as 'common opinion' would seem to think. That's the only thing I'm trying to clear up. Consider this my last pidgin-auto-resize specific comment.
Etan Reisner on May 16, 2008 7:51 AM@Ciaran, @Etan Reisner:
My bad, crappy fact checking.
@Etan Reisner:
The resizing patch that funpidgin forked to apply was almost
instantly converted into a plugin
That's the right way to go. I suppose in a couple of months, everybody complaining will install the plugin and never know this debate ever existed.
Pidgin itself is maybe not the point of this post, but the fact that a plugin exists now certainly makes it quite a bit less relevant.
The tricky thing about "the customer is always right" is that in the case of open source software, the developer is usually also a customer. So, if the customer is always right, then the developers of Pidgin were right and the dissenters, who forked the code, were also right. Accusations of who is on "high horse" become rather meaningless.
Dave C. on May 16, 2008 7:53 AMA long lasting fork-war has been the issue with XEmacs vs Emacs
http://www.xemacs.org/About/XEmacsVsGNUemacs.html
I don't know about the whole "we work for you" thing. The last thing you need is a bunch of script kiddies telling you how to do your job.
Nathan on May 16, 2008 7:55 AMAnd then there's the whole *nuke-based CMS ecosystem. I've lost count how many CMS's started life as a fork of some *nuke-derivative or other.
I've used Xoops for a while, whose claim to fame is that it's like phpnuke, except it's rewritten to be object-oriented.
As if that's a feature users care about!
Now I don't want to knock Xoops, as it's an excellent CMS, and making it OO does make a difference for plugin-writers. But just imagine Microsoft releasing a new version of Windows which is identical to the previous version, and try to sell it based on it being object oriented, because this makes life for application developers so much easier!
Jeroen on May 16, 2008 7:55 AMPhilihp-
If they have to start from scratch, is it truly forking, or reverse-engineering? Or am I completely missing this concept?
Jeff,
As a programmer I'm disapointed that you missed out a possible outcome:
5. Both original and fork die
Probably doesn't happen in the real world, but we should never ignore a possible case.
;)
Martin Wallace on May 16, 2008 8:03 AMdang. I had flash backs to my university days with C and the fork() system call. Now that was fun coding!
fork u!
Joe Beam on May 16, 2008 8:07 AMForking is from the 3rd and 4th freedoms.
hdh on May 16, 2008 8:12 AMJoomla is another example of a successful fork.
Lee Kelleher on May 16, 2008 8:13 AMThis happened recently to PunBB.
PunBB is a wonderful light weight message board, but the original developer and owner (who didn't really have time to maintain it anymore) sold the rights to a company who promised to pay developers, market paid support and eventually sell paid extensions.
Some internal issues with all the lead developers and the new company caused them to give the middle finger to the new owners of PunBB, they took the GPL'd source code and forked it. The result is FluxBB which is basically the same as Pun but with it's development not stalled or commercialised.
The new owners must be pretty pissed due to all the developers basically abandoning it as soon as it was bought, it's clear that PunbBB will die and FluxBB will surpass it.
Fiona on May 16, 2008 8:14 AMBut, how can this be? I can't browse the web without being poked in the eye by someone claiming Microsoft has a monopoly on desktop operating systems. When the barrier to entry is essentially zero (and take a look at that "fork" chart for an example), how could anyone make that claim with a straight face?
David A. Lessnau on May 16, 2008 8:17 AM@Jeroen:
But just imagine Microsoft releasing a new version of
Windows^H^H^H^H^H Java which is identical to the previous
version, and try to sell it. :-)
I could imagine a lot of MS products being 'forked'. Those containing backwards compatible code, and those rewriting them without any consideration. It'd be interesting to see which one the user community backed, if they had enough visibility of both versions.
WRT OSS forking, this is just a good thing. If you disagree, you can re-use that code to make something better (or 'better' perhaps). Everything succeeds or fails according to how it provides for its users, so you should not restrict how it gets developed. There are a finite number of people who can work on a project (esp. an OSS one), so its not really reducing the development resources for the forked project either, and if there are enough users then there is no reason why both projects cannot thrive.
I'd be interested in seeing the linux distro timeline weighted for either actual usage or just plain interest. The current timeline implies that Yellow Dog is on parity with Red Hat.
Also, it looks like there is a 5th possibility. Multiple forks merge to form a new one.
Chris Lively on May 16, 2008 8:38 AMIs it me or does that graph look like a space ship flying to the left. ;-)
Donny on May 16, 2008 8:47 AMWell there's a project I have been thinking on forking, along with some other developers. The risk of the original developers just merging our changes back is minimal: they don't even apply patches people contribute, even if they are definitely improvements or bug fixes (not controversial features). They rot in the bug tracker for months. There is no way they would active look in our fork for "changes worth merging".
Main roadblock is that it's *technically* hard to fork. The client sends its version number to the server, and the server (based on that version number) may decide to reject the request, because it doesn't support a certain feature (introduced in a later version). In a fork, we would have to keep the version number consistent with theirs, and there is no way in hell it would work if we add features in a different order.
Suppose they add A in 1.2, add B in 1.3, if we want to merge their B feature into our fork, what version number do we send to the server?! If we send 1.3 (to say we support B), servers requiring A will accept it, even though we don't have A = bad. If we send 1.1 (to say we don't support A), servers requiring B will reject it, even though we have B = bad.
It's all LGPL, so we're legally allowed to fork. But technically roadblocked.
Nicolas on May 16, 2008 8:52 AM@Jean: Huh? KDE/Gnome aren't forks, they were both made from scratch.
Nicolas on May 16, 2008 8:55 AM"But, how can this be? I can't browse the web without being poked in the eye by someone claiming Microsoft has a monopoly on desktop operating systems. When the barrier to entry is essentially zero (and take a look at that "fork" chart for an example), how could anyone make that claim with a straight face?"
I don't know, because of this perhaps?
"Judge Jackson issued his findings of fact[11] on November 5, 1999, which stated that Microsoft's dominance of the personal computer operating systems market constituted a monopoly, and that Microsoft had taken actions to crush threats to the monopoly, including Apple, Java, Netscape, Lotus Notes, Real Networks, Linux, and others."
http://en.wikipedia.org/wiki/United_States_v._Microsoft
A better example of a fork might be Mambo/Joomla.
About two years ago, the chief group of Mambo developers forked the Mambo code over issues of copyright and ownership. Thus, Joomla was born, and in a certain sense, has taken over from Mambo. About six months ago, Joomla started adding features that made it incompatible with Mambo. Developers and users now have to decide between the two projects.
Another example might be the KHTML/Webkit fork which now looks like Webkit will be completely replacing KHTML. Unlike the Mambo/Joomla fork, this one looks much more peaceful. All of the KHTML developers will start working on the Webkit project.
The Linux "forks" you showed are not true forks. They will all incorporate any change made in the Linux project (which is just the OS kernel). Most also incorporate almost all of the GNU project latest changes. Most also include various Apache projects, Subversion, and other mainline projects. Any changes in these projects are usually put back into the distro.
The big difference between distros is not so much in the base source code, but the packaging and compilation options. Some add a few programs to be more user friendly. Others are for backend servers. Differences between Red Hat and Fedora are fewer than between Vista Home Basic and Vista Premium.
The Distros with the major differences are ones that are for highly specialized products like cellphones and PDAs. These not only strip out unnecessary programs and protocols, but may include specialized drivers and code patches. However, even those don't fork from Linux since they will include all changes made in the Linux core project.
David W. on May 16, 2008 9:23 AMI know this isn't the point of the post but it would be interesting to see the percentage of the market each linux distribution has on that picture you have. I suspect alot of debian home users with ubuntu and so on but maybe alot of commercial users on redhat or similar.
Glad to see some branches end but no merges as of yet which is something that needs to happen to bring linux to the masses.
pete on May 16, 2008 9:23 AMIt's interesting to look at some of the larger forks.
GCC and EGCS was probably the fork which affected the most people. This was a fork to change the development model of GCC to expand the pool of developers and encourage more involvement. The fork was run with an intent to merge it back to the main project when feasible, and as it happened, the forks rejoined and egcs became the next version of GCC, and the development model has stayed open and prolific.
X has a long history of forks like this. XFree86 was a fork of mainline X focusing attention on making it work well on x86 systems. Eventually, XFree86 was doing so well that new development predominately happened there and might be ported back to the mainline, but XFree86 was the proving ground where exciting new things were happening, and eventually became the reference implementation for the X Window System and was sponsored into X.org. Later, licensing debates and disagreements over the development model led X.org to fork XFree86 again, and x.org has become the reference implementation and is again more vibrant and lively than XFree86 had been in the later years.
Emacs and XEmacs, for instance, forked in 1992, making it the largest and longest lived fork I'm aware of. In this case, both have proved to be viable, and the competition was, in my opinion, useful. There was a bunch of experimentation on both sides, and features commonly moved back and forth. Merging the two code bases back in has not happened, because of differing design philosophies between the two forks and because the FSF insists on copyright assignments or licensing for any code it accepts into the project, and retroactively contacting all those who contributed to XEmacs is nigh impossible. In the past, it seemed XEmacs was the more vibrant, featureful, and popular implementation, but at this point it seems that Emacs has taken its place. Perhaps in the future we'll see one take over.
My last example is TeX. It's spawned a ton of different forks, from minor forks for specific operating systems, more major ones which became commercial products, to larger forks like PDFTeX and e-TeX. This one interest me because temporary forking has become the way TeX evolves. The culture has been one that highly emphasizes compatibility, and we've seen forks appear (while making it easy for users to keep their documents compatible with the mainline), experiment on features, and eventually forks merge into semi-official mainline implementations. For example, I think the most commonly used tex executable now installed combines the e-TeX and PDFTeX extensions.
In many ways, I think that forking is an essential part of the open source lifecycle, which helps breathe new life into projects if they have become moribund for some reason. I can't think of any forks that have affected me that have really hurt the software... Emacs/XEmacs is probably the closest since it was a long running fork that caused a lot of extra work by developers to keep compatible, but I think Emacs was essential in pushing Emacs to keep evolving.
Alan Shutko on May 16, 2008 9:26 AMIn closed source software a fork is more like "Write a competing product." It's more of an idea fork, really. I've been involved in one or two products like this. A good portion of the open source ecosystem derives from exactly this sort of fork (like, say, all of the gnu tools).
Forks can be healthy for the original project. If funpidgin survives, and creates a bunch of "out-there" features demanded by its users, some of those features will inevitably be considered good ideas by the pidgin team, and ported (perhaps as a plugin) into pidgin.
Clark on May 16, 2008 9:27 AMI think there's a distinction between a 'forking' and a 'wrapping'-- e.g, the various forks of TeX-- or, for that matter, of Linux-- generally contain a current and unrevised version of the base TeX or Linux kernel implementation. On the other hand, Emacs and XEmacs really are different programs and don't (I think) currently have a common component.
FWIW, I think a similar thing is starting to happen in the Python community-- there are a number of 'enhanced' Python distributions out there (Enthought, Python(x,y), Sage) that cater to scientists and engineers who see a need for a different 'batteries included' distribution than do the Python core developers.
MattF on May 16, 2008 9:41 AMIt isn't really just that one interface issue; that particular problem is the proverbial straw that broke the camel's back. The transition from GAIM to Pidgin has in general sucked for a few reasons :
* They altered interface icons. Not a huge deal, and it is understandable, but many people have been irritated by this.
* With GAIM, you had two checkboxes next to each account in your accounts list, one for "online" and one for "auto connect." This made it very easy to have just a couple accounts that you could turn on after starting the program.
* Disconnects stopped stealing focus with a popup window and replaced it with a button in the buddy list. The downside to this is that clicking the buttons (one for each connection that died) brings up a popup with three buttons; reconnect, change account info, and cancel. The most common use case here is to reconnect and they seemed to know that before. Basically, in GAIM, you could reconnect 5 accounts with one click. Now, those five accounts require 10 mouse clicks. Very annoying.
With Pidgin coming in and stinking up the place as it has, I wasn't terribly shocked to see the Fun Pidgin fork. It is still very early in the game though, and I would seriously prefer to see the key Pidgin developers pull their collective heads out of their asses and realize that if the program isn't for the users, it isn't for anybody.
Spook on May 16, 2008 9:55 AMThe Drupal community, thus far, has managed to avoid serious forking due in part to the massive inertia of the plugin developer community that surrounds it. Every year or so a handful of folks decide that they don't like the direction it's going (or they want it to go in another direction), and they announce a new fork. Other times, technical limitations and deadlines lead to the creation of ad-hoc special-purpose forks. Years back, a DrupalForBloggers fork was maintained for some time. Most of its features were rolled back into the main product eventually, and the author happily dusted his hands when the fork's purpose for being vanished.
Jeff Eaton on May 16, 2008 10:02 AMCase 5: both forks die.
Well, it hasn't happened yet, but the Mambo/Joomla situation was one of the key reasons why we picked Drupal as the CMS for our site...
- Roddy
Roddy on May 16, 2008 10:09 AM"[Forking is] the very embodiment of freedom zero, and it's an essential part of every open source license."
Uh, Freedom Zero is (as you correctly point out in your earlier article) the ability to run the program for any purpose. This has nothing to do with forking. Forking is the very embodiment of Freedom 1: "The freedom to study how the program works, and adapt it to your needs."
Karellen on May 16, 2008 10:31 AMActually, thinking about it, a public fork is more what you're talking about, which is more like the embodiment of freedom 3.
Private forks are freedom 1.
Number of users (1,000) number of competent developers (20) number of skilled developers (7) number of skilled developers who are actually interested in the project (3) number of skilled developers who are actually interested in the project and have the time to do something about it (1).
Sadly, while to (skilled) developers I'm sure everything looks like a potential fork, to us -- the unwashed masses of users -- it is just an area that we have to put up with arrogant, annoying we-know-you-don't developers.
Suggestions in a lot of places are taken as sacrilege nowadays, *shrug*.
transcriber on May 16, 2008 10:53 AMThere are SEVERAL Open Source billionairs, Eirik Chambe-Eng is one of them. Pidgin is a COMMUNITY project and there are no reasons NOT to fork it. If you started a fork of such a project (even Linux itself too) then you have the exact same financial incentives as the "owner" of the fork as the developers behind the original project. Not every project is like that ;)
Think in terms of MySQL, Trolltech, Us (Gaiaware) and so on and you get the picture...
Those have no forks, even though there ones was a project threatening Qt on Windows. To such an extent that Trolltech themselves Dual Licensed also their Windows codebase. The reason is that it's impossible to compete with a "pure" GPL version against someone able to sell licenses for the same product since they will end up having the financial muscles to run FAR faster than a pure "community project". Trolltech e.g. has about 200 full time working developers on Qt, how can ANY community project ever compete with that for such a "narrow" piece of SW...?
But Open Source companies are a NEW thing, that's true, and it might to some extent be HARDER to make money in FOSS companies than in proprietary companies. But that doesn't mean the same as impossible. Also some of us have other incentives than to purely become billionairs ASAP. To be a billionair is easy, just start a career as a hitman, dictator in Africa or start robbing banks. The *really* hard part is becoming one while maintaining the integrity of your SOUL...
That's where the FOSS business model really makes a difference.
If you take us for example, there are nothing separating us from a "normal SW company". We're selling licenses like everyone else. In fact by being Open Source too we get a lot more attention too which helps us doing marketing. Most "commercial users" gets to pay for a license for our product like every other product on this planet. The only difference is that we also happen to "serve the underserved" meaning people that for instance are not able to pay us or that want to create something for "free" or that just want to play around before they maybe purchase our product can still use our product. So either you pay us for a commercial license, or you obey by the rules of the GPL (which most commercial SW vendor does NOT want to do)
Anyway you contribute to us and the world by either giving us money so we can continue working on the code for our product or by giving the "world" a piece of working SW that is free as in freedom and helps us drive our marketing. Then the last group is the ones "stealing" SW and want to use "pirate versions". Those are impossible to stop ANYWAY, though with GPL "threatening" to Open Up their entire codebase, I suspect it is actually LESS tempting than with some proprietary piece of junk completely closed down but never more than that it's possible to run Reflector on it and force an opening anyway ;)
Then the last "risk" is that some teenager actually learns something by studying your SW and starts competing with you and creates a superior product in which case the world evolves and everyone except (apparently) us are happy ;)
PS!
Notice the apparently part in the last sentence...
There are more than money in this world you know, you bet that I am going to be rich on my company, heck I'll SWIM in money in less than 10 years, but that doesn't mean money is my priority number 1 :)
If you don't fork ideas (to improve them), then we have a problem. Think first intead. Also, the Linux kernel is "unique", the distros are not (and a like the idea), Debian distro for servers, Ubuntu for common people. Think again: if IE is open source and we can fork the bad main implementation and improve it , so, i'm sure that we can have better browser, with a better support of standards. Think again if MS Windoze is open source, we can fork it and improve their bad security holes and performance.
Nicolas on May 16, 2008 11:09 AMAt times, the more people fork, the better it is for non-open sourcers.
Sort of a do-it yourself "divide and conquer".
So whats the opposite of a dictatorship?
Anarchy of course. Theres no way that the rats nest of linux distro's pictured at the top will ever topple Bill or even result in one or two very strong competitors.
I like the concept of having lots of variety though. One can then poach the good idea's from all the mutated strains and theoretically end up with a stronger product.
David E. on May 16, 2008 11:17 AMColossal Squid -
Don't you think it only fair to mention that....
"The D.C. Circuit Court of Appeals overturned Judge Jackson's rulings against Microsoft. This was in part because the Appellate court had adopted a "drastically altered scope of liability" under which the Remedies could be taken, but also due to the embargoed interviews Judge Jackson had given to the news media while he was still hearing the case, in violation of the Code of Conduct for US Judges.[13] Judge Jackson did not attend the D.C. Circuit Court of Appeals hearing, in which the appeals court judges accused him of unethical conduct and determined he should have recused himself from the case.[14]"
So yes, Jackson said some stuff about Microsoft, it was appealed and thrown out.
Rob on May 16, 2008 11:23 AM"However, the appeals court did not overturn the findings of fact. The D.C. Circuit remanded the case for consideration of a proper remedy under a more limited scope of liability. Judge Colleen Kollar-Kotelly was chosen to hear the case.
The DOJ announced on September 6, 2001 that it was no longer seeking to break up Microsoft and would instead seek a lesser antitrust penalty."
Rob on May 16, 2008 11:25 AMJeff, I love your writing, but seriously, do some Open Source development. You're so close to understanding it, but really you have to get involved with it, then you'll be able to connect the dots. And then you'll be the best blog on the Net.
Max Howell on May 16, 2008 11:53 AM@JimmyBob
Hang on a minute.
There are no Amazon referral links in this post.
Hahaha... nice one.
Claudiu on May 16, 2008 12:01 PMNice work
Omar Abid on May 16, 2008 12:25 PMIt's the ultimate "let the market decide". The market can take your exact product and move it into a different direction.
engtech on May 16, 2008 12:37 PMI like the freedom offered by this model. While forking might have the disadvantage of reinventing the wheel sometime, it does give the developers absolute freedom to work on what they like doing.
Another famous fork is Gnome/KDE. Also, one can mention Compiz/Beryl, that later merged back into Compiz Fusion.
That timeline certainly is interesting. Of course, it's also outdated, more distros have been released since 2007. Anyone interested should head over to distrowatch.org to see them sorted by popularity. Personally, I prefer Arch :D
Jean on May 16, 2008 12:51 PMI noticed that the Pidgin 3rd party plugins page doesn't list the Entry Area Manual Sizing plugin... you have to grab the .dll or .so directly from the plugin's Trac page on developer.pidgin.im: a href="http://developer.pidgin.im/ticket/5296"http://developer.pidgin.im/ticket/5296/a
Powerlord on May 17, 2008 2:24 AMI'm more into Miranda IM than pidgim. Miranda is more plugin oriented, almost every UI element and most non-UI are implemented in plugins. If you think about it is not better for open source software to be this way? If you consider every package to be a plugin won't linux be this way too?
Hoffmann on May 17, 2008 2:47 AMI think a lot of people here are missing the entire point of forking. If the pidgin design issues were really that bad, something would have replaced it long ago. That's what forking is all about. Remember, for every feature you hate it's well possible there are thousands of users who actually like it.
For my part I got tired of resizing my text input window myself and just kept it at the minimal size, reducing the usability since when I had to type long bits it was hard to go back to what I wrote. Now it's autoresizing and I must say I really like it.
What I find offensive in this thread is not that some people like it differently (there's something to be said for that) but that they insist that it's the One Right Way(TM) and we should all just ascribe to their point of view. (for instance read spook's comment in this thread) I guess that's where all those religious wars related to forks come from. Perhaps that is even an inescapable part of forking: you need that sort of silly outrage at some feature you hate to actually motivate you to put all the work in.
As an aside, in the case of pidgin, they've been really brave about changing the interface to be better designed, easier to use and better on the eyes. And usually where there is a feature you don't like or don't have plugins are available or can be written to change that for you. So funpidgin is really looking like an evolutionary dead-end to me. Well, maybe unless they implement a REAL feature and put webcam support in it or something.
wds on May 17, 2008 6:27 AMHoffman:
Linux's kernel is monolithic rather than a microkernel. While there are dynamically loadable kernel modules for drivers, the majority is one large binary.
@Powerlord
So a 1.8MB kernel forms the majority when there are 173MB of dynamically loadable kernel modules on a stock ubuntu hardy kernel? I might be wrong but I thought that the dynamically loadable modules formed the majority.
That looks like a chart a saw a few years back showing the succession of churches since the church of England from the Catholic Church. So yeah, I guess the church has been forked as well.
That aside, I agree, "we're legally allowed to fork but technically roadblocked."
Nate Nead on May 17, 2008 10:53 AMEtan Reisner, stop that crazy fight and move on to more serious business: make available a way to stop the freaking multicolored nicknames in pidgin chats with multiple users. I'm going BLIND over those colors.
Jesus T. Christ.
Porcino on May 17, 2008 11:13 AMDigsby FTW
Dump pidgin it doesn't hold a feather to The Digsby (haha)
@ka2:
You're right, I phrased that badly. I meant that the majority of operations that a kernel is expected to do is contained in one large binary.
@N: pidgin is already like that. There is a text-only UI that uses the same underlying backend.
Nicolas on May 19, 2008 3:20 AMI like that the image says "feel free to modify".
Because "GNU/Linux" is an abomination, and that penguin is stupid, and always has been.
Sigivald on May 19, 2008 3:21 AMI'm surprised the broohaha over Firefox 'awesomebar' and Likewise its google-isation and other financial influences hasn't produced a fork.
Then I realised what a PITA it was to even compile the code, nevermind make amendments (in accordance with all due copyright etc).
As a geek I thoroughly enjoy cruising the various Linux distros to find one that works on my old hardware (I gave up hope of wireless networking of course). I like that when I try on distro and don't like it, there are so many alternatives. On the downside, there are soooo many its nigh impossible to hope to find the ideal one.
Also, perhaps off-topic, but it is a myth that "open source" means "open" in any meaningful way. Open, accessible source solutions would be my preference; not just allowing the code to be reviewed and modified, but actually encouraged. Let the various forks work out the issues themselves, feeding back to the communities, rather than filing bug reports like "disable awesomebar hidden preference", which aren't bugs, but a pretence at openness and transparency.
Doug on May 19, 2008 8:36 AMThe logical choice would be to separate the GUI from the back end and make it skinable.
N on May 19, 2008 1:51 PMHaha debian should taken down the list, it slowly become the most unsecure distro. Openssl r0fl, uberpwnage for those who know what to do.
Yeah big fucking tree, but beyond the big project what we all know, the other smallones either dead, unsupported or noone uses them like zenwalk.
Since noone going to rely on a distro which not backed up by community, people just won't use it, why would they?
This tree is stupid, it should rather start it from 2008 and only with the big distro names.
salvage on May 21, 2008 2:24 AMHaha debian should taken down the list, it slowly become the most unsecure distro. Openssl r0fl, uberpwnage for those who know what to do.
Yeah big fucking tree, but beyond the big project what we all know, the other smallones either dead, unsupported or noone uses them like zenwalk.
Since noone going to rely on a distro which not backed up by community, people just won't use it, why would they?
This tree is stupid, it should rather start it from 2008 and only with the big distro names.
salvage on May 21, 2008 2:24 AMHere's a listing of the software freedoms:
http://www.gnu.org/philosophy/free-sw.html
The 0-based numbering probably comes from an irrational denial that 0-based indexing of array elements is not intuitive.
James Justin Harrell on May 22, 2008 3:25 AM@David W: Not all KHTML devs have switched to WebKit project. In the case of KHTML and WebKit, the KHTML devs are still trying to make synchronization between two projects easier. And for KHTML and WebKit, they had a really a hard beginning, mostly due to Apple's attitude. But fortunately, the condition is much better now (at least Apple's attitude towards open source).
fred on May 22, 2008 5:43 AM@Peter Palludan
The LOTR ORTRTA is an anti-model, in my reading of the trilogy.
Ted on May 22, 2008 7:07 AM@David Lessnau:
Sorry to contradict you, but you are WRONG, way wrong, in too much levels.
Microsoft has an enormous grip over PCs, the programs they run, and the users who run them. They *are* a monopoly (convicted twice for this, actually, by both the US justice system and the EU one).
And yes, there are enormous barriers to entry in the operating system market. This article may explain it better than me:
http://www.joelonsoftware.com/articles/fog0000000054.html
In essence: normal users (exclude geeks, developers and nostalgia-imbeded guys) don't run an OS for the sake of it. They couldn't care less for them. They more or less care about the applications they use. Which leads to what they really care about: getting their jobs done and move on.
Spolsky argues in this superb article that you won't have may developers code for your new OS until you've got plenty of mortal users. And common, mortal users won't go to your OS till it has plenty of apps. Chicken or egg?
I believe ReactOS will be much more popular than all Linux distros taken together when they finally get to the 1.0 release - an open source OS that automagically has millions of programs it can run!
You are not analysing one extra possibility of a fork, original and fork die. due to the fork, users split, and because of lacking of critical mass on both sides they abandon projects to some equivalent.
It could be the case in phpnuke case with postnuke (one upon a time, phpnuke was the most successful), but now it's joomla.
Also popular as a way to fashion
Levis Jeans on August 19, 2009 1:29 PMI think the bigger lesson to be learned is to simply give the end-user the option to do what they want, whether through a GUI, a hidden option buried in a menu, or at the worst case, a fork.
I only read about half the ticket thread, and maybe I missed something, but I gathered that this issue had less to do with the textbox and more to do with the line in the sand between the programmers and the bug reporters. At some point, you eventually have to say no or you'll be tweaking the product forever.
Aston on February 6, 2010 10:25 PM"Theres no way that the rats nest of linux distro's pictured at the top will ever topple Bill or even result in one or two very strong competitors."
We'll see. Ubuntu looks like it's on the way, led by benevolent dictator Shuttleworth. More to the point, though, Windows is competing against its previous incarnations. Toppling MS might become a moot point in the next decade or so here, as the OS rightly fades into the background for the consumer and the commodity enterprise server markets. We're not going to be paying $100 per license for Windows 2018. That train has sailed.
Here's an interesting one just getting off the ground: I think we're starting to see an OLPC fork. Mary Lou Jepsen, Walter Bender, Ivan Krstic, have all left over problems with Negroponte, problems with losing the plot, the Windows XP deal, opportunities to commoditize the XO display technology, etc. When a project like OLPC loses its way, a fork is possible. With all the publicity for the project, it could be quite the story going forward.
Ron on February 6, 2010 10:25 PMBah, Fork this!
Spoon on February 6, 2010 10:25 PMXorg fork is an interesting example in that the major distributions account for the vast number of users, unlike Pidgin where end users decide what fork to use. Relatively few people made the decision to change the distribution, and caused almost everyone to switch to a new "fork" very quickly.
The change was also largely driven by license and philosophical considerations, and almost not at all by technical considerations.
Anon on February 6, 2010 10:25 PMWhere I work, we have a mantra, "Anything for the customer," but we do not implement it. As usual, whenever a customer has an idea, bigboss says, "why don't we do this; it's just adding one silly button, and that can't be hard." "Oh, and by the way, make it flexible, yet simple to use."
The only thing that gets us by without pulling our hair out is that we're woefully understaffed, and being interrupt-driven, we know that all we have to do is wait a little bit before some other idea pops into bigboss' head, and we're off the hook for the previous idea.
Leon on February 6, 2010 10:25 PMThe comments to this entry are closed.
|
|
Traffic Stats |