{"partition": "head_middle", "source_domain": "www.gnu.org", "digest": "sha1:PV5AEQL3VBI4XLILRHQLX6E56UNUKA6A", "path": "/lustre/fsn1/projects/rech/qgz/uzq54wg/processed_redpajama/base_processing/output/fr/2014-15/000_00011.parquet"}
Lire l'article Accessibilité
English [en] العربية [ar] español [es] فارسی [fa] français [fr] hrvatski [hr] 日本語 [ja] polski [pl] русский [ru] українська [uk] REJOIGNEZ LA FSF !
Information GNU/FSF (traduite)
Le système d'exploitation GNU
Soutenu par la Free Software Foundation
À propos de GNU
Aidez GNU
L'original de cette page est en anglais.
Le piège JavaScript
par Richard Stallman
Vous exécutez peut-être des programmes non libres sur votre
ordinateur chaque jour sans même vous en apercevoir – par l'intermédiaire de
votre navigateur web.
Dans la communauté du logiciel libre, l'idée que les programmes non libres
nuisent à leurs utilisateurs est familière. Certains d'entre nous refusent
totalement d'installer des logiciels privateurs1, et beaucoup d'autres considèrent que la
non-liberté est une attaque contre le programme. Beaucoup d'utilisateurs
sont conscients que ce problème s'applique aussi aux modules que les
navigateurs proposent d'installer, car ils peuvent être libres ou non.
Mais les navigateurs exécutent d'autres programmes non libres pour lesquels
ils ne demandent pas votre avis – des programmes que contiennent certaines
pages web ou vers lesquels elles ont des liens. Ces programmes sont le plus
souvent écrits en JavaScript, bien que d'autres langages puissent être
utilisés.
JavaScript (dont le nom officiel est ECMAscript, mais peu de gens utilisent
ce nom) était autrefois utilisé pour faire des effets frivoles, certes jolis
mais non essentiels à la navigation et aux fonctionnalités d'affichage. Il
était acceptable de les considérer comme de pures extensions du langage de
balises HTML, plutôt que comme de vrais logiciels ; ils ne représentaient
pas un problème significatif.
Beaucoup de sites utilisent encore JavaScript de cette façon, mais certains
l'utilisent pour des programmes conséquents réalisant des tâches
importants. Par exemple, Google Docs télécharge sur votre machine un
programme JavaScript qui pèse un demi megaoctet, dans une forme compactée
que nous pourrions appeler Obscurscript car il n'y a aucun commentaire et
très peu d'espaces, et les noms de méthodes ne font qu'une lettre. Le code
source d'un programme est la forme préférée pour le modifier ; le code
compacté n'est pas du code source, et le vrai code source n'est pas
disponible pour l'utilisateur.
Normalement, les navigateurs ne vous disent pas quand ils chargent des
programmes JavaScript. La plupart des navigateurs ont un moyen de désactiver
JavaScript totalement, mais aucun d'eux ne peut vérifier si des programmes
JavaScript sont non triviaux et non libres. Même si vous en étiez conscient,
vous auriez beaucoup de mal à identifier et bloquer ces programmes. De toute
façon, même au sein de la communauté du logiciel libre, la plupart des
utilisateurs ne sont pas conscients de ce problème ; le silence des
navigateurs tend à le dissimuler.
Il est possible de publier un programme JavaScript en tant que logiciel
libre, en distribuant le code source sous une licence libre. Mais même si le
code source du programme est disponible, il n'existe pas de moyen facile
d'exécuter votre version modifiée à la place de l'original. Les navigateurs
libres actuels ne proposent pas de fonctionnalité permettant d'exécuter
votre version modifiée à la place de celle qui est fournie par la
page. L'effet est comparable à la tivoïsation bien que moins difficile à
outrepasser.
JavaScript n'est pas le seul langage que les sites web utilisent pour les
programmes envoyés aux utilisateurs. Flash supporte la programmation par
l'intermédiaire d'une variante étendue de JavaScript. Il nous faudra étudier
le problème de Flash pour faire des recommandations appropriées. Silverlight
semble poser un problème similaire à Flash, excepté qu'il est pire, car
Microsoft l'utilise comme plateforme pour des codecs non libres. Un
remplacement libre de Silverlight ne ferait pas l'affaire pour le monde du
libre, à moins qu'il ne propose des codecs de remplacement libres.
Les applets Java s'exécutent aussi dans le navigateur et soulèvent des
problèmes similaires. En général, toutes sortes d'applets système posent ce
genre de problème. Avoir un environnement d'exécution libre pour un applet
ne fait que déplacer le problème.
Un fort mouvement s'est développé qui appelle les sites web à ne communiquer
qu'avec des formats et des protocoles libres (certains disent « ouverts ») ;
c'est-à-dire, dont la documentation est publiée et que chacun est libre de
mettre en œuvre. Avec la présence de programmes dans les pages web, ce
critère est nécessaire mais pas suffisant. JavaScript lui-même, en tant que
format, est libre : utiliser JavaScript dans un site web n'est pas
nécessairement mauvais. Cependant, comme nous l'avons vu plu