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.

The source of the tension

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.

Not only is Gmail closed, but the service would remain closed even if

Google released all the source code. This is because nobody who uses

Gmail software actually loads it on their systems (except some

JavaScript that handles user interaction). We all simply fire up a

browser to send a message to code running on Google servers. And if

Google hypothetically released the source code and someone set up a

competing Gmail, that would be closed for the same reason. A web

service runs on a privately owned computer and therefore is always

closed.

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 Berners-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.

Complementary trends

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. This series will explore the traits of each trend and

show why they are meant to join hands.

Next section:



Defining clouds, web services, and other remote computing

