Free software

From LibrePlanet
Revision as of 03:44, 10 October 2021 by Kompowiec2 (talk | contribs) ("How do people make money?" explained by suggestion Introducing Free Software)
Jump to: navigation, search

Why should I care about software?

Our daily lives are increasingly mediated by digital technologies. Everything that powers our society—our media, medical devices, voting machines, communication, and so much more—depends on devices running software to control them. The way that software functions is determined by its "source code", and whoever owns that in turn controls our technology and has immense influence over our lives. When that source code is owned by someone else and kept secret, there's no way to know what it's doing or how it works. When someone else controls your software, you give them ultimate control over your computing.

How can we trust our technology?

We've seen the incredible advancements and social movements enabled by digital technology, but we must be mindful of its effects. Software ultimately leaves users at the mercy of whoever owns it, but we don't have to give up freedom for progress. Software shouldn't work against its users for profit and control. You should own your software. You should be in control.

Using free software is the only way to guarantee that. By using free software, you gain autonomy over your own computing and are protected from the surveillance, monopolism, and other malicious features in non-free software.

What is free software?

The aim of this article is to explain it completely, that is, after reading this chapter, not only that you understand this yourself, but you would be able to explain it to others comfortably later. I know this is an ambitious assumption, but we will try to do it.

Definition:

Free Software (freedom granting software, or also libre software) is computer software distributed under terms that allow users to run the software for any purpose as well as to study source code, change, distribute it and improve any adapted versions.

of course, at first we know nothing with the definition, but soon everything will become clear. At first, you can get lost in the flow of these words, but you must have noticed the word free. You may already be confused at this stage - but how is it free? and why does it have several names?

Free is a matter of liberty, not price; we're concerned with your freedom. all users are legally free to do what they want with their copies of a free software (including profiting from them) regardless of how much is paid to obtain the program, and we sometimes say spanish borrowed word "libre" to show that. I will use this word later in this article to avoid confusing/ambiguity and semantic chaos.

computer is a universal machine that can be programmed to carry out sequences of arithmetic or logical operations automatically. Modern computers can perform generic sets of operations known as programs. These programs enable computers to perform a wide range of tasks.

software is a collection of instructions that tell a computer how to work. By writing the right program, you can make it do almost anything.

Users are the entry point.

With software, there are two possibilities: users control the program or program controls the users. It's inevitably one or the other. In order for the users to control the program, they need 4 essential freedoms.
  • Freedom 0: The freedom to run the program 'for any purpose.
  • Freedom 1: The freedom to study how the program works, and change it to make it do what you wish.

But what is source code? In computing, source code is any collection of code, with or without comments, written using a human-readable programming language, usually as plain text. The source code of a program is specially designed to facilitate the work of computer programmers, who specify the actions to be performed by a computer mostly by writing source code. The source code is often transformed by an assembler or compiler into binary machine code that can be executed by the computer. The machine code might then be stored for execution at a later time. Alternatively, source code may be interpreted and thus immediately executed.

Most application software is distributed in a form that includes only executable files. If the source code were included it would be useful to a user, programmer or a system administrator, any of whom might wish to study or modify the program.

If you all get is the executable, it's a horrible pain in the neck to the figure out what it does, and even harder to change it, so to give you the real possibility to study and change it, they've got the give you to source code, that's the requirement. it's the individual control.
But what if are not a programmer? You look at the source code, and you don't understand it. Individual control isn't enough. We also need collective control, which means any group of users are lbre to work together to adapt the program to what they want. Of course, in the group, some of them are programmers. They're the ones who actually write the changes, but they're doing it as part of the group for what the group wants. Of course, the group doesn't have to be everybody. Others can use it some other way. They're all libre to do that. Collective control requires two more essential freedoms.
  • Freedom 2: The freedom to redistribute and make copies so you can help your neighbour.
  • Freedom 3: The freedom to improve the program, and release your improvements (and modified versions in general) to the public, so that the whole community benefits
Basically freedom three is similar, but it's for your modified versions. You're libre to make copies, and then give them or sell them when you wish. If you do have these freedoms, then it's libre software, the users control the program. But if any of those freedoms is missing, then the users don't control the program. Instead, the program controls the users and the developer controls the program. So, that means this program is an instrument of unjust power for its developer over the users. That means the users don't have freedom, that's non-libre, proprietary software which we've got to get rid of.

All inserts that start with a colon, are quotes from Richard Stallman's TED 2014 talk under CC-BY-ND license, borrowed under the right to quote.

How do people make money?

main article: Business models for open-source software
  • Not Selling Code
    • Professional services - selling "support"
    • Branded merchandise - selling knick-nacks
    • Software as a service - selling infrastructure
    • Voluntary donations - not selling anything, much less code
    • Crowdsourcing - not selling anything, much less code
    • Selling Users, Not Code
  • Selling Users, Not Code
    • Partnership with funding organizations - i.e. getting funded by Google (Not Evil ?)
    • Advertising-supported software - i.e. getting funded by advertisers
      • Option A: Pre-selling Code
        • Pros - if a unique set of users will benefit
        • Cons - vaporware, freeloading users
      • Option A: Pre-selling Code
        • Pros - if a unique set of users will benefit
        • Cons - vaporware, freeloading users
  • Bounty driven development
    • Pre-order/crowdfunding/reverse-bounty model
      • Option B: Playing copyright, IP, and lawfare games
        • Pros - you have more lawyers than engineers i.e. Oracle
        • Cons - you don't
    • Dual-licensing or Open Core
    • Selling of certificates and trademark use
    • Re-licensing under a proprietary license
  • Option C:
    • Pros - Make money because your code isn't open source
    • Cons - Why is this called "open-source business models" when it's not?
      • Selling of optional proprietary extensions
      • Selling of required proprietary parts of a software product
      • Selling of proprietary update systems
      • Obfuscation of source code
      • Delayed open-sourcing
      • Open sourcing on end-of-life