Posted Mar 5, 2004 16:55 UTC (Fri) by Duncan (guest, #6647)
[Link]
Now that you asked... <g> (Beware, in my regular usenet groups I'm known for my long posts, <g> but also for explanations that allow some folks to understand the target principles for the first time.)
A practical summary can be seen in the fact that I'm still talking about doing a Gentoo install, not Zynot, and not running away from both of the as fast as I can go..
First, some background on my approach and personal views going in..
The research here was strictly for one purpose, that of seeing whether I'd feel comfortable using and ideally ultimately contributing back to Gentoo (or Zynot) Linux. I wasn't trying to determine who was right or wrong, or what someone else's best choice might be, but what my personal one should be, given that I hold certain views and prefer certain development approaches.
I switched from MSWormOS (a nickname I came up with myself, which itself says a lot about my views) about two and a half years ago, now, about time I would have otherwise switched to eXPrivacy (ditto). I'd called myself a "hobbiest programmer" for some years on the platform, and dumped ten years on MSWormOS to switch to Linux, because I saw where MS was going, and the water finally got to hot for THIS frog, who jumped out. This, from someone who stood in line at midnight for what I now term the Lose98 release, and who ran every public beta for MSIE/OE from version 4 thru 5.5. (I skipped the IE6 beta as I was researching switching to Linux by that time, and was spending my time on that so didn't have it to spend on an IE beta, which by that time I considered a dead end anyway, tho I did install IE6 release when it came out, shortly b4 I switched.)
Since then, a whole new world has opened up. It's at times frustrating how slow I seem to be on the take-up, given how much there is to learn, and I wish I'd gotten to it years earlier. OTOH, some general principles such as the concepts of widgets and windows, and the concept of threading I was recently explaining when someone asked about threads in response to a kernel article, have carried over.
My views in the last two and a half years have only gotten stronger. I've been known to say in regard to proprietary-ware that I didn't dump TEN YEARS worth of MSWormOS, to come to libre-ware Linux, only to start using proprietary-ware once again! I'm pragmatic in the sense that I realize for the time being anyway that the two types of software continue to exist together, and some may have need of proprietary software temporarily, as they move toward the libre-ware side longer term. However, make no mistake about it, I believe in and wish to put my time, money, and energy behind the ultimate world domination of libre-ware. A few months ago, during the upgrade to AMD64, I finally removed the last known traces of proprietary-ware from my computer, including both the Lose98 installation I'd saved, AND the proprietary-ware NVidia drivers (which would have been removed earlier had I not needed them to be able to use the second video out on my card, now replaced with an ATI -- the libreware ATI drivers DO drive both outputs on a dual-output card).
That covers the views. The environment I prefer for my desktop (server considerations are obviously different) is one of constant update, as only possible on open source. I shun the scheduled release idea, save for "snapshots" which provide a convenient freeze-frame with which to make an initial installation. Thus, after my initial install of Mandrake 8.1, after some time familiarizing myself with it, I discovered and immediately began using Mandrake Cooker, the continously updated alpha distribution.
Now to my research..
The above sounds like Gentoo already, doesn't it? Of course, the thing Gentoo is famous for is its from-source nature. None of the press about it says anything about the development philosophy or social contract or any of that. SuSE's position is fairly well known, as is Red Hat's and Mandrake's, but until I started my research, I knew nothing about Gentoo's stand on the libreware ideals I hold so dear at all. This was my biggest initial question. Would I be comfortable as a user and hopefully eventual contributor to Gentoo, as someone with strong libreware views? Fortunately, I found the answer to be a resounding *YES*, at least going from what I saw on the web site.
However, someone in one of the newsgroups I'm a regular in happened to mention this fork thing, and knowing that what one sees on a web site isn't always indicative of the real person or company behind the web site, and knowing there's always two sides to every story, I began to wonder. It was clear to me I couldn't continue to increase my interest in Gentoo without resolving to my own satisfaction what significance this might have to me, someone interested in ultimately participating in any distribution I choose.
Actually, I didn't have to go anywhere NEAR as far into it as I expected I might, as I found all the answers I needed directly in the Zynot "Reasons for Forking a Linux Distribution" document, here:
http://www.zynot.org/info/fork.html
In short form, given my personal ideals and preferred environments, after I read the entire page, AND the sequal it points to, I found myself asking "With a presentation like that, who needs enemies?"
I could tell right from the introduction that I'd probably have issues with it, from the big point he made about being interested from the beginning in commercially exploiting the embedded side. As I said, I'm pragmatic enough to realize that proprietary solutions will exist for some time, and I also have NO problem with someone making money off of Linux and libreware in general. However, someone putting THAT much emphasis on the money aspect, when my motivation is on the ideals side, quite apart from any money I may happen to make doing what I believe in, just isn't going to be someone I'm interested in following very far. Never-the-less, I both completed that piece and overviewed the next one, ensuring that I knew his side of the story and giving him every reasonable chance to change my mind.
Further in, there were several points at which it was painfully clear to me that his interests and my interests diverged, even while from what else I've read, I realized his approach might very well fit the embedded market quite well. (Thus, again, not wrong and right, just "different".)
One, his characterization of all his time being "sweat equity", while Daniel's view (as Zach portrayed it) was that "many people volunteer their time and services" outside of any specific contracts. While I can empathize with Zach's disappointment and hurt under the circumstances, that does NOT change the fact that I find Daniel's point, even as Zach portray's it, absolutely valid, in NO SMALL measure because that's EXACTLY the attitude I'd take under the circumstances, one of "volunteering" my time and energy outside that which I'd specifically been contracted to work on. Not only do I take that attitude in regard to Linux and libreware in general, but I EVEN take that attitude at work, which is unrelated to my HOBBY of computing, and which I don't specifically care significantly about. I simply believe things work better in general if everybody works together, and for me, that includes doing what I can quite outside of being PAID for it, just to keep things running smoothly for everyone. Yes, I recognize that such an attitude sometimes gets taken advantage of, but I STILL choose to have it, because I believe in something bigger, that despite someone's greedy intentions, cannot be taken away from me. Those that take advantage of such things eventually tend to disappear due to their own actions or "environmental factors", and if a workplace and the people in it were sufficiently NOT that way, I'd not be happy working there and would find someplace else to work. Thus, while I empathize with Zach, I empathize with Daniel even more, and the hurt he must have felt finding out that someone he THOUGHT believed in something enough to put significant volunteer time into it, actually had ulteriour motives. Of course, for all I know they are BOTH greedy bastards, but that doesn't really concern me. What does, is that this was a point AGAINST my participation in Zynot, and either neutral or FOR my participation in Gentoo, because Zach seems to have no concept of the idea of "volunteer" work that IMO so contrasts the libraware world from that of proprietaryware. Many if not most libraware developers do it in large part because they LOVE doing it, and would CONTINUE to do it, tho perhaps not to the same degree if they had to support themselves in other ways, WHETHER OR NOT they got paid for it. The same might hold true to SOME extent for proprietaryware folks, but to a much larger degree, for them, it's just "a job", the way the make money, and they do something ELSE for a hobby. (This, BTW, is why I believe the RIAA and friends are wrong.. Not everybody that sings in the shower has a voice folks will pay for, but the fact that we DO, without being paid, indicates that creativity WILL survive, WITH OR WITHOUT the record labels. How many garage bands out there are there that actually PAY money, for instruments, for gas, etc. in addition to the time invested in practicing, to be able to perform? Sure, some of these folks do it only in the hopes of making it big, someday, but you can't tell me that they'd all stop doing it if the album labels suddenly ceased to exist. I KNOW, because I compute for the same non-monetary rewards!)
Two, Zach constantly attributes to Daniel and the "gentoo-biz list cabal" elements of greed and trickery which he himself seems to display. There's the saying about seeing in others that which reflects from yourself. Now, I can't judge whether Daniel has that sort of thing planned or not, but what Zach ironically fails to see is that the GPL itself puts a limit on that -- as demonstrated by the very fork he's making. If all the allegations ARE true, then licensing all the Gentoo specific projects under the GPL is a pretty BIG mistake, because there's no "lock-in". The moment it gets to oppressive, there can be a fork. Again, the irony of all this is that Zach and Zynot are demonstrating this very fact, all the while claiming some big conspiracy on the part of Gentoo and saying how dangerous it is and that they are there to "save the distribution" as it were. Hogwash! (IMO, of course.) While there are possibly legitimate questions to be raised about the for-profit Gentoo-Games side and how it was formed, and Gentoo itself is indeed not yet a non-profit, the very fact that the GPL was chosen as the base license says SOMETHING about either their motives or their stupidity <g>, and one can't argue how Gentoo has grown and the size and at least reasonable openness of it's organization. The pieces simply don't fit, the way Zach is attempting to MAKE them fit. Again, even if he's right, the fact that it's all GPLed means that if it goes far ENOUGH out of the community interest, there WILL be a fork. It's happenned before, look at the history of SSH, for example, and THAT was a BSD style license ALLOWING the sponsor to take it all proprietary. With GPL, that couldn't have happened because all the community contributed material couldn't have been shifted to proprietary without the concent of the contributors. As I said, if that's the ultimate nasty scheme of Daniel and his "cabal", they were sure STUPID when they chose to put the Gentoo-unique distribution "glue" under the GPL. It just doesn't fit, and nothing Zach says can MAKE it fit.
Those two items are on the idealistic side. Number three is operating environment oriented. As I'm sure you know if you've been using Gentoo, better than I do just beginning to look into it, Gentoo fits the continuing updates with occasional snapshots model better than the hard "releases" model that better fits the proprietary-ware world, where development is done in secret and hopefully more polished "releases" are made periodically for public consumption and, they hope, for purchase. As I mentioned at the top, I like the continuously updated model myself. Of course, it isn't so convenient for the embedded world, where everything must be finely tuned to work together and assembled into a flash update, therefore naturally fittting the periodic release model better, so Zach's view here is understandable. However, I still found it disconcerting to see his emphasis (under "charting a new course", "business reasons") on..
a) A firm release schedule. A firm release schedule implies a release focused distribution, something that neither Gentoo nor I seem to be interested in. If that's his thing, and as I said, I can see how that would make sense for an embedded focused strategy, my question is why was he with Gentoo in the first place? I'm beginning to see why the split occurred..
b) A clear roadmap. Linus himself says he attributes part of the growth of Linux on NOT having such a roadmap, allowing the USERS and CONTRIBUTORS to shape where Linux goes, based on the needs THEY have. This seems more like proprietaryware top-down manager-speak than open source experience. Sure, a roadmap is nice, but open source develpers aren't afraid to tear it up and go with something else, if that's what the users are asking for and other developers are submitting patches for. Take a look at the personal history he outlines at the beginning, tho, and you see where it came from, he has proprietaryware roots and apparently never HAS gotten the hang of open source. Thus again, it's not surprising why he eventually lead a fork.. IMO, he needs to curl up with Eric S Raymond's The Cathedral and the Bazaar and other essays for a nice long reading session.
c) Prevention of feature-creep. Why? With continual updates and user oriented feature addition, yes, keeping the "bloat" out is good, but why NOT introduce that latest feature you have "sort of" working? Remember, release early, release often, the open source mantra!
d) Follow-through. He says select a release date, and allow only small delays. Again, why the emphasis on release dates? Where's the continual updates? Where's release early, release often? Where's the Linux kernel attitude of "it will be released when it's ready" in regard to REAL milestones? (Such milestones IMO aren't really the domain of distributions anyway, except for such things as adding support for additional architectures, but rather the domain of the projects a distribution assembles, KDE, X, the Linux kernel, etc. thus the continual updates model for a distribution as the individual components within it update or release THEIR milestones.)
Obviously, by this point, it's becoming quite clear that Zach and by extension Zynot and I could NOT be MORE incompatible. One has to wonder why he's in the open source community AT ALL, and ESPECIALLY Gentoo, given some of his beliefs and attitudes. No WONDER he's forking! It's also becoming clear that where he disagrees with Gentoo, I disagree with him, making me even MORE confident about my initial Gentoo optimism.
That said, many of the points he brought up about communication and delegation and fuzziness of domain apparently DID need to be addressed, and his actions WERE instrumental in bringing reform. From my point of view just coming it it's hard to say, but reforms WERE made, altho, naturally some changes would HAVE to be made with someone that big pulling out of the project.
As well.. in the second document there's a FAQ of sorts where the question is asked what Zynot's reaction to a fork might be, under the same circumstances. Zach says something there that I believe makes sense, and that I'd like to see in more projects, much as it's done in the kernel. He says he envisions and would like to encourage various "mini-forks" and gives some examples of where it might happen. He says given this "mini-forking", while still keeping everything within the same cooperating family, it'd be his hope that the need for a full major fork is averted. I'm not sure Zach understands the significance of that idea, given how he evidently misses some of the other big differences between open source and proprietaryware, but..
As I said, this is exactly the model the Linux kernel takes. Eric Raymond in some of his essays points this out as well. While MOST open source projects and the culture give one the RIGHT to fork, in practice and as the culture actually works, ACTUAL forking is generally HIGHLY discouraged, and taken as a sign of disrespect and offense re the current project leader. This, Eric says, could be one hold-over from the proprietary and strong core developer team era, before the full implications of the advantages of open source were fully understood.
Even within the stalwart open source community as lead by Stallman and others, there wasn't a recognition of the TRUE power of open source including the many. Another example here is GCC, which was while open source, developed by a small core group for many years. Along came a group wanting to open up development, and a somewhat friendly fork occurred, with the original GCC still being developed by the original core, and a new EGCS taking wider community contributions. Eventually it became painfully clear how much faster the community EGCS version was developing than the traditionally small core developed GCC, and the projects merged again, with EGCS becoming the new GCC 3.x, and the new more open community development model continuing. (Note that I really got into Linux and libreware only shortly after this, so I can't vouch for the accuracy of the above, but am going on my understanding of what I've read, including Eric's essays.)
Back to the Linux kernel. Part of the inspiration for EGCS was based on observation of the Linux kernel and how amazingly fast IT evolved, even by open source standards. As mentioned above, Eric attributes part of this to the "mini-forking" not only allowed, but actually ENCOURAGED, with the Linux kernel. Linus or his hand picked version lieutenants put out the only "official" versions, yes, but there are all sorts of -ac and -mm and etc mini-forks, besides the versions of the various distributions, and the testing space is made effectively that much broader. Each "fork" has its own publicly available patches which as they are tested gain adoption in other kernels, getting even MORE testing, until the best of them get added back into the official kernels. This is ON TOP of the already-faster-than proprietary evolution of the main kernel and its normal testing and feedback loop, compounding the evolution rate several times over.
This is just my opinion (and that of others like Raymond), but it seems a shame to me that so few open source projects take advantage of the same compounded evolution rate with the same techniques. It seems to me (and others) that friendly forking a la Linux kernel should be ENCOURAGED, not DISCOURAGED, and that the strong open source cultural repellance to the idea of forking, even under friendly terms, needs to be reexamined. Thus, seeing Zach's mention of "mini-forking" DID strike a chord in my mind, as its something I'd like to see more of. There, I agree with him. Unfortunately, he mentioned nothing about the kernel comparison or what happened with GCC/EGCS, nor did he mention ESR's essay on the subject, so I must believe he wasn't familiar with the idea nor had he really explored it or anything ELSE, it would seem, in open source, in any significant detail. Still, I gotta call it when I agree with his idea.
.. Like I said, I have a reputation for long posts. Hopefully, my reputation for clarity of explanation also comes thru in this one. <g> (And yes, it DID take me some serious time to write that... <g> However, as is generally the case, writing it helped clarify things in my mind as well, so it wasn't a waste even if nobody else appreciates it.)