embracing open source

Upload: wincentc

Post on 09-Apr-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/8/2019 Embracing Open Source

    1/7

    Wincent Software for your Mac

    Products

    Desktop productsSynergy

    Synergy Advance

    WinSwitch

    Developer products

    atosym

    Command-T

    Hextrapolate

    Install

    Walrus

    WalratWincent Login Tool

    Wincent Strings Utility

    WOPublic

    WOTest

    Server products

    Bansshee

    Wikitext

    Blog

    Snippets

    Tweets

    Wiki

    Forums

    Support

    About

    Search

    log in

    Home Blog Embracing open source

    Embracing open source02/07/2009 by Wincent Colaiuta

    Back in March Eric S Raymond made some controversial statements about how we don't need the

    GPL any more. His basic argument was that open source has already "won", it produces better

    software than closed source processes can, and there is no need for reciprocal licenses (like the

    GPL) which "punish" people for trying to take open source code closed, when the market itself

    will carry out that "punishment" in any case.

    The open source process is better

    wincent.com: Embracing open source https://wincent.com/blog/embracing-open-source

    1 de 7 08/01/11 16:08

  • 8/8/2019 Embracing Open Source

    2/7

    While you could argue the finer points, I think Raymond is basically right. One of the most

    important affirmations here, and one which may need some clarification, is that open source

    processes produce "better" software.

    I'm firmly convinced of this, but it's an affirmation that requires some explanation in the face of

    the many examples of "best of class" closed source software which are both more popular

    (numerically) but also demonstrably and objectively superior.

    As a desktop OS, most users would agree that Mac OS X (mostly closed) is "better" than Linux

    (mostly open); note that here "better" really refers to the "user experience" for the average user.

    I've never used it, but they say that Oracle (closed) is better than even the most popular (MySQL)

    and most serious (PostgreSQL) open source databases. Although it has its flaws, few would

    disagree that Photoshop (closed) is better than Gimp (open). I could go on...

    As a software developer who has worked on both closed and open source projects, I don't think

    these examples of superior closed source products undermine the claim that the open source

    process is superior.

    There are many counter examples. The best version control system, in my opinion, is Git, which is

    open source. (Some may prefer others, but ask anybody what the best version control system is

    and chances are they'll tell you an open source one.) The best web server software (either Apache

    or nginx, depending on your needs) is open source. The best programming language

    implementations (take your pick among Ruby, C, Haskell, Python; pretty much any language you

    might choose) are all open source.

    The number of areas in which the best products are open source ones is growing rapidly. If you

    lurk around on the mailing list of one of these successful open source projects you'll soon be

    convinced of how well the process works. Somebody wants a new feature or a bugfix; the process

    enables that feature or bugfix to get addressed in the shortest possible timeframe. A tremendous

    agility is possible because people can become involved immediately and for as long as is

    necessary; there's no need to sign contracts or hire new employees. The process works.

    It's only natural that programmers are going to want to work on the best projects, so this tendency

    is only going to get stronger with time. As Raymond points out, the upper limit on the resources

    that a private company can bring to a proprietary product will always be dictated by their ability to

    hire talent; whereas open source, in contrast, has no such limits. The most popular projects will

    only grow more popular, and that popularity will attract programming talent from an essentially

    unlimited pool in a self-reinforcing cycle.

    If you've observed the software marketplace over the last decade you'll have seen this dynamic in

    action. It is very difficult for a company pushing a closed source solution to compete with the open

    source model. Companies themselves recognize this: that's why so many of them are opening up

    previously closed code bases, or building products on top of existing open source projects (think

    Java, Solaris, a large number of the tecnologies in Mac OS X, and so on). This is also why so

    much of the "talent" responsible for the code in projects like Linux is actually employed by big

    corporations, and is paid to work on those open source projects.

    The victory of open source

    I've been watching this trend now from my perspective as both a user and a producer of both

    wincent.com: Embracing open source https://wincent.com/blog/embracing-open-source

    2 de 7 08/01/11 16:08

  • 8/8/2019 Embracing Open Source

    3/7

    closed and open source software. To me it's absolutely clear that the "sea change" has already been

    produced. Open source has "won".

    What does this actually mean? In practical terms, it means that the number of open source projects

    will continue to grow; as a proportion of all software and with a corresponding growth in its

    relative userbase. It also means that the number of open source projects which attain "best of

    class" status in their field will continue to grow too.

    But more profoundly than this, it also means that the way people think about software has changed

    and will continue to change. In the not-too-distant future, it will become unthinkable to propose a

    closed source solution rather than an open source one, akin to proposing making cars out of wood

    instead of metals and plastic. More and more people will start to think of open source software as

    inherently, technically superior, and more and more people will consider the open source process

    as "the" only sensible way to produce software.

    There are people that have thought this way for a long time now; the Richard Stallmans of the

    world who didn't so much foresee that this would inevitably take place as actually make it happen.

    What we're seeing now is how the everyday programmer on the street is starting to realize that

    people like Stallman were right. You no longer have to be a visionary to realize that the open

    sourceprocess is "the way" that software should be written.

    The next domino to fall will be the various strata of business, management, marketing, investors,

    government. In the not too distant future open source will enjoy its new, unquestioned status.

    Scientific knowledge is developed collaboratively, "out in the open". "Software knowledge" is

    really no different, and as time goes by more and more people are going to accept that fact.

    It's true that companies like Microsoft will continue to sow Fear, Uncertainty and Doubt about

    open source. Its revenue model, after all, is built around proprietary, closed source software. Itrightly perceives open source as a huge threat.

    Some companies, like Apple and Google, have chosen to adapt to these changing times by

    embracing hybrid models. They strongly push open source code: not only do they take advantage

    of existing open source projects, they also publish large bodies of their own code as open source.

    While they do continue to play some of their cards close to their chests, keeping some key pieces

    of their portfolio as closed source, you can rest assured that as the market evolves they will

    continue to adapt and ensure that they're always "open enough" to take advantage of the benefits of

    the open source process and ecosystem.

    I don't think the strategy that Microsoft is currently employing is a very prudent one. They seem to

    be clinging to the hope that they can compete with open source just like they would compete with

    a closed source competitor; they think that if they try hard enough they'll be able to "crush" their

    competitor, and once "destroyed", the war with open source will be over and they can go back to

    making shiploads of money again.

    But it doesn't look like this is going to work. Open source so far has proved resilient to attacks on

    the legal/patent front, and on a technical level as well. The only playing ground on which

    companies like Microsoft can still hope to win some battles is the marketing one, and even there

    they are fighting an uphill battle in the face of open source's advances and growing acceptance in

    so many areas. Microsoft has near-unlimited funds for marketing, but open source has

    wincent.com: Embracing open source https://wincent.com/blog/embracing-open-source

    3 de 7 08/01/11 16:08

  • 8/8/2019 Embracing Open Source

    4/7

    near-unlimited programming resources.

    The trouble with Microsoft's strategy is that they are painting themselves into a corner. A "fight to

    the death" strategy isn't such a bright idea when you're on the losing side. Each day that passes and

    Microsoft doesn't follow the examples of companies like Apple and Google is a lost opportunity.

    They are making nominal, symbolic movements towards open source and open standards, but they

    need to move much faster. Mere window-dressing will not be enough to ensure their affluence, oreven their survival, indefinitely.

    Consecuences for the small guy

    So what does this all mean for the independent softare vendor, the lone programmer such as

    myself working on small projects?

    If the open source process is "the" most sensible method for creating software, then a couple of

    decisions need to be made:

    Whatlicense should code be made available under?1.

    How (or how much) and whatcode should be made available as open source?2.

    What license should be used?

    Of these questions, the first question is probably the easiest to answer.

    In short, Raymond is basically right: the battle has largely been won and the protection of the GPL

    is no longer really needed to shield the little guy from the corporate behemoths. I wouldn't go so

    far as to say that we should actually scrap the GPL; I think its existence and use by high-profile

    projects like Linux will continue to serve as a visible check against corporate greed. But for allpractical purposes, pretty much every new open source project should just choose a permissive

    license like the BSD license. There is simply no need for any more protection.

    By using a permissive license like the BSD you maximize the chances that someone else will pick

    up your code and run with it; this can lead to more people finding out about it, which should be

    one of your primary goals (the larger your user base and developer community, the more potential

    for growth and innovation). Ultimately, having your code in widespread use can lead to all sorts of

    opportunities, including employment opportunities.

    How much (and what) code should be opened up?

    This one is pretty easy to answer too. Common sense tells us that we should open up, simply, "As

    much as possible".

    What does this actually mean in practice? In an ideal world you could open up literally everything

    and live off of sponsorship, donations, and support licenses, but in reality for the majority of small

    software vendors this is not yet a financially viable model (donation rates tend to be very, very

    low).

    So in practical terms the best one can do is to follow the lead of the big boys, the Apples and

    Googles of the world, and open up "as much as possible" while always keeping something closed.In general you can open up the generic or supporting parts of your code base while keeping some

    wincent.com: Embracing open source https://wincent.com/blog/embracing-open-source

    4 de 7 08/01/11 16:08

  • 8/8/2019 Embracing Open Source

    5/7

  • 8/8/2019 Embracing Open Source

    6/7

    closed/proprietary.

    Provide an easy-to-use, open bug tracker. This makes what you're working on transparent

    even for non-coders, and makes it possible for them to collaborate with the development

    process via bug reports, testing and suggestions.

    Provide multiple ways for users to "see" what work is being done on the code. That

    might mean writing blog posts about what you're working on, publishing commit logs of the

    changes going into the code base, offering "nightly" builds so that people can easily try outsnapshot builds of work in progress, posting to Twitter or a similar section on your own

    website, or providing RSS or Atom feeds of any of the above.

    Provide multiple ways for users to make their voices heard. Don't hide your email

    address for fear of spam; instead make it easily visible on your site and let your spam filter

    worry about the consequences (trainable filters are now good enough that you can and

    should do this). This is an invitation to communicate with you rather than a "do not disturb"

    sign hung on the doorknob. Make it easy to open support tickets or bug reports, even for

    anonymous users. Provide forums; there are many users who prefer this mode of interaction.

    Here again you should lower your barrier to entry by allowing even anonymous posts let

    technology deal with the spam problem rather than forcing your users to go through aninconvenient registration process or offering a more convenient authentication method

    such as OpenID.

    Note that you can start implementing many of these points before you even open up a single line

    of code. Doing so will enhance the transparency and "openness" of your processes, even for those

    portions of your codebase which you may choose to keep closed. The benefits of this transparency

    should be immediately apparent: users feel more involved and empowered, more able to influence

    the direction of the product, more included and respected. If nothing else this is a marketing and

    public relations win, but it should also improve the quality of your product. It might also improve

    your blood pressure, because it will improve the quality of your relationship with your clients and

    make your interactions with them more pleasant and less stressful.

    Making the transition

    Believe it or not, I've been working on a draft of this article since 2007. Yep, for that long I've felt

    that I had something important to say about open source.

    I believe in open source, not really because of the "politics of freedom", but because I believe it's a

    technically superior process. Linus Torvalds is famously reported to have said, "given enough

    eyeballs, all bugs are shallow". But even if you're working on your own and are a pirate with one

    eyeball, one patch and a hook for a hand, you'll probably write better code if it's for publication asopen source.

    So while I've often talked on this weblog (and on my old one) about how I like open source, and

    while I've already released a lot of code (much of which you can browse at

    http://git.wincent.com/), behind the scenes for a long time I've actually been working towards a

    much more comprehensive commitment to open source. (If you want, you can go back and read

    articles that I wrote in July 2005, April 2006, September 2006 and January 2007 to see how my

    position has gradually evolved.)

    I've been whipping frameworks into shape, making them fit for public consumption, and gradually

    rearchitecting my applications so as to whittle them down to lean cores and be able to move thebulk of their functionality out into plug-ins that can be made open source.Allof my applications

    wincent.com: Embracing open source https://wincent.com/blog/embracing-open-source

    6 de 7 08/01/11 16:08

  • 8/8/2019 Embracing Open Source

    7/7

    are going down that road.Allof them have already begun the journey. And I am determined to

    push allof them as far as I can down that path while still remaining viable as a business.

    And on the process level I've been improving the website to lower barriers to participation (and as

    I've alluded elsewhere, the source code for the site itself will eveventually be going public; from

    the very first commit back in 2007 the code has been prepared with that eventuality in mind). This

    post has largely been about code, but my interest is in open processes and open companies ingeneral. I'll have more to say on that topic in future posts.

    Tags

    developmentopen.source

    all posts

    Comments

    Add a comment

    add a comment

    contact

    legal

    wincent.com: Embracing open source https://wincent.com/blog/embracing-open-source

    7 de 7 08/01/11 16:08