Développer sous Unix
Ce n’est pas un secret, Microsoft domine allègrement le cercle fermé des systèmes d’exploitation, y compris dans le monde de la programmation. Et même si certains peuvent se permettre de s’équiper d’un MacBook, Windows reste le plus répandu. Mais ce cercle est-il vraiment si fermé ? Peut-être avez-vous déjà eu la chance de croiser l’outsider sur un serveur de votre entreprise, où sur le PC de votre geek à lunettes préféré ? Je veux bien sûr parler de la grande famille d’Unix, au sein de laquelle les spécifications Linux et BSD sont les plus connues à ce jour.
1. Idées fausses
La part de marché de cette famille ne cesse d’augmenter, certes, mais son adoption reste encore assez limitée en dehors des serveurs du monde industriel. Ceci est en grande partie dû au fait que presque tout PC vendu sur le marché est fourni avec une license Windows, mais également à des a priori vieux de plusieurs années. Seulement ces a priori ne sont plus valables aujourd’hui.
- “ Linux est compliqué à installer “: faux, la plupart des distributions grand public s’installent en 4 à 5 clics sur le bouton “Suivant”. Il y a quelques exceptions telles qu’Arch Linux ou Gentoo Linux, mais celles-ci restent tout de même une expérience bien plus plaisante que le vénérable installeur de Windows XP.
- “ Linux est moche “: faux, je vous invite à regarder Gnome ou KDE de manière générale, et des distributions un peu plus spécialisées comme Deepin ou elementaryOS. Aujourd’hui Linux a plutôt le dessus sur Windows côté esthétique, et même MacOS selon les goûts.
- “ Linux est en ligne de commande ” faux, et celà rejoint le point du dessus. Si la ligne de commande vous donne des boutons, il existe aujourd’hui des interfaces graphiques pour tout. Le troisième age serait capable d’utiliser la plupart des distributions d’aujourd’hui.
2. Avantages
Linux et BSD présentent de nombreux avantages, notamment pour les développeurs, aussi bien au niveau matériel que logiciel. Linux et BSD sont gratuits, open source, sécurisés, respectent votre vie privée, et offrent un contrôle total sur les logiciels et les mises à jour.
- Linux requiert très peu de ressources et peut tourner sur de très vieux PCs, par exemple un Xfce pourra se contenter de 5Go d’espace disque et de 2Go de RAM. Il faut compter le double pour un Gnome ou un KDE, en incluant bien sûr tout l’écosystème applicatif, là où un Windows 10 occupera entre 20 et 40Go d’espace disque selon l’édition, et sera beaucoup moins réactif en dessous de 8Go de RAM.
- Linux offre tout un éventail d’applications open source et closed source à portée de main, en passant par un package manager qui se charge de les télécharger depuis les dépôts de paquets de votre distribution. Bien sûr la majorité des langages de programmation et des IDEs sont supportés, finie la multitude d’onglets ouverts sur Google Chrome pour installer votre environnement de développement. Une petite ligne de commande suffit, ou quelques clics dans l’interface graphique de votre distribution si vous y êtes allergique.
- Certes la ligne de commande est tout à fait optionnelle, comme j’ai pu le souligner à plusieurs reprises, mais c’est aussi une des plus grandes forces de Linux. Le terminal et son shell, par défaut Bash sous Linux, Csh ou Tcsh sous BSD, vous permettront d’automatiser et de simplifier vos tâches répétitives du simple commit à la compilation du programme le plus retors. Des shells spécialisés tels que Zsh ou Fish vont encore plus loin en proposant des fonctionnalités et des plugins qui boosteront davantage votre workflow.
- Développer sous Linux vous confèrera également un énorme avantage dans le contexte DevOps actuel, où vous serez amené à manipuler les serveurs qui tournent très certainement sous Linux. Vous serez déjà familier avec la ligne de commande, et votre machine sera d’autant plus proche de l’environnement de run, ce qui évitera des écueils liés à des incompatibilités entre Linux et Windows. Vos images docker tourneront aussi nativement, plutôt qu’à travers une machine virtuelle digne du scénario d’Inception.
3. Recommandations
Vous êtes motivé(e), mais désemparé(e) face à la liste non exhaustive des 276 distributions Linux et BSD sur DistroWatch ? Même si je ne doute pas de la couleur de votre ceinture de Google-Fu, voici tout de même quelques recommendations.
- Si vous débutez et n’avez jamais vraiment touché à un Linux, Ubuntu est fait pour vous. L’édition classique vient avec Gnome, si votre matériel est un peu plus modeste vous pouvez partir sur Xubuntu ou Lubuntu, respectivement les variantes Xfce et Lxde de la distribution.
- Si vous travailliez précédemment sous Windows ou MacOS et cherchez un environnement familier, orientez-vous plutôt vers Linux Mint ou elementaryOS. Le premier tourne par défaut sous Cinnamon qui ressemble beaucoup à Windows, et le second est sous Pantheon qui s’inspire en tout point de la pomme.
Enfin si vous êtes un hardcore developer et que vous avez déjà 3 clés bootables dans votre sac, vous êtes prêt(e)s pour Arch Linux, ou Gentoo Linux si compiler le kernel fait partie de votre bucket list. Ces distributions sont des rolling release, elles n’ont pas de version fixe comme Ubuntu et se mettent à jour continuellement. FreeBSD est aussi un excellent choix si vous préférez BSD.