Clear a typo, tune up and add some things, including a benefits-of-comparison and enabling choice in specialist

This commit is contained in:
D. Joe 2020-04-14 12:08:43 -04:00
parent 485d0dc965
commit 8f382f9962
1 changed files with 21 additions and 13 deletions

View File

@ -14,28 +14,27 @@ So, we'll talk about software for just a little bit.
These days, most folk have a pretty good conception of what we usually mean by software, but to review:
We understand that these devices we work with--desktop computers still for some of us, laptop computers for many of us, phones for most of us, but also increasingly many things all around us, like cars and speakers and thermostats and doorbells--can be made to do different things if we install on them different apps.
These apps, or, slightly less colloquially "applications" are what we mean by software. Sometimes these apps come pre-instatalled, sometimes we add them from a store. Mostly, we download apps through network connections. Occasionally even now, some are installed through a type of removable medium, usually a keychain flash drive. Some of us remember older forms of installation media like DVD's, CD's, possibly floppy disks or even tapes.
These apps--or slightly less colloquially, *applications*--are what we mean by software. Sometimes these apps come pre-installed, sometimes we add them from a store. Mostly, we download apps through network connections. Occasionally even now, some are installed through a type of removable medium, usually a keychain flash drive. Some of us remember older forms of installation media like DVD's, CD's, possibly floppy disks or even tapes.
Whatever its manner of distribution, software is the portable, fungible, mutable part in any computing device, the essence of the ability for a computing device
to be customized in nearly limitless variety.
Whatever its manner of distribution, software is the portable, fungible, mutable part in any computing device, the essence of the ability for a computing device to be customized in nearly limitless variety.
**The broad and growing spread of computing devices into so many aspects of our lives is one big reason we care how software is made.**
## Source code
At a place like RIT, many of us understand that this software needs to be made by someone, known variously by the terms "programmer" or "coder" or maybe "software engineer" or "developer". There's a lot that goes into making software, but at the most fundamental level, we talk about writing software. We talk about writing it as we might talk about writing a poem or a play or a novel. Writing software is a craft that has to be learned and practiced. It can be art. Like other art, its pursuit can invoke passion in the truest sense of the word, driving those who seek to cross the gulf between conception and realization variously through cycles of suffering and exultation, through despair, awe, wonder, delight.
At a place like RIT, many of us understand that this software needs to be made by someone, known variously by the terms *programmer* or *coder* or maybe *software engineer* or *developer*. There's a lot that goes into making software, but at the most fundamental level, we talk about **writing** software. We talk about writing it as we might talk about writing a poem or a play or a novel. Writing software is a craft that has to be learned and practiced. It can be art. Like other art, its pursuit can invoke passion in the truest sense of the word, driving those who seek to cross the gulf between conception and realization variously through cycles of suffering and exultation, through despair, awe, wonder, delight.
We write software in any of a large and growing number of artificial languages, programming languages. **The form of software that people can read and write is the "source"** (or more fully, the "source code" to which "open source" refers) written in one of these languages. Once written, source code is transformed in various ways into something computers can read and act upon. This transformed version is sometimes referred to as "machine code" or "object code" or often just as the "binary" or "binaries".
We write software in any of a large and growing number of artificial languages, programming languages. **The form of software that people can read and write is the *source*** (or more fully, the *source code* to which *open source* refers) written in one of these languages. Once written, source code is transformed in various ways into something computers can read and act upon. This transformed version is sometimes referred to as *machine code*, as an *executable*, as *object code* or often just as a *binary* or *binaries*.
Changing the way software works, whether fixing bugs or adding new features, involves (usually still, but with AI not entirely) humans looking at and modifying this source code, then once again transforming this now-changed version into machine-readable binaries. Again, a hint of the comparison to literature persists, in that we speak of using tools called "editors" to make these changes to the human-readable source.
Changing the way software works, whether fixing bugs or adding new features, involves (usually still, but with AI not entirely) humans looking at and modifying this source code, then once again transforming this now-changed version into machine-readable binaries. Again, a hint of the comparison to literature persists, in that we speak of using tools called *editors* to make these changes to the human-readable source.
## Free and open source software communities
We can talk about software, and we can talk about who makes it. With this distinction in mind, I'll note that there are two distinct movements, one whose adherents prefer to talk about "free software" in which the "free" refers to freedom, not price. The other movement refers to "open source" and prefers to dwell on what they see as several pragmatic benefits of freedom while assiduously avoiding using the word "freedom" itself.
We can talk about software, and we can talk about who makes it. With this distinction in mind, I'll note that there are two overlapping but distinct movements, one whose adherents prefer to talk about *free software* in which the *free* refers to freedom, not price. The other movement refers to *open source* and prefers to dwell on what they see as several pragmatic benefits of freedom while assiduously avoiding using the word *freedom* itself.
Though we might talk about these groups of people using different terms, the digital artifacts with which they concern themselves are nearly always the same. So, we tend to see terms like "Free and Open Source Software" (FOSS) or sometimes "Free/Libre/Open Source Software" (FLOSS) as a catchall term including the work of both groups but, as these things often go, satisfying neither group fully.
Though we might talk about these groups of people using different terms, the digital artifacts with which they concern themselves are nearly always the same. So, we tend to see terms like *Free and Open Source Software* (FOSS) or sometimes *Free/Libre/Open Source Software* (FLOSS) as a catchall term including the work of both groups but, as these things often go, satisfying neither group fully.
**Software is made from source code, so we care who care who can read that source code better to understand what that software does, and who can change that source code to change how the software, and thus all our computing devices, operate.**
@ -95,30 +94,39 @@ One big thing added to Unix at Berkeley was networking code. Linux, BSD, and ot
## Myths
### Myth: I'm not a programmer, so I can't benefit at all from having free access to source code.
**Busted**: Consider any other field requiring specialist knowledge and continuing education. You rely on specialists, but benefit if the specialist has access to knowledge about how things work in their field. You benefit most of all when you are able to choose amongst specialists to find those who understand both the problem domain and are able to talk with you in a useful way, to find a fit between their knowledge of the field and your own needs. Access to source code does not guarantee, but at least enables, one to make a broader set of choices in what software to use, how to use it, how to maintain it, and who to seek for help with it.
### Myth: If you find source code on the Internet without a copyright statement or a license, you can use it however you want.
related Myth: You have to register a work for it to be copyrighted.
related Myth: You have to put a copyright statement or symbol on your source code for it to be copyrighted.
**Busted:** Creative works are not "born free". Copyright adheres to creative works as soon as they are fixed in a "tangible" medium. Computer storage devices count as a tangible medium. So, as soon as you write a creative work, it is *automatically* copyrighted. This idea comes from the Berne Convention for the Protection of Literary and Artistic Works, first established at a meeting in Switzerland in the 19th century. The United States did not join the Berne Convention until a century later, in 1989. Misconceptions about how copyright works in the US might still be circulating from when they were true, prior to 1989, a time still in living memory for some of us.
**Busted:** Creative works are not *born free*. Copyright adheres to creative works as soon as they are fixed in a *tangible* medium. Computer storage devices count as a tangible medium. So, as soon as you write a creative work, it is *automatically* copyrighted. This idea comes from the Berne Convention for the Protection of Literary and Artistic Works, first established at a meeting in the eponymous Swiss city in the 19th century. The United States did not join the Berne Convention until a century later, in 1989. This author suspects misconceptions about how copyright works in the US might still be circulating from when they were true, prior to 1989, a time still in living memory for some of us.
One only has the freedom to use a work if one has been given a license to use it, either through a contract or a purchase or as a gift from the free and open source software development communities.
One *can* register the copyright on a work, and one can add a copyright statement to a work to make clear to whom the copyright belongs and the date of the copyright. These efforts can improve one's position in the event of a dispute, but they are not necessary for basic copyright restrictions to come into being.
### Myth: Open source is "free" which means you can't make money with it.
### Myth: Open source is *free* which means you can't make money with it.
**Busted:** The biggest tech companies--scratch that, the biggest companies, full stop--all use free and open source software to make money.
One misunderstanding at the root of this myth is that software is always made to be sold. This is true for some software, but not all of it. A great deal of software written is written for various forms of "in house" use and is never sold, as such, and certainly never as a standalone retail product. Entirely different considerations apply to the production and use of in-house software than for retail software. In house software typically performs functions common to a business sector or to running a business more generally that it is not a competitive differentiator. Rather than being a revenue center, most software lives in cost centers. Minimizing the cost of producing, deploying and maintaining that software come to the forefront. Being able to share the production and maintenance burden with other organizations becomes a huge win for in-house software. This shared effort is widely facilitated by free and open approaches.
One misunderstanding at the root of this myth is that software is always made to be sold. This is true for some software, but not all of it.
A great deal of software is written for various forms of *in house* use and is never sold, as such, and certainly never as a standalone retail product. Entirely different considerations apply to the production and use of in-house software than for retail software. In house software typically performs functions common to a business sector or to running a business more generally that it is not a competitive differentiator. Rather than being a revenue center, most software lives in cost centers. Minimizing the cost of producing, deploying and maintaining that software come to the forefront. Being able to share the production and maintenance burden with other organizations becomes a huge win for in-house software. This shared effort is widely facilitated by free and open approaches.
### Myth: Free and open source software is poor quality.
**Busted:** Sturgeon's Law--90% of everything is crap--applies. A great many one-off projects, either experiments or toys or abandoned student projects, are increasingly available given how easy and cheap it is to share code. This sort of software always was written, but now more people are writing it, and more of what people write is visible. The advantage of this great diversity is that it makes room for experimental or niche applications that might otherwise never have been developed, or never have found an audience. Not every piece of software has to be a slickly-produced mass-makret
**Busted:** Sturgeon's Law--90% of everything is crap--applies. A great many one-off projects, either experiments or toys or abandoned student projects, are increasingly available given how easy and cheap it has become to share code. This sort of software always was written, but now more people are writing it, and more of what people write is visible. The advantage of this great diversity is that it makes room for experimental or niche applications that might otherwise never have been developed, or never have found an audience. Not every piece of software has to be a slickly-produced mass-makret
best-seller to have value to someone.
Beyond that, though, are best in class pieces of software like the Linux kernel, the Apache or nginx web servers, a vast array of programming languages and tools, and so much more. Very often the FOSS packages available merely work differently from their non-free alternatives, even if they work just as well, or represent a different set of design trade-offs. These differences may read to someone invested in a non-free tool as deficits even if the free software is cheaper and more flexible to use and deploy. This bias against the free tool becomes more pronounced when the costs of negotiating license agreements for the proprietary software are hidden from or subsidized for the end user (cf, systems of centrally-administered site licenses and educational loss-leader type discounts).
Beyond that, though, are best-in-class pieces of software like the Linux kernel, the Apache and nginx web servers, a vast array of programming languages and tools, and so much more. Very often the FOSS packages available merely work differently from their non-free alternatives, even if they work just as well, or represent a different set of design trade-offs. These differences may read to someone invested in a non-free tool as deficits even if the free software is cheaper and more flexible to use and deploy. This bias against the free tool becomes more pronounced when the costs of negotiating license agreements for the proprietary software are hidden from or subsidized for the end user (cf, systems of centrally-administered site licenses and educational loss-leader type discounts).
Further, when a piece of free and open source software has a proprietary counterpart, users of that proprietary counterpart benefit because the free and open source software program at the very least functions as a substitution good. These FOSS programs offer a concrete comparison against which to evaluate their proprietary counterparts. When the FOSS software is technically better, it offers an aspirational goal for the proprietary program's developers and users. Even if the FOSS program is less functional, it still may provide a real-world tether on the price for getting licenses for the proprietary program and a floor below which the proprietary program's functionality should not drop.