dimanche 22 juin 2008

Le Logiciel Libre expliqué à ma Maman (et à toute personne non portée sur l'informatique...)

Le logiciel libre est une notion importante en informatique actuelle. Mais si n'importe quel geek, informaticien ou programmeur maîtrise ce concept, ce n'est pas le cas du grand public et particulièrement des personnes pour qui l'informatique n'est qu'un outil nécessaire, mais souvent un peu compliqué.

Le but de cet article est donc de tenter d'expliquer à ma maman, et par extension à toute personne peu portée sur l'informatique ce qu'est un logiciel libre.
Dans ce cadre, il est très probable que je fasse des raccourcis, analogies ou approximations sur certaines notions ou concepts liés ; à l'attention des personnes pointilleuses sur ces points qui font parfois débat (ou troll), n'hésitez pas à utiliser les commentaires afin de mettre les choses au point, point (poin poin !).
Par ailleurs, seuls les geeks semblent maîtriser le web et avoir le temps de lire les pages présentées dans les liens (et d'autres choses, comme la navigation par onglets sous Firefox ^^) : donc, la plupart des liens pointent vers une simple image (Une image vaut mille mots.).

Qu'est-ce qu'un logiciel ?

Commençons par le commencement ! Word, Excel, Firefox, Outlook Express et iTunes sont des logiciels. C'est probablement ceux qu'utilisent le plus ma maman. Mais ce ne sont que quelques exemples. Window$, MacOS X et Linux sont également des logiciels : ce sont des systèmes d'exploitation (c'est à dire le logiciel qui gère l'interaction avec le matériel, écran, clavier, etc ainsi que la base pour les autres logiciels cités en premier.).
Mais il y a également des logiciels plus "discrets" pour l'utilisateur de base : les "drivers" (ou pilotes) qui font fonctionner du matériel (imprimante, webcam, etc...) sur un PC, les systèmes assurant les transmissions bancaires, les applications web (comme Gmail, ou ce blog), le manager de vol d'un avion, un code calcul scientifique, le système d'un téléphone portable, un guichet de retrait de monnaie ou encore la synchronisation des feux dans les grandes agglomérations.

Pour résumer, sur un ordinateur (au sens large), un logiciel est toute la partie non-matérielle. En anglais, on parle de "Harware" pour le matériel (partie "dure") et de "software" pour les logiciels (partie "légère" ou immatérielle).

Comment construit-on un logiciel ?

Sans trop rentrer dans la technique, quelques notions sont utiles pour la suite.
Tout logiciel est construit à partir d'un "code source" qu'écrit le programmeur, développeur ou codeur (ou ingénieur logiciel, mais celui-ci, il se la pète un peu je trouve ^^). De quoi s'agit-il ? Il s'agit d'un texte, écrit dans un langage spécialement conçu pour "communiquer avec l'ordinateur". Il existe de nombreux langages permettant d'écrire du code.
Le code source peut être défini comme un ensemble d'ordre et de définitions d'ordres que le codeur donne à la machine. Du coup, le code source d'un logiciel peut être comparé à une recette de cuisine à laquelle on ajoute une définition des gestes techniques (abricoter, brider, delayer, etc...).
Par exemple, ci-dessous voici à quoi pourrait ressembler le code permettant d'ouvrir une fenêtre contenant une horloge à l'heure :

Programme Fenetre-Horloge :
ouvrir fenetre
fenetre contient horloge(heure_actuelle)
toutes les 1 secondes : mettre l'heure à jour dans horloge
fin programme


Bien sûr il s'agit de pseudo-code : c'est à dire un langage de programmation que la machine ne comprendrait pas. Mais dans l'esprit, on n'est pas très loin de ce à quoi pourrait ressembler un vrai code source. La preuve, voici un vrai programme faisant ce que je viens de décrire, en Ruby (Ruby est donc un "vrai" langage de programmation) :

stack do
background black
para @time.strftime("%a"),
span(@time.strftime(" %b %d, %Y "), :stroke => "#ccc"),

strong(@time.strftime("%I:%M"), :stroke => white),
@time.strftime(".%S"), :align => "center", :stroke => "
#666"
end

(source : hackety.org par Why's the Lucky Stiff)

C'est déjà moins compréhensible, mais ça marche ^^ !

Qu'est-ce qu'un logiciel libre ?

Un logiciel libre est un logiciel dont la licence dite libre donne à chacun le droit d'utiliser, d'étudier, de modifier, de dupliquer, de donner et de vendre ledit logiciel.
Cette citation Wikipedia est selon moi une bonne définition de ce qu'est un logiciel libre.
Mini-Tux, une mascotte de Linux (libre !)

Contrairement à ce qu'on pourrait facilement penser, un logiciel libre n'est pas forcément un logiciel gratuit. C'est sa licence qui est libre, c'est à dire le texte "juridique" définissant les droits de l'utilisateur sur le logiciel. Même si la majorité des logiciels libres sont gratuits, il en existe quelques un payants, ou en version payante (on y reviendra).

En l'occurrence, l'utilisateur, quel qu'il soit, à le droit d'utiliser le logiciel comme bon lui semble.

Contrairement à la plupart des logiciels propriétaires (non-libres donc), l'utilisateur a également le droit de copier, donner, vendre ce logiciel dans certaines conditions. Il n'y a donc quasiment pas de piratage dans le monde du logiciel libre puisqu'on est libre de dupliquer et de distribuer ces logiciels. Je dis quasiment car les conditions ne sont parfois pas respectées : par exemple une condi tion de redistribution peut être de continuer à montrer le code source (ce que ne font pas toujours les entreprises).

Le droit de vente peut paraître surprenant : pourquoi vendre un logiciel qui peut ensuite être redistribué gratuitement ? En pratique, peu de logiciels libres sont payants. La plupart du temps, le code source du logiciel est gratuit, mais c'est le support associé qui est rémunéré. Par exemple, le logiciel de développement que j'utilise actuellement est libre, mais mon entreprise paye la société qui le distribue pour corriger rapidement les bugs que nous rencontrons, ou ajouter de petites fonctionnalités. Je peux par contre utiliser la version amateur, sans support, gratuitement, à la maison.

L'utilisateur a également le droit d'"étudier" le logiciel : en pratique, cela signifie qu'il a le droit d'accéder au code source du logiciel pour comprendre (ou essayer de comprendre) comment celui-ci fonctionne. On parle alors de logiciel "Open-source" puisque ses sources sont accessibles à tous ; "ouvertes". Bien entendu, ce droit est surtout destiné aux développeurs : ceux qui sont capables de lire le code source.
Hormis le côté éducatif, ce droit a un avantage direct pour un logiciel libre : les bugs et autres erreurs dans le code source sont visibles par tous et donc, le plus souvent, rapide ment détectés. Cela explique également pourquoi les logiciels libres les plus utilisés proposent des mises à jours régulières : les erreurs sont fréquemment corrigées et on en fait profiter les utilisateurs le plus rapidement possible.
Enfin, dans le domaine scientifique, il y a un autre intérêt direct : la vérification. Dans un code de calcul notamment, il devient possible de vérifier les formules et algorithmes qui ont été employés. En cela, le logiciel libre garde l'esprit scientifique (particulièrement mathématique / pas de brevets en maths) qui veut que le savoir soit accessible à tous.

Le logiciel libre en pratique

Beaucoup de logiciels libres sont soutenus par une "communauté". Ce terme, qui fait un peu penser à "secte", "hippy" ou "communisme", désigne simplement un groupe de personnes soutenant un logiciel libre. Il s'agit bien sur de programmeurs qui le développent, mais aussi de simples utilisateurs qui l'utilisent bien sûr, mais aussi qui le testent (et donc préviennent de certains bugs), le diffusent, écrivent de la documentation (aide, wiki, manuels, etc...), font sa publicité, aident les débutants ou même le soutiennent financièrement.

Ce côté communautaire fait souvent croire que le logiciel libre est uniquement l'affaire de quelques passionnés, et que les entreprises ne les emploient jamais. Cela est faux.

Pour le simple utilisateur, un logiciel libre a plusieurs avantages. Comme on l'a vu précédemment, il est souvent gratuit, facilement trouvable puisque librement distribuable et mis à jour régulièrement.
Ensuite, du fait de l'ouverture du code, les logiciels libres sont souvent personnalisables puisque n'importe qui peut proposer un module complémentaire (comme un aspect graphique ou un add-on sous Firefox).
Enfin, de par la compétition (pour ne pas dire guerre) entre les logiciels libres et les logiciels propriétaires, les communautés attachent beaucoup d'importance à aider les nouveaux arrivants, notamment sur les forums d'aide (en principe du moins...).

Un aspect important du libre en informatique réside dans les standards des formats, ce point étant vital pour les utilisateurs de base et probablement encore plus pour les entreprises. Un format, c'est les dernières lettres d'un fichier : par exemple .jpeg ou .gif pour une image, .mp3 ou .ogg pour une chanson, .doc ou .rtf pour un document texte ou encore .xls pour un classeur Excel.
Plus que trois lettres après un point, ces formats désignent la façon dont la machine écrie et lit ces documents : c'est une représentation de la donnée de départ en langage machine ; en règle générale, un être humain ne peut pas lire ces formats.
Le problème est qu'il existe des formats propriétaires. Une entreprise peut donc décider de déposer une licence propriétaire, ou un brevet sur un format qu'elle aurait "inventé". C'est le cas pour Microsoft avec le .doc et le .xls ou le .aac par Sony (entre autres). Alors, elle peut décider de "libérer" son utilisation ou non.
Dans tous les cas, ces formats posent problèment car d'une part, une entreprise peut décider d'abandonner un format (si Microsoft abandonne le .doc, comment ouvrir ses documents dans 10 ans ?) ou d'autre part de restreindre sa diffusion en faisant payer les producteurs d'autres logiciels l'employant. Ou encore de se réserver entièrement les droits sur un format : par exemple pour de l'audio pour écouter un tel format créé par Toshiba, vous devez acheter un lecteur Toshiba (simple exemple).

En général, les logiciels libres préfèrent créer ou/et employer des formats libres et standards assurant ainsi la compatibilité entre les différentes applications (par exemple un format de tableau pourrait être lisible par différents logiciels tableurs -comme Excel-) ainsi que la pérennité des documents.

Quelques exemples de logiciels libres (propriétaires) :

  • Firefox ; navigateur web (InternetExplorer, Safari, Opera...)
  • Thunderbird ; outil de messagerie (Outlook Express...)
  • Azureus, EMule ; peer-to-peer (?)
  • OpenOffice.org ; suite bureautique (Microsoft Office...)
  • Linux ; système d'exploitation (Windows, MacOS)
  • The Gimp ; dessin et traitement d'image (Paint, Photoshop...)
  • SciLab ; outil scientifique (MatLab, Maple...)
Références :


Alors Maman, tu as compris ?

Les commentaires sont ouverts !

4 commentaires:

Lefty a dit…

Excellent!
(revois quelques pains orthographiques)

C'est clair, net et précis, et pour des gens comme moi, et, je suppose ta mère, ça tranforme l'abscons en péremptoire, non, compréhensible.

Beau début de série, les notions de base pour les pas complétement nuls qui aimeraient en savoir plus?

En tout cas, je blogue.

Sobe a dit…

Aye Caramba ! Oui, c'est plein de fautes... Je m'achète un Bled et je corrige ça !

Bon, le but c'est vraiment expliquer à un débutant complet qui n'a pas nécessairement envie d'aller bien plus loin, mais à qui ça fera pas de mal de savoir. C'est moins clair du coup...

Je pensais effectivement en faire une petite série... Peut-être quelques notions de sécurité informatique pour le prochain, qui sait ?

Anonyme a dit…

Droit de Réponse

c'est pas faux

depuis hier, je me sens transformée, dire que je passais à côté de toutes ces choses merveilleuses. je me suis même fait les onglets façon firefox...

C'est toute joyeuse que j'ai débuté ce matin, mes stats( à moi) sur un logiciel LIBRE, FORMIDABLE:une feuille de pelure et un HB( bien appointé-no bug).

Du coup, j'ai pris moi aussi quelques libertés type extrapolation à la louche et corrélations au feeling.

Ton article , je l'ai lu 3 fois et j'ai tout compris( non, je déc...),maintenant, on m'appelle Chuck Norrissette.

Bravo, mon p'tit Loup, je te félicite, je savais que tu irais loin quand je changeais tes couches ( eh oui, c'est moi qui m'y collais,le mot est bien choisi)

N'oublie pas quand même de te brosser les dents et de ne pas te coucher trop tard.

la maman de SOBE

Sobe a dit…

Mâmaaaaan...

Hum ! Bon, et bien mission plus ou moins accomplie donc.

Pour les stats, y a "A_la_louche.exe" comme logiciel libre je crois... ça marche un peu comme "preservatif 2.0" pour le problème des couches à changer ^^'.