Open source is hardly news any more. Yes, it saves money; yes, it offers permissive licensing; yes, it can in the long run be more adaptable and higher quality than commercial software. But I think the computer field has evolved to the point where we see even more value from free and open source software. As for Software as a Service (SaaS), it has proven a great boost to free software--and vice versa.
Software as a Service and free software
Nothing strives to make the news more than controversy, so let's give in to its appeal and take up the issue of SaaS and free software. Richard Stallman famously (and belatedly) excoriated services because users couldn't tell what the software was doing. Widely dismissed by others under the attitude of "I don't care what they do so long as I like the results," this is a valid concern.
It's true, I don't care what software Facebook uses for to show me People You May Know (it's always correct). The impact on me is too trivial to be worth my concern. But I'd get worked up if nefarious crackers or government agents exploited that software to invade my privacy.
Yes, when the stuff you're doing is really important, openness matters. I learned this at an inspiring talk I heard by a human rights researcher, which I wrote up in 2002 under the title Why Human Rights Requires Free Software. The same issues came up with software-driven voting machines. As for routine business There will come a day when Stallman is vindicated and some major business finds a legal reason to call on some service provider to reveal its source code.
But software hoarding, by web services or anyone else, is simply not as important now as is used to be for economic reasons I'll get to next. The real issue is access to data on the web services, as Tim O'Reilly and many others have pointed out. And the main question there isn't whether I can get access to my own data (I'll save a copy for myself) but how communities can benefit from the data they've collectively given to the services, a theme I raised near the end of 2006 in my blog The economic value of user contributions to Internet sites.
What's the real relationship between SaaS and free software? One of mutual support. Numerous observers have attested to this; one example is Saugatuck's study Open Source and SaaS: Vendor Insights and Issues. I don't have access to the whole study, but their summary states that:
- Cloud computing is central to open source vendor development and growth
- Open source is critical to the growth of both SaaS and cloud computing
These are eminently believable, even though a third finding ("SaaS providers are exposing themselves to significant licensing issues") sounds like typical anti-GPL FUD. We'd have to see the full study to know for sure. The whole point of the SaaS/free software debate is that free software licenses (with the exception of the little-used Affero license) permit the use and modification of software by services.
The happy cohabitation of SaaS and free software comes through even more impressively in an article "Engineering Rural Development" in the most recent issue (January 2009) of Communications of the ACM. Author Rapan S. Parikh points out that farmers, small enterprises, and NGOs in underdeveloped countries need data and analysis just as much as their richer counterparts. Services are starting to spring up to provide this data and analysis--perhaps over cell phones or delivered by hand out in the field--that no large software vendor would bother to invest in. And because these services run on shoestring budgets, free software is critical to their spread and to the economic growth of those regions.
We don't need your stinkin' software
Since free software became the 1980s cause célèbre, economics and markets have changed radically. First, commercial institutions have taken up much of the creation of free software. Linux and many other projects get resources from large companies. Microsoft, Google, and other companies create free software projects from the ground up. There remains a clear difference in license between free and proprietary software, but in every economic and social sense, the distinction has blurred.
This should help us should think less about the licenses and more about what's really happening in software, both proprietary and free. The costs have finally gotten so low that it is truly commoditized, more than the old proponents of free software ever imagined.
What do I mean by commoditized? It's gotten to the point where every programmer with an itch can create a new project and play the lottery for widespread adoption. And if you don't like somebody's stinkin' software, you go off and start your own project. The motto of the day is "Fork, don't fix."
Look at the crazy assortment of web frameworks available; while Rails dominated for a while, it's getting some strong challengers again. There are also too many Linux distributions to count, and too content management frameworks to seriously evaluate them all before making a choice. Even programming languages are proliferating like an invasive species.
I've been casting this chaotic growth in negative terms, but of course it's a wonderful thing. I think there are three factors that have led us to this point:
- Easier programming
The rapid evolution feeds on itself, with scripting languages and frameworks enabling rapid development.
- Cheaper hardware and hosting
A decently powered laptop can run a web server, database engine, IDE, and everything else you need to develop an application. Then you can put it on a hosting service for a few dollars a month.
- A cooperative culture
People are comfortable downloading and trying new software, and participating in programming, testing, and informal support
Now we even have whole hosting environments, such as Google App Engine. Even Microsoft reportedly has a cloud strategy. Having recently bought two new laptops, I think the strategy is to produce an operating system and office suite so horrible that people race to take refuge in services. (The design is so fundamentally wrong that I don't expect any improvement in new versions.)
But in any case, Windows and Office were the last two great proprietary consumer software products. What other software do people buy in the millions? Proprietary software has retreated to enterprise and niche markets; everything else is in the cloud. And gibes aside, Microsoft has produced formidable development tools, including Live Framework for hosted services.
Openness is valuable to verify the reliability of software, as I affirmed in the previous section. But it's not so important in the original idealistic sense of giving new tools to the masses. We have more tools than we need. While I applaud the creativity shown in all the new projects, I wish more of the creators would put their efforts to concentrating on a few promising projects.
The urgent need for more openness lies now on networks, particularly among cellular carriers. Persuading them that they'll benefit in the long run from removing limitations on their devices will create the next huge field for free information.
The most important benefit of free software: developing new programmers
I suspect the main driver that will elevate free software to world domination is an economic consideration I haven't seen anyone discuss. Big firms who have to launch and finish critical software projects quickly need programmers. They aren't concerned with selling their software; that's last century's business. What they want is a large pool of trained developers from which they can quickly choose a staff and ramp up a project. They're not all satisfied (although many are) with Microsoft offerings. Some look at other tools.
With these time pressures, how can companies ensure a large collection of programmers who can hit the ground running? By releasing software on the Internet for free download, along with the source code to facilitate the education of potential developers. There's no economic reason not to put the software under a free license, and the more you give it away, the better shot you have at hiring crack programmers later when you need them.
We've come then, to the point that was for so long on the horizon, where the lines of software and information intersect. For a programmer, source code is information. And its role as information becomes more important than its role as a machine, because creating an alternative machine to do the same thing becomes so easy. This is one type of information that really wants to be free.