June, 2017

now browsing by month

 

“Stone Soup”

Stone Soup is a folk story that was passed by oral tradition for quite a long time. Several versions exist throughout Europe, all having a similar theme. The first written record of the story was published in 1720 in France by Madame de Noyer. But it is likely that the story passed orally down through the ages long before any written record was made.

Noyer’s version of the story is set in Normandy, northern France. Two Jesuits come to a farmhouse, but only the children are home. The Jesuits, who are hungry, convince the children that they are not begging for food, but in fact they are self-sufficient as they have a stone that makes soup. They tell the children that all they actually need is fire, a pot, and some water, and that their stone will do the rest.

In other versions of the story, soldiers come to a town and ask local villagers to participate in making their “stone soup.”

A fire is made ready, a pot put over, water is added, and the stone is dropped in. When the water is hot, each person is asked to contribute some small bit of food to the soup. This and that are added until, finally, a truly fabulous soup has been made. It is a story that always has a happy ending. Everyone always seems to have a good time making the soup, and the soup itself is always loved.

The moral of the story always seems to be that with cooperation and a little effort from everyone, a great task can be performed.

In modern times, we see this in the computer industry as “open-source” projects. The first open-source projects were mostly games and other “hobby” projects but before long, some pretty sophisticated software was being offered as open-source projects, including operating systems, compilers and other large scale complex systems.

The history of open-source computer software (and open standards in hardware too, for that matter) is actually pretty interesting, in my opinion. I’ll describe it, in brief:

In the early days of computing – back when computer systems filled rooms or even whole floors – people that had access to computers were so few that software was only used or even seen by a small number of people. It was often shared back then, without regard to intellectual property rights. There was a “natural boundary” that protected the intellectual property – very few people had access to computers, so there was very little need to protect the software. Almost nobody that might have copied it could have used it.

Back then, most software that wasn’t user-written was bundled with the hardware. The hardware manufacturer provided the operating system, languages and diagnostic tools with the system. But you could only get the software if you bought the hardware.

By the 1970s, minicomputers were much more popular, and microcomputers were on the horizon. So the stage was set for a need to address issues of intellectual property in the digital realm. By this time, computers were starting to become numerous enough that software developers began to sell their creations both to corporate users and private individuals.

Software was not considered copyrightable before the 1974 US Commission on New Technological Uses of Copyrighted Works decided that computer programs, to the extent that they embody an author’s original creation, are proper subject matter of copyright. After that, software developers began to distribute their products in a way that resisted modification and copying, usually as compiled object code and often times with a hardware or software key. Software was often licensed rather than sold. This was the beginnings of “closed-source” proprietary software.

A similar but opposite reaction was the beginning of freeware, shareware and “open-source” software. In some ways, this was like the way things were before 1974, when programs weren’t copyrightable. Software made available like that was freely distributed and was sometimes called “freeware.” Other software was distributed with a notice asking for a donation, or sometimes provided in a limited version which could be “unlocked” after a donation was sent. Still another form is what we now call “open-source,” which is software that is made available for anyone to use – sometimes with restrictions on commercial use, sometimes not, depending on the open-source licensing model.

Open-source these days is very much like a “stone soup group.” It is placed in a central repository and made available to everyone. Even more significantly is the fact that the central repository can be modified by others. The repository is controlled by the product owner, which is usually the original author or originating team. They control access to anyone that might modify the code. In this way, the software is continually modified, improved and updated by people that are interested in the project. It is “policed” by the product owner, who reviews any potential updates before allowing them to be merged into the repository.

What is amazing to me is how the tech world has changed in the past few decades to embrace this model of software development. As I said above, in the 1980s, you really only saw games and small hobby programs distributed in an open arrangement. By the 2000s, there were a lot of sophisticated systems that were beginning to be distributed as open-source, including operating systems like Unix/Linux, databases like PostgreSQL and MySQL and popular languages like Java. But even still – in those days – companies would often refrain from using open-source software for fear of malfunction or “bugs.” When a corporation purchases proprietary software licenses, there is an expectation of support and a potential for liability mitigation. So corporate America was still largely run by proprietary code.

But not for long. I knew the world had turned when I saw IBM promoting Linux to its customers over its own version of Unix called AIX. This was around 2006. Prior to that, IBM wouldn’t even work on a machine that had open-source software on it. It was taboo – a potential loophole that might damage its own intellectual property rights. It did not want to risk the chance of litigation, so it always had a “Chinese wall” around any installation that might have open-source software on it. But by 2006, IBM embraced the open-source versions of Linux, and even promoted its use on its hardware. The world had indeed changed.

Now days, some of the most sophisticated systems are created, improved, distributed and supported by an open-source, “stone soup” model. The latest machine learning or “artificial intelligence” software is made available this way, as are many operating systems, computers languages, tools and even office applications like word processors and spreadsheets.