P
Pascal Bourguignon
Xah Lee said:As i've indicated in the Responsible Licensing article, that today's
software come with disclaimers that essentially say the producer is not
liable even if the software don't work at all. It will be hard to
change this zero responsibility stance to a 100% responsibility stance.
However, we can start in small ways. Suppose, if you write a piece of
email program, although there are a myriad scenarios that it will have
problems sending email and in reality such problem happens often, but a
responsible software programer can at least GUARANTEE, that the
software WILL work to some extent of its described utility. In the
email program example, a responsible author can say “We GUARANTEE
that this software will send out emails in a normal setting. If not, we
will refund the money you have paid, or, send you $1 USD.†Although
this may seem fuzzy and silly, but it is a start. By giving a very safe
minimal guarantee of functionality, possibly with a nominal liability
assurance, the author will have made a _Responsible License_.
You have a problem of definition of the meaning of "normal setting".
This problem is easily resolved with the source of the program: the
source of the program IS the CONTRACT. If you respect the language
(the semantics, or underlying virtual machine expected by the
program), and if you respect the pre-conditions embedded in the
program, then you get the guarantee plainly written in the program as
post-conditions. You cannot get it more explicitely than from the
sources of the program (and the specifications of its programming
language).
So wanting more than the mere sources, you are wanting to reject
programming language not formally specified, and programs provided
without the sources. We can do better on the programming language
formal specifications side, but on the program sources side, I don't
know what we can do more than GPL or BSD...
Actually, the whole point is to let the _user_ of the program to take
_responsibility_ for the program he uses, and not to cowardly
discharge his (the user's) responsability to somebody else.
When you compute the tip to add to your invoice at the restaurant, you
don't ask the inventor of the multiplication algorithm or your
teachers to take any responsibility for your wrong or right
application of the operation. Let the users be responsible!