|
|
Subscribe / Log in / New account

Open vs closed source software: The quest for balance (Voxeu.org)

Open vs closed source software: The quest for balance (Voxeu.org)

Posted Nov 2, 2010 16:51 UTC (Tue) by njs (subscriber, #40338)
In reply to: Open vs closed source software: The quest for balance (Voxeu.org) by mti
Parent article: Open vs closed source software: The quest for balance (Voxeu.org)

> monotone and company are copies of BitKeeper

You have this one pretty much backwards, actually. I was there at the beginning of monotone, and *not* copying BK was a high priority. (Not that there was much danger, since we were forbidden from downloading or using BK anyway. But we had some vague idea of how it did various things, and that made those approaches *less* attractive.). We didn't really learn much about how BK worked until after Tridge did his reverse-engineering, and even then it was a mix of "huh, interesting idea, but..." and "they do *what*? WHY?". For instance, the most important design idea in monotone was content-addressed snapshots + chained hashing, and BK doesn't use crypto at all. (The most important design idea in BK is the use of SCCS weaves, but (1) weaves are not as awesome as Larry thinks they are, and (2) FOSS folk reinvented the important parts before Tridge's work.) To the extent that BK and monotone are similar, I think it has more to do with convergent evolution than anything else. (There were other projects around then using other approaches, like Arch -- but you don't remember them now.)

Arguably git/mercurial took monotone's ideas about history representation and combined them with BK's approach to branch tracking (the whole clone-to-branch workflow), but then, darcs was already using that approach, and I don't know that they got it from BK either.

If anything, the development of modern VCS systems is a great success story for FOSS. It's not just an area where we developed better software, it's an area where we developed better theory.

But it doesn't make much sense to talk about whether "proprietary software" or "FOSS" are better at innovation -- neither of them is a development model! BK was basically Larry's project; monotone was Graydon's project, bzr was Martin's, arch was Tom Lord's, darcs was David Roundy's, codeville was Bram Cohen's, git was Linus's, hg was Matt Mackall's.... plus other interested people in all cases. Each group built the best software they could, and Larry's penchant for proprietary licensing did not really give him any advantages or disadvantages in doing good distributed systems design. The proprietary licensing + business model *did* allow him to attract contributors a different way (by hiring them) and get more hours per week of contribution... but OTOH, it also meant they were stuck with a product to support, while the rest of us were exploring a larger space of ideas and eventually found better ones. (While Larry raged, made misleading claims about how BK worked, and generally tried his very best to hold the whole field back!)

There are certainly advantages to an organizational structure that lets one person say "okay, we're throwing a thousand hours of developer time into this vision I just wrote on a napkin" -- it's true that they'll tend to get to some approximation of that vision faster than many other organizational models. But I suspect the main "advantages" of proprietary software with regard to innovation is (1) there's more proprietary software out there period, so no wonder if there are more innovative ones in *absolute* terms (if that's even true -- most proprietary software is not very innovative!), (2) if someone does have an innovative idea like, say, PageRank, they're still more likely to take it proprietary than to release it as FOSS. That doesn't reflect the superiority of the proprietary model, just its attraction.


to post comments

Open vs closed source software: The quest for balance (Voxeu.org)

Posted Nov 2, 2010 17:59 UTC (Tue) by mti (subscriber, #5390) [Link] (3 responses)

Sorry, I didn't mean copying as in copying implementation details but rather as copying the idea of a useful tool. In this case the idea is a distributed version control system. And yes I know BitKeeper wasn't the first DVCS but I think it was the first one that got a large mindshare in the open source community. I don't know of any open source DVCS before BitKeeper.

Therefore I think it is fair to say that all open source DVCS are copies of BitKeeper. Or rather the idea of "lets write a DVCS" was inspired by the fact that BitKeeper already existed and was well known.

Would monotone or Arch have been implemented if BitKeeper hadn't existed? (It is an honest question. If the answer is "yes" my argument falls.)

Btw, was content-addressed snapshots + chained hashing a monotone invention or had it been used before in the context of [D]VCS.

I absolutely agree with your last paragraph.

Open vs closed source software: The quest for balance (Voxeu.org)

Posted Nov 2, 2010 19:34 UTC (Tue) by Trelane (subscriber, #56877) [Link]

Would monotone or Arch have been implemented if BitKeeper hadn't existed?
The original author and maintainer of GNU arch was Thomas Lord who started the project in 2001.
The decision made in 2002 to use BitKeeper for Linux kernel development was a controversial one.

Open vs closed source software: The quest for balance (Voxeu.org)

Posted Nov 3, 2010 0:51 UTC (Wed) by njs (subscriber, #40338) [Link] (1 responses)

> the idea is a distributed version control system

Not to be contrary, but I'm not sure this is an "idea" in any meaningful sense. Whether or not a VCS system happens to be distributed (i.e., support some kind of disconnected operation) is much less important than its history representation, merge algorithms, branch tracking, storage mechanisms, UI, etc. And depending on what choices are made for these, the word "distributed" ends up meaning very different things.

BK is distributed because they make copies to do branching, and because the traditional kernel development model is distributed. Monotone was distributed because it was designed with integrity as a core goal and lots of copies keep stuff safe. (Note that in Monotone, branches themselves are distributed, while in the BK/git/hg/etc. approach each branch exists in only one place.) Codeville tried to copy the basic SVN workflow, while also supporting a disconnected commit mode. I'm not sure why Arch was distributed; maybe because Tom Lord places a high value on a system's ability to survive the collapse of civilization? I think it's mainly an accident of history (and the fact that the word "distributed" is very sexy to geeks!) that it became the generic tag for all modern VCS systems. It's like saying that Unix isn't innovative because there existed previous OS's that had things called "filesystems" in them.

I can't say what exactly was going through Graydon Hoare or David Roundy or Tom Lord's mind when they started sketching out system designs, though! I suppose you could ask them if you're curious.

> Btw, was content-addressed snapshots + chained hashing a monotone invention or had it been used before in the context of [D]VCS.

It was a monotone invention, but I'm not sure whether monotone was the *first* place it was invented :-). Codeville used a similar system (instead of hashing the snapshot + the history pointer, they hashed the *delta* + the history pointer, which is a bad idea because it bakes your delta algorithm into your history representation, but otherwise has similar properties). OpenCM may have had something isomorphic too, I'm not sure. (Unfortunately, while OpenCM was FOSS, it was developed as an academic project and never really influenced anyone else much, AFAIK.)

Open vs closed source software: The quest for balance (Voxeu.org)

Posted Nov 3, 2010 7:37 UTC (Wed) by mti (subscriber, #5390) [Link]

Ok, thanks for your insights. Seems like BitKeeper/monotone etc was a bad example.

Maybe my other examples are bad to;-)

Open vs closed source software: The quest for balance (Voxeu.org)

Posted Nov 10, 2010 22:10 UTC (Wed) by jeremiah (subscriber, #1221) [Link]

I've been struggling for a number of months on the OSS/CSS issue for my own code/company. I'd like to feed my family and maintain standard of living. At the same time I'm very interested in giving something back to the community which has enabled me to feed my family and myself for the past 15 years. Everytime I evaluate the situation the licensing that I come up with becomes less and less restrictive. To the point that I think and LGPL solution w/o copyright assignment is best and trying to build a support buisness around it. It's been a difficult process, and maybe it'll never really fly, but I have a day job with a company that will let me do my own thing while doing their thing. Going OSS will reduce my potential income, but It'll be a lot more fun, and maintainable if I can get a community around it, as opposed to hiring tech support staff, and raising capital. From what I've seen over the years it seems that if you make something useful that addresses a complicated problem, people are willing to pay you for your dedicated support, even if they can get it for free.


Copyright © 2025, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds