Ligne de commande

Je ne suis pas un fan de la ligne de commande. Certains de mes billets contiennent même de nombreuses critiques, plus ou moins bien argumentées contre l'utilisation de la ligne de commande. Et pourtant, il se trouve que je l'utilise tous les jours... Alors pourquoi tant de haine ?

L'argument de la difficulté de la ligne de commande est souvent l'argument le plus présenté dès qu'il s'agit de critiquer Linux ou plus exactement ses différentes distributions. L'argument avancé est que la ligne de commande n'est pas une interface utilisateur suffisante pour un débutant. Je confirme.

Le principe de la ligne de commande est de lancer directement des commandes, sans avoir à passer par la potentielle profondeur d'une interface graphique. Par exemple, il suffit de taper curl www.google.fr (sous Mac OS X) pour télécharger la page d'accueil de Google, selon les circonstances, cela peut potentiellement être plus rapide que de charger la page dans mon navigateur et de lui demander d'enregistrer cette page dans un fichier de mon disque dur. Bien sûr, le fait que la ligne de commande soit plus pratique dans ce cas dépend de nombreux facteurs : à quel point je sais utiliser mon navigateur, si l'URL se trouve dans mon presse-papier ou dans un lien, si ma ligne de commande est accessible rapidement, etc.

Le problème de cette ligne de commande est que la connaissance des commandes se trouve forcément dans la mémoire de l'utilisateur, aucun moyen pour un nouvel utilisateur de découvrir par lui-même la commande pour télécharger une URL. Avec Firefox, un utilisateur peut toujours parcourir les menus, découvrir la fonction de sauvegarde, l'essayer et en déduire son fonctionnement, bref l'apprendre. Ce qui différencie la ligne de commande de l'interface graphique est que l'interface graphique place la connaissance des fonctions dans le monde extérieur plutôt que dans la mémoire de l'utilisateur pour la ligne de commande.

Pour plus d'informations sur la différence entre placer la connaissance dans le monde extérieur et dans la mémoire utilisateur, je vous conseille l'excellent livre de Donald Norman : The Design of Everyday Things.

Le vrai problème de la ligne de commande n'est donc pas son principe mais bien que les connaissances nécessaires à son utilisation doivent se situer dans la mémoire de l'utilisateur, l'obligeant à effectuer cette phase d'apprentissage avant de réellement pouvoir utiliser l'outil. Cette phase provoque une frustration puisque l'utilisateur ne peut pas appliquer le principe d'essais et erreurs pour découvrir l'outil par lui-même.

Couverture du livre The Design of Everyday Things

Plus tard, lorsque les règles régissant l'outil sont comprises (chercher une commande sur Google, chercher dans le répertoire /bin, consulter les pages de documentation, etc.), l'utilisateur peut alors reprendre un processus à base d'essais et erreurs. Mais c'est la première phase d'apprentissage qui est généralement la plus frustrante et amène à des conclusions hâtives comme la ligne de commande est un outil d'une autre époque.

Pourquoi un billet si modéré alors que j'ai depuis tant d'années si violemment critiqué la ligne de commande ? Tout simplement parce que cela fait maintenant plus de 4 ans que j'utilise Mac OS X et que j'utilise de plus en plus la ligne de commande sur ce système. Contrairement à Windows, la ligne de commande Mac est issue du monde Unix et propose des outils qui permettent de réaliser rapidement des opérations, parfois plus rapidement que dans l'interface graphique.

Mais l'avantage de Mac OS X sur de nombreuses distributions Linux est que la ligne de commande n'est pas nécessaire pour une utilisation basique du système. Pour prendre un exemple concret (mais loin d'être scientifique) :

  • sur le forum de support Général Ubuntu-fr, je dénombre 10 sujets sur les 30 de la première page qui ont une question ou une réponse faisant appel à la ligne de commande ;
  • sur le forum de support Mac OS X, je ne dénombre qu'un seul sujet mentionnant la ligne de commande dans les 15 de la première page.

30 % contre 6 %, la comparaison est vite faite... Heureusement, des distributions comme Ubuntu ou Mandriva comblent ses lacunes en développant toujours plus de petits outils graphiques destinés à fournir aux utilisateurs certains fonctions jusqu'alors limitées à la ligne de commande.

Attention, mon but n'est pas de taper sur Linux mais simplement de pointer du doigt les sources de frustration des utilisateurs quand ils utilisent un nouvel outil. Ceci afin que ceux qui aident ces nouveaux utilisateurs puissent y répondre plus facilement.

Mon but est également de montrer que cette frustration peut amener à trop vite abandonner la ligne de commande, comme par exemple celle de Windows qui malgré ses grosses limitations possèdent des fonctionnalités intéressantes, encore plus si on y ajoute le module Cygwin (attention, le site est laid) permettant de profiter des outils Unix. À ces utilisateurs qui comme moi ont été frustré par la ligne de commande, je recommande la lecture du livre de Andrew Hunt et David Thomas : The Pragmatic Programmer qui détaille des cas pratiques d'utilisation des outils Unix et de la ligne de commande pour un travail de programmation.

Couverture de The Pragmatic Programmer

Haut de page