by Andrew Oram
American Reporter Correspondent
December 13, 2010
WEB SERVICES, CLOUDS, AND OPEN SOURCE: RESOLVING THE CONTRADICTIONS
CAMBRIDGE, Mass., Dec. 13, 2010 -- Predicting trends in computer technology is an easy way to get into trouble, but two developments have been hyped so much over the past decade that there's little risk in jumping on their bandwagons: free software and cloud computing.
What's odd is that both are so beloved of crystal-gazers, because on the surface they seem incompatible.
The first trend promises freedom, the second convenience. Both freedom and convenience inspire people to adopt new technology, so I believe the two trends will eventually coexist and happily lend power to each other. But first, the proponents of each trend will have to get jazzed up about why the other trend is so compelling.
Freedom is promised by the free and open source software movement. Its foundation is the principle of radical sharing: the knowledge one produces should be offered to others. Starting with a few break-through technologies that surprised outsiders by coming to dominate their industries - the GNU C compiler, the Linux kernel, the Apache web server - free software has insinuated itself into every computing niche.
The trend toward remote computing - web services and the vaguely defined cloud computing - promises another appealing kind of freedom: freedom from having to buy server hardware and set up operations, freedom from installations and patches and upgrades, freedom in general from administrative tasks. Of course, these advantages are merely convenience, not the kind of freedom championed by the free software movement.
Together with the mobile revolution (not just programs on cell phones, but all kinds of sensors, cameras, robots, and specialized devices for recording and transmitting information) free software and remote computing are creating new environments for us to understand information, ourselves, and each other.
Remote computing, especially the layer most of us encounter as web services, is offered on a take-it-or-leave-it basis. Don't like Facebook's latest change to its privacy settings? (Or even where it locates its search box?) Live with it or break your Facebook habit cold turkey.
Free software, as we'll see, was developed in resistance to such autocratic software practices. And free software developers were among the first to alert the public about the limitations of clouds and web services. These developers - whose ideals are regularly challenged by legal, social, and technological change - fear that remote computing undermines the premises of free software.
To understand the tension, let's contrast traditional mail delivery with a popular online service such as Gmail, a textbook example of a web service familiar to many readers.
For years, mail was transmitted by free software. The most popular mail server was Sendmail, which could stand with the examples I listed at the beginning of this article as one of earliest examples of free software in widespread use. Sendmail's source code has been endlessly examined, all too often for its many security flaws.
Lots of organizations still use free software mail servers, even though in the commercial world, Microsoft's closed-source Exchange is the standard. But organizations are flocking now to Gmail, which many people find the most appealing interface for email.
So the cloud - however you define it - seems to render the notion of software freedom meaningless. But things seem to get even worse. The cloud takes the client/server paradigm to its limit. There is forever an unbreachable control gap between those who provide the service and those who sign up for it.
And this is apparently a step backward in computing history. Closed, proprietary software erected a gateway between the all-powerful software developers and the consumers of the software. Free software broke the gate down by giving the consumers complete access to source code and complete freedom to do what they wanted.
Amateurs around the world have grabbed the opportunity to learn programming techniques from free software and to make it fit their whims and needs. Now, once again, software hidden behind a server commands the user to relinquish control - and as the popularity of Gmail and other services show, users are all too ready to do it.
Cloud computing is leading to the bifurcation of computing into a small number of developers with access to the full power and flexibility that computers can offer, contrasted with a world full of small devices offering no say in what the vendors choose for us to run, a situation predicted in Jonathan Zittrain's book "The Future of the Internet."
Tim Berners-Lee, inventor of the World Wide Web, as part of a major Scientific American article criticized social networks like Facebook as silos that commit the sin of hoarding data entered by visitors instead of exposing it openly on the Internet. Ho, Sir Berners-Lee, that's exactly why many visitors use social networks: to share their personal thoughts and activities with a limited set of friends or special-interest groups. Social networks and their virtual walls therefore contribute to the potential of the Internet as a place to form communities.
But Tim ers-Lee was airing his complaint as part of a larger point about the value of providing data for new and unanticipated applications, and his warning does raise the question of scale. If Facebook-type networks became the default and people "lived" on them all the time instead of the wider Web, opportunities for interconnection and learning would diminish.
But one would be jumping to conclusions to assume that cloud computing is inimical to free software.
Google is one of the world's great consumers of free software, and a supporter as well. Google runs its servers on Linux, and has placed it at the core of its fast-growing Android mobile phone system. Furthermore, Google submits enhancements to free software projects, releases many of its peripheral technologies as open source, and runs projects such as Summer of Code to develop new free software programs and free software programmers in tandem.
This is the trend throughout computing. Large organizations with banks of servers tend to run free software on them. The tools with which they program and administer the servers are also free.
A "free software cloud" may seem to be an oxymoron, like "non-combat troops." But I believe that free software and remote computing were made for each other; their future lies together and the sooner they converge, the faster they will evolve and gain adoption.
In fact, I believe a free software cloud - much more than the "open cloud" that many organizations are working on - lies in our future. Upcoming segments of this article will explore the traits of each trend and show why they are meant to join hands.
Next: Definitions: Clouds, web services, and other remote computing.