Qu'est-ce qu'un logiciel ?
Le terme de "logiciel" traduit l'anglais software (1967, Philippe Renard, Commission spécialisée de terminologie et de néologie de
l'informatique et des composants -
http://ensmp.net/cstic).
extrait du
répertoire terminologique 2000 :
logiciel, n.m.
Domaine : Informatique.
Définition : Ensemble des programmes, procédés et règles, et éventuellement de la documentation, relatifs au fonctionnement d'un ensemble de traitement de données.
Équivalent étranger : software.
(Source : arrêté du 22 décembre 1981)
Le terme "programme" se définissant comme une suite d'instructions permettant de réaliser une ou plusieurs tâche(s), de résoudre un problème, de manipuler des données. Le programme est l'expression d'un algorithme dans un langage donné pour une machine donnée. (Source :
le Jargon Français)
Histoire du logiciel
Mais derrière les désignations, il y a leur usage, et derrière les choses il y a leur changement. Le mot
logiciel peut en effet être utilisé à diverses fins, et avec des arrière-pensées, il peut être instrumentalisé pour désigner des
pratiques liées à la diffusion de programmes informatiques ou à leur production. Le
logiciel lui-même a changé dans l'histoire de l'informatique.
Epoque 1 - Qu'est-ce qu'un logiciel, avant l'assembleur (
une liste de code binaire) et après (
une liste de mnémoniques adaptés à une famille de microprocesseurs) ? L'apparition de langages de haut niveau va déplacer le problème et bientôt mettre la question du code source au centre des débats...
Epoque 2 - Car qu'est-ce qu'un logiciel depuis le langage A0 (premier langage compilé
Grace Hopper 1951) ou surtout le langage C (
Dennis Ritchie 1972) Le logiciel devient alors plus indépendant du matériel, mais dépendant d'un compilateur, d'où la nécessité aux yeux de Richard M. Stallman de disposer d'emblée d'un compilateur libre pour le mouvement GNU (gcc). S'agit-il du
code exécutable (binaire compilé pour une machine), du
code cource ? Le code exécutable n'est qu'une
compilation dans un environnement donné, du code source. La diffusion commerciale de binaires sans code source semble pourtant distinguer les deux états du logiciel. D'autant qu'un
logiciel particulier fait son apparition : le logiciel qui permet l'exécution de logiciels dans un environnement matériel riche et changeant : le système d'exploitation...
Epoque 3 - Qu'est-ce qu'un logiciel depuis qu'ils s'exécutent dans un système d'exploitation (CP/M, MS-DOS... Windows©, Linux, etc...) ? Le logiciel est non seulement dépendant du compilateur mais également de l'environnement et/ou des bibliothèques qu'il utilise. Le logiciel peut alors n'être un
runtime ou
une extension d'un système d'exploitation. Mais le même logiciel (Word© par exemple) est
porté pour différents systèmes d'exploitation. Car les systèmes d'exploitaiton (
OS) se ressemblent, voient converger leur ergonomie. Mais arrivent les langages interprêtés ou compilés à la volée...
Epoque 4 - Qu'est-ce qu'un logiciel depuis que les machines virtuelles (java ou python) ou les protocoles réseaux font la part belle à des scripts pour lesquels la notion de
binaire n'a plus de sens ? Le logiciel est-il
une extension d'une machine virtuelle ou
une utilisation d'une machine virtuelle ? On reconnaît dessous la question du statut des langages de scripts utilisés.
Au sens descriptif, le terme de
logiciel a tendance à recouvrir par métonymie le programmes et ses accessoires, mais aussi les états de son histoire. En particulier, la documentation, et ce qui est
livré avec. Mais le droit ne considère pas la documentation d'un logiciel comme en faisant nécessairement partie, pas plus que les cahiers des charges ou l'idée.
Remarque
Une décision du Tribunal de Grande Instance de Créteil (Affaire n°12751/94 citée dans Informatique et Télécoms, Ed. Francis Lefèvre Maj mai 1999)
du 13 janvier 1998 distingue quand même l'
astuce de l'
idée. On ne peut protéger l'idée, mais l'implémentation d'une idée peut être
astucieuse!
Juridiquement, le logiciel, c'est le programme ou ce qui peut permettre de le réaliser.
La définition
juridique du logiciel en France et en Europe recouvre le
programme informatique en tant que tel (il va bien falloir le définir...), mais également le matériel de conception préparatoire, à la condition que ces travaux préliminaires soient susceptibles de permettre la réalisation d'un programme à un stade ultérieur (l'analyse, car il clair qu'il ne peut s'agir du cahier des charges qui n'est pas sous le même régime juridique).
de ces différents éléments,
1) idée
2) cahier des charges et analyse globale
3) analyse détaillée (libre, ou dans une
méthode particulière, voire dans un langage de modélisation (CORBA, UML)
4) code source
5) code exécutable
6) documentation
il semble que seuls les éléments 3, 4 et 5 soient des composantes du
logiciel. Le logiciel (le programme ou ce qui peut permettre de le réaliser) est donc une
implémentation d'une idée.
Enquête philosophique sur la nature du logiciel
L'implémentation d'une idée par un système informatique requiert une analyse théorique de peur de voir le droit en rester à des états anciens de l'informatique. Ainsi, si un
programme est
lisible, exécutable et portable, se posent quelques questions.
Lisible (analogique/digital) - le système de traduction analogique/digital
Exécutable (code source/code exécutable) - le compilateur
Portable (binaire/environnement d'exploitation) - système d'exploitation, machine virtuelle
Remarque sur les brevets logiciels et les brevets sur le vivant
On pourrait se demander si l'ADN est l'implémentation d'une idée. Et l'on comprendra aussitôt pourquoi aux yeux des philosophes la question de la brevetabilité des logiciels est du même ordre que la question de la brevetabilité du vivant, il s'agit dans les deux cas de s'intéresser au lien qui unit une idée et son implémentation. Dans les deux cas se pose sérieusement la question de savoir si l'appropriation de l'implémentation est ou non appropriation de l'idée.
Définitions juridiques
Quel droit sur le logiciel ? Quelles protections ? (sur e-Droit) - par Nathalie BESLAY
Définitions philosophiques
What is software ? - par Peter SUBER