Depuis que j'utilise des logiciels libres, je me suis tourné vers la programmation mais c'est aussi parce que je voulais faire cette apprentissage que je suis passé à GNU/Linux. De cette expérience, je tire différents savoirs nouveaux et au final, je me demande si je n'ai pas appris d'avantage concernant les éléments périphériques que sur la programmation elle-même... Je fais cette introduction pour dire que l'efficacité sur une machine, telle que je la conçois, je la tire de cette expérience et des logiciels qui y sont liés.

Je vais donc faire une liste des logiciels qui me semblent décupler mon efficacité mais aussi mon plaisir à travailler.

ZSH

L'un de mes premiers apprentissages, lorsque je suis passé à un OS libre, fût d'apprendre à utiliser la console. Comme je pense la majorité des gens, j'ai commencé par Bash. Bash, c'est bien, mais c'est peu palpitant. J'ai lu beaucoup d'avis positifs sur ZSH alors j'ai testé et aujourd'hui, je ne peux plus me passer de - sa complétion - l'usage de jokers récursifsGNU-Screen/Tmux

Nous voilà doté d'un shell digne de ce nom, passons maintenant à la dimension du dessus, l'organisation du terminal. Ouvrir des fenêtres à chaque fois que l'on a besoin d'un prompt, c'est rapidement fatiguant. Des multiplexeurs de terminaux comme screen ou Tmux (fonctionnalités très proche, l'un ou l'autre fait l'affaire généralement) nous facilitent la vie. Je le considère pour ma part comme étant un gestionnaire de fenêtre, tout aussi important que d'avoir Gnome ou openbox. Je peux ainsi avoir un équivalent de bureaux virtuels, que je peux nommer pour me repérer. Par exemple, une fenêtre avec le fichier de conf, une avec le code, et une autre pour parcourir les répertoires où sont écrites les données. D'autres arguments dans la suite. Avec Screen, je n'accorde plus vraiment d'importance à l'émulateur de terminal parce que je n'utilise aucune de ses fonctionnalité, si ce n'est une seule : qu'il puisse apparaître en plein écran et disparaître par l'action d'une touche (console top/down). J'utilise tilda, mais ça pourrait être autre chose.

VIM

Editer des fichiers, en console, c'est pour le moins fréquent. Dès mes premiers pas, j'ai voulu apprendre autre chose que nano. Pour couper court au débat, je n'ai jamais utilisé emacs et avec vim, je suis certain qu'il sera disponible sur 99,99% des machines que je rencontrerai. Il a une large panoplie de greffons, les possibilités sont infinies. Ca permet de faire de l'adminsys, de la rédaction, du développement...

SSH

SSH est juste un outil incontournable. Bien sûr, ça permet de joindre une machine distante, mais pas que. C'est aussi le moyen d'envoyer des fichiers, d'établir un proxy ou de passer à travers un réseau NATé. C'est rapide et sécurisé. Lorsqu'on utilise SSH, on apprécie de savoir utiliser Screen ou Tmux. - si la connexion lâche, screen se détache et la mise à jour critique en cours n'est pas plantée au milieu, et là, on est heureux. - si on a travaillé sur une machine localement et qu'on souhaite s'y reconnecter par le réseau plus tard, on peut récupérer la session screen restée ouverte. Autrement dit, je retrouve exactement le même environnement qu'en local.Git

Ca, c'est un gestionnaire de version qu'on ne présente plus. Je gère mes projets avec, mais aussi ma synchronisation de fichiers et un wiki comme ça (j'en ai parlé ici déjà). Je ne connais même pas le 1/100e de ses possibilités et il m'est néanmoins indispensable.

Python

J'ai codé dans un certain nombre de langage. Je ne peux pas dire que je les maîtrise (même python) car je ne suis pas un développeur expert par manque de temps plus que d'envie. Après avoir codé pendant un certain temps en bash mes scripts systèmes, j'ai découvert Python, et aujourd'hui c'est mon couteau suisse : - scripts systèmes - code scientifique - petits utilitaires La syntaxe est claire, ce qui fait du code maintenable. Les bibliothèques sont très variées ce qui permet de couvrir un grand nombre de besoin. Enfin, c'est suffisamment haut niveau pour écrire rapidement un code fonctionnel et c'est important ; on n'est rarement là pour faire des exercices de style. En clair, investir dans un langage polyvalent comme celui-ci, ça permet de se sortir de problèmes lourds rapidement et sans trop d'effort.

Conclusion

Ces outils, je les utilise tous les jours, sans exception. Il n'y a que pour le courriel et le web où je suis resté sur des outils "populaires" avec Firefox et Thunderbird.

Le dénominateur commun à tous ces outils : - c'est austère. Oui, mais c'est épuré, et ça a l'avantage que le contenant ne distrait pas du contenu. - ça demande un apprentissage qui peut être parfois long. En contre-partie, ce sont des outils que l'on verra encore probablement pendant quelques décennies.