Processing and FLOSS
by Casey Reas
Processing is FLOSS software. FLOSS is an acronym for Free, Libre, Open-Source Software. As defined by the Free Software Foundation, the term Free Software has four essential freedoms:
- to run the program
- to study and change the program in source code form
- to redistribute exact copies
- to distribute modified versions
The term Open Source originated after Free Software. It was defined to move the conversation toward one aspect of Free Software, the ability to read the source code. It’s clear that the name Free Software leads to a partial understanding of what it means, that the software is likely to be “free” to use. This phrase Free Software is also confused with Freeware, another category of software where the software is free to use, but the source code can be closed. Many people in the Free Software community argue with people who promote Open-Source software about fundamental ideas and vice versa.
The acronym FLOSS is sometimes used to bridge the communities and their differing opinions. The word libre is added to free to make the goal of “free as in freedom,” the ideals of liberty, more clear. Richard Stallman, the founder of the Free Software Foundation wrote an excellent, clear essay “Why ‘Open Source’ misses the point of Free Software” about the differences between Free Software and Open-Source software.
Within the domains of computer science and systems administration, there are many influential FLOSS software projects. For instance, the Apache HTTP Server is used more than proprietary software in the same domain. In contrast, there’s comparatively little FLOSS software within design and arts communities. These domains are dominated by proprietary software, specifically by Adobe Systems and Autodesk.
We believe visual artists and designers should be in control of their own software tools. It’s not enough to rely on corporations to make what we need. The code and systems that we use shape our work. When companies release proprietary platforms and we use them, we don’t have freedoms to modify and expand them. As makers, we feel it’s essential to have tools that we create ourselves, tools that are shaped by the needs and desires of the communities of creators that use them.
In addition to the creative limitations of proprietary software, there are also financial concerns. As I am writing this, a one-year license for the Maya animation software from Autodesk is $1,470 USD. A one-year license for the Illustrator drawing software from Adobe Systems is $240 USD, or $19.99 USD a month. In both cases, this is great for profits, but it’s not good for access. This is beyond the reach of high-school students and independent artists. It’s also a large expenditure for educational institutions and students. In addition, the source code isn’t available and the software can’t be modified. There may be a place for proprietary, commercial software within the arts, but there’s a need for alternatives to support wider and more diverse audiences.
All of the Processing Foundation software (Processing, p5.js, Processing.py, Processing for Android, Processing for ARM) are distributed without cost and the code is available for people to learn from and to modify. The Processing software is distributed under the GPL (GNU General Public License) and LGPL (GNU Lesser General Public License). Creating FLOSS software, however, is not without costs. We have learned, often the hard way, that “Free Software is expensive to make,” but for people who want to use the software and who don’t have the means to purchase or write their own software, ours is entirely free and open for use.
It’s accurate to say that Processing wouldn’t have launched without Free Software and other software under compatible licenses. Now, as when it was first released, Processing combines existing FLOSS software modules into its source code. These other projects include jEdit, ECJ, JNA, launch4j, quaqua, ORO, and Jikes. FLOSS software is an ecology where thousands of projects, large and small, can be combined in different ways to create new software. This creates complex contingencies. If one of these parts stops being maintained or has an error, the other software within the ecology are affected. There are negative impacts to building code within a FLOSS ecology, as well as the positives. As with everything, there are highs and lows to creating and working with Free Software. We’ve benefitted tremendously from the work that others put into the software we utilize as core components of Processing and we hope that others have benefitted from our unique code. We believe in the fundamental freedoms of Free Software and that is our path.