Friday, May 21, 2010

Richard Stallman and the Free Software in Foggia Italy

Richard Stallman and the Free Software in Foggia Italy

On 05/17/2010 Mr. Richard Matthew Stallman was in Foggia for the first time in a high school
whose name is "Liceo Classico Vincenzo Lanza".
But maybe someone doesn't know who is that man, well Mr. Stallman is an American software freedom activist and computer programmer (as wikipedia says), he is the father of GNU Project
and the father of the free software movements and the founder of the Free Software Foundation. Stallman pioneered the concept of copyleft and he is the main author of several copyleft licenses including the GNU General Public License, the most widely used free software license.

In the conference he spoke primarily about Free Software, the GNU Project and also talked about why the proprietary software is dangerous.

Before start analyzing these concepts I would like to focus on the figure of Mr. Stallman.
In my opinion Mr. Stallman is a person with a large magnetic personality, able to move the masses and who has a remarkable humility hardly observable in the dry modern society.
I could not believe to my eyes, Mr Stallman was there and I have also shook my hand with.

But, why is Mr. Stallman so mcuh important (not only to me) for the whole IT world?

For reply to this question I have to speak about Free Software and what I learned yesterday from him.

History of Free Software

The philosophy of free software was born in 1971 at MIT in a community that loved to exchange software and programming source code snippets from their writings, so that anyone could make changes to these programs in order to further improve and redistribute it.
This software was called free software (free as livre which doesn't stand for without costs but stands for freedom, in Italy we have an appropriate word to define it… Gratis means without costs and Libero means free …. as freedom )
At that time, the term Free Software did not exist. Then in the '80s, the community broke up because of the emergence of new operating systems with proprietary licenses, which made it difficult for free trade in software.
In 1983, Richard Matthew Stallman founded the GNU Project and the Free Software Foundation, whose aim was to produce a Unix-compatible, which is completely free and freely distributable. Although not fully developed, the project at the kernel level called Hurd software (produced by GNU) was of such great quality that System administrators often replaced the original programs of their distributions of Unix with GNU versions .
Despite that, the company chose to protect their interests and likely to play against the philosophy of free exchange of codes without restrictions.

What are the differences between proprietary and free software?

The social conception that proprietary software (which is the system requiring that software can not be shared or modified) is antisocial, unethical, and wrong may appear surprising.
In fact, people usually take for granted the definition of proprietary software. Software manufacturers have worked long and hard to convince people that there is only one way of looking at it.
When vendors talk about "enforcing their rights" or "stopping piracy", what they say is actually secondary. The real message of these statements is in the unstated assumptions (listed below) which they take for granted, being that they want that them to be accepted uncritically.

These assumptions are:

--The software companies have the unquestionable natural right of ownership on their software,
and therefore have control over all its users. If this were a natural right, we could not raise
objections, regardless of the damage that may cause others. Interestingly, the United States,
both the Constitution and legal tradition reject this view, copyright is not a natural right, but a
government-imposed monopoly that limits the users' natural right to make copies.

--The only important thing about software is what jobs it allows you to do, which is to say that we
(as users) should not care what kind of society we are allowed to live.

--We would not have usable software (or rather, that we could never have a program to do this or
that particular job) if we did not offer to the company the power over the users of the program.
This assumption may have seemed plausible but before that free software movement
demonstrated that we can make plenty of useful software without putting chains (or handcuffs as
Stallman often says).

If we refuse to accept these assumptions, and judge these issues based on common criteria of morality and common sense after you put first the interests of users, taking into account that users are first of all, we come to very different conclusions. Computer users should be free to modify programs to fit their needs, and be free to share software, because helping others is the foundation of society. This is the philosophy of free software.

What is Free Software instead?

A program is free software for a particular user, if:

* You have the freedom to run the program for any purpose (FREEDOM 1);
* You have the freedom to modify the program to suit your needs (because this freedom effective
in practice, you must have access to program source code, since making changes to a program
without having the source code is extremely difficult) (FREEDOM 2);
* The user has the freedom to redistribute copies, either gratis or for a fee (FREEDOM 3);
* You have the freedom to distribute modified versions of the program, so that the community can
benefit from improvements (FREEDOM 4).

Since "free" refers to freedom, not price, selling copies of a program does not contradict the concept of free software.

Another problem of proprietary software is that there may be malicious software features
which could control the installed software in the computer from remote, or install additional software without the user knowing it (the automatic update).
It is like software entering from the backdoor instead of entering from the front door.
The problem is that proprietary software is seen like a black box so we don't know what they are doing while they are in execution.
Stallman also said:
“I don't say that in all proprietary software there are malicious features, some of them have this problem, others not”.

Differences between Free Software and Open Source

Sometimes Free software is confused with Open Source, which is basically another thing since there are differences in terms of ethics, history and licenses.
I will analyze only the license differences because in my opinion, they are more important.

Regarding free software, the used license is the GNU Public License (GPL). This license was created by Stallman himself; it seeks to respect the principles set out above, by introducing a copy left to guarantee them.
The term copy left means that after processing the mechanism by which free software is forbidden to redistribute it as proprietary software, you must report the changes made to the author of the software. Later, it was clear that not all developers were satisfied by this license by writing the LGPL in 1991. The LGPL allows you to insert codes in free software or in proprietary software, without affecting the final license of the software. But these licenses limit the public domain (the ability to sell changes to free software).

For this reason, new licenses were created like the BSD License (Berkley Software Distribution license), which is most diffuse in Apple world, and the MPL (Mozilla Public License) from Mozilla foundation.

Today, the term Open Source is more popular than free software.
Just remember that one of the largest companies worldwide, like Sun Microsystems (now Oracle), prefers to use open source .
There are two reasons why:
--In English-speaking areas, the concept of freedom can be expressed only with the word Free. The
word also means without costs. This confusion seems counter-productive for some companies;

--In every movement, there have always been some schism, and Free Software does not seem to
be an exception (but I hope that it does not happen).

What is the GNU Project

"In the image GNOME desktop environment!"
As Stallman said, GNU stands for GNU and not Unix. Whoever has not studied a bit of theoretical computer science will not see anything exciting in all this. In the GNU word is a hidden recursion, seen by the computer programmers as a divine programming technique…in fact, it was once said, “Iterate is human, use recursion is divine!” (L. Peter Deutsch)…but I am deviating a bit from the context of the article, I am sorry.
GNU is a set of software developed under the GPL license, which is the usable part of the most known operating system called Linux. We don't create mistakes we HAVE to call it GNU/Linux, because what the user uses is the GNU software, Linux is only the Kernel (i.e. the internal core which does the hardware abstraction and which handles processes).
Personally, I love GNU/Linux…in fact, in my computer, I have ONLY GNU/Linux.

Most known GNU software are GNOME, GNASH, EMACS, BASH and many more...
Concerning BASH, last year I developed a parser for BASH in JavaCC whose name is jBash and is published under the GPL3 public license and used in a project for the European community .

The question I posed to Stallman

How can a student, with a passion for computing, transform that passion into a real job while earning money from free software?
You can hear his answer in this video:

My personal conclusions:

Free software in public administration, schools and other public institutions in all the world, should be applied because the savings would be significant.
Personally, the answer Stallman gave to my question, did not convinced me, not for the motivations, which are noble and important, but because I imagine the difficult future for designers and developers of free software, as me, in a world where everything has a price.
It is not enough to live only by the maintenance of a free software or from its assistance.
As a student worker, I wish that this passion would turn into something profitable but in the right measure. The work for the glory is often superficial and eventually ends before arriving at a good stage of the project because of less money.
It is true that the policy of Free Software is based on the exchange of source, so someone else can continue my pioneering work, but it is also true that behind a proposed Free Software, there is not always a good basis for analysis and design…many developers of free software (as I did) have spent more time in writing the source code than in designing. This approach requires much maintenance and software costs increases exponentially (as a principle of software engineering) and software quality decrease just as rapidly.
In conclusion, Free Software is good for little/medium software without much complexity or for very big software such as software for humanity (GNU/Linux) because it should be tested and modified by a large number of people (remembering that in free software the end user is the real beta tester).
I must admit that all software, even most important, have to made available with the source code (fees may be applied and should be assigned all rights about recognition of creativity to their respective owners) to prevent major social problems such as monopoly and malicious software features.

Vincenzo Dentamaro

Thanks to:
Nicole Marquez for the corrections made.
Flavio Tisi for Stallman contact.