Traduction française de la page info coreutils, section Toolbox

source: http://www.gnu.org/software/coreutils/

Copyright (C) 1994-1996, 2000-2010 Free Software Foundation, Inc.

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or any
later version published by the Free Software Foundation; with no Invariant
Sections, with no Front-Cover Texts, and with no Back-Cover Texts.  A copy
of the license is included in the section entitled "GNU Free Documentation
License".

Introduction à la boîte à outils

L'article de ce mois-ci n'est relié au projet GNU que de manière indirecte, dans le sens où il décrit un certain nombre d'outils GNU sur votre système GNU/Linux, et comment ils peuvent être utilisés. Ce dont il est réellement question est la philosophie d'"outils logiciels" propre au développement et à l'usage de programmes.

La philosophie des outils logiciels a été un concept important et intégral dans le design et le développement initial d'Unix (duquel Linux et GNU sont essentiellement des clones). Malheureusement, à l'époque moderne des interfaces graphiques tape-à-l'œil et des applications en ligne, celle-ci semble avoir été mise de côté. C'est une grande perte car elle fournit un modèle mental puissant pour résoudre de nombreux types de problèmes.

De nombreuses personnes portent sur elles un couteau suisse. C'est un outil pratique à avoir: il possède plusieurs lames, un tournevis, une pince à épiler, un cure-dents, une lime à ongles, un tire-bouchons et peut-être encore un certain nombre d'autres choses. C'est tout à fait ce qu'il faut pour les petits travaux divers et variés quotidiens pour lesquels on a besoin d'un outil simple et multifonctions.

D'un autre côté, un charpentier expérimenté ne construit pas une maison à l'aide d'un couteau suisse. Au lieu de cela, il utilise une boîte à outils remplie d'outils spécialisés: une scie, un marteau, un tournevis, un niveau, etc. Il connaît exactement quand et comment utiliser chaque outil; vous ne le surprendrez pas en train de clouer avec le manche de son tournevis.

Les développeurs d'Unix des Laboratoires Bell étaient tous des programmeurs professionnels et des informaticiens expérimentés. Ils ont trouvé que, tandis qu'un programme multifonctions pouvait être attractif aux yeux de l'utilisateur car il n'y a qu'un seul programme à manipuler, en pratique, de tels programmes sont :

Au contraire, ils ont senti que les programmes devraient être des outils spécifiques. Pour être bref, chaque programme "devrait ne faire qu'une chose, correctement". Pas plus, ni moins. De tels programmes sont plus faciles à concevoir, à écrire, et à maintenir -- ils n'exécutent qu'une seule chose.

De plus, ils ont trouvé qu'avec la bonne mécanique pour raccorder des programmes ensemble, le tout était plus grand que la somme de ses parties. En combinant plusieurs programmes spécifiques, on peut accomplir une tâche spécifique pour laquelle aucun des programmes n'a été conçu, et l'accomplir beaucoup plus rapidement et facilement que si on n'avait à écrire un programme spécifique. Nous verrons par la suite quelques exemples (classiques) de ceci. (Un point additionnel à ne pas omettre: si on n'en a pas déjà un dans sa boîte à outil, il est parfois nécessaire de faire une pause et prendre le temps de construire en premier les outils logiciels dont on aurait besoin, si de tel outils ne sont pas dans votre boîte à outils.)