
Comment choisir la bonne distribution Linux pour développer, je me suis posé cette question beaucoup de fois, j’ai du essayer tous les environnements de bureau, et à part OpenSuse, j’ai du tester presque toutes les distributions de bases connues sous GNU/Linux.
Pourquoi passer sous Linux pour un développeur?
C’est la première question à se poser, pourquoi passer sous Linux? Si vous cliquez sur le lien précédent, vous aurez une réponse plus globale à cette question. Le meilleur système d’exploitation pour développer, à mon sens est Linux. Windows est complètement hors course, quant à OSX il s’en rapproche un peu plus.
Si vous avez développez une application sous PHP, vous allez très sûrement l’héberger sur le serveur web le plus connu au monde: HTTPD Apache. Tous les hébergeurs français (ou presque) utilisent ce serveur, et sous Linux. Vous avez donc tout intérêt à développer votre logiciel sur un serveur HTTPD sous Linux, non?
Pourquoi Linux est le meilleur système d’exploitation pour les développeurs?
Tout simplement car il est au plus proche de votre environnement final… L’application que vous êtes en train de développer, vous allez sûrement la mettre en production un jour. Dans n’importe quel langage (Java, PHP, JavaScript), vous allez devoir tester votre application, choisir un bon serveur, la bonne distribution Linux…
Vous pouvez totalement acheter une licence Microsoft à un bras pour héberger votre application PHP sur IIS! Mais attention à la sécurité, aux plantages, aux frais…
Si nous choisissons tous d’installer nos applications sur des serveurs (web ou non) sous Linux, c’est car la sécurité, la performance et la communauté sont garanti.
Le gros problème de Linux pour développer
A partir du moment où vous avez choisi Linux, vous êtes bon! Encore faut-il gérer correctement son environnement de développement et son environnement en production.
Sous Linux, il y a un gros « problème » de gestion des versions. Par exemple, Debian, la version Linux la plus connue et popularisée par Ubuntu, fonctionne sur un cycle de sortie des mises à jour très particulier, c’est ce qui en fait notamment un système stable. Pour ceux que ça intéresse, voir la FAQ de Debian sur comment un paquet devient stable.
C’est la chose que vous devez connaître avant de choisir votre version de Linux!
Pendant des années j’étais sous Debian, puis sous Centos; et sur ces versions de Linux prévu pour être utilisées en tant que serveur, vous allez avoir beaucoup de mal à retrouver les dernières versions de vos logiciels.
Vous allez devoir passer par des PPA pour avoir Java 8 sous Debian 8, passer par un répo privée comme Remi pour avoir la dernière version de PHP sous Centos 7…
Quelle distribution Linux choisir pour développer?
En partant de ce constat, vous allez devoir choisir une version Linux pour développer qui fonctionne avec des cycles de mises à jour plutôt courts; et configurer votre serveur de production avec les repositery non-officiels.
J’ai découvert Antergos suis une vidéo de Grafikart:
https://www.youtube.com/watch?v=jOx_dPT4cy8
Antergos a le slogan suivant: « Your Linux. Always Fresh. Never Frozen.« . Autrement dit il fonctionne sur un système de mises à jour en continue appelé Rolling Release. Cela vous permet d’avoir les dernières versions des logiciels une fois sortie. Les logiciels sont testés par les équipes de développement et directement envoyés; aucun temps d’attente ou presque.
L’inconvénient majeur de cette pratique est la stabilité du système qui s’en trouve détériorée. Les logiciels sont beaucoup moins testés que sur des systèmes comme Debian ou Centos, du coup votre machine a plus de chances de planter; ce qui signifie que ces distributions Linux ne doivent PAS être utilisées sur un serveur en production.
Je n’ai jamais planté mon Linux en 2 ans d’utilisation sous Antergos, vous pouvez y aller. Antergos étant basé sur ArchLinux, vous aurez le meilleur Wiki disponible sous Linux en cas de problème.
Le fait de disposer des dernières versions pour développer vous permettra d’utiliser les dernières technologies, Debian a en moyenne 1 ans / 1an et demi de retard sur les mises à jour…
Vigen
B’Soiiiiir !! 🙂
Dommage de ne pas avoir essayé openSUSE.
Je ne met plus que ça. Leap est d’une stabilité exemplaire, et les patterns des « packages » excellent.
Un juste milieu de qualité entreprise, pour la base du système, avec des paquets assez frais.
Deux trois dépots en plus, et c’est le top. YaSt est un super outil…..
Deux machines tournent depuis Leap 42.1 sans ennuis, et avec des montées de versions pépéres….
En ce moment je n’ai pas beaucoup de temps pour le « Woueb », et donc pour être au quotidien dans le terminal….
Concernant les rollings, bonne connexion obligatoire !! 😉
Vigen.
• Lien vers le commentaire
Alex Soyer Auteur(e) de l'article
Bonjour !
Si je m’attendais à ce commentaire 🙂
Qu’est-ce que tu entends par « pattern des packages » ?
A bientôt,
Alex
• Lien vers le commentaire
Vigen
Hello !! 🙂
Il faut bien faire des surpises !! 😉
Un « Pattern » est un groupement de paquets.
Par exemple, pour l’environnement KDE, le pattern KDE Desktop Environment, te permet d’installer KDE. Simple Web Server with Apache2, un petit serveur web etc etc. C’est un groupement de paquets pré-configuré si tu préfères.
https://tr.opensuse.org/Patterns
En tous cas, je ne regrette pas d’avoir misé sur openSUSE. RockSolid….
Séb.
• Lien vers le commentaire
vifier-lockla
C’est bien de dire que Windows est complétement hors course. Quand on affirme un truc de ce genre, il serait bon d’étoffer son propos. « C’est sur qu’il n’y aura pas de débat si je décide unilatéralement que Windows est hors course alors il l’est et puis d’abord c’est mon article, je fais ce que je veux »…dit il le monsieur alors que Linux représente moins de 2% du marché mondial lequel est saturé par…Windows bien sûr.
Que dire des consoles Linux qui apparaissent sur Windows 10 depuis quelques mois maintenant. Il serait bon de revenir à la raison et d’arrêter de jouer les experts. Il existent deux mondes et pour le bien de tous, il serait temps de leur expliquer que l’on peut développer sur tous les OS et qu’il existent beaucoup d’outils et de bibliothèques de développement disponibles sur toutes les plateformes à la fois.
Windows n’est pas hors course. Le seul moment où je me suis senti un peu seul, c’est sur un programme Python avec une bibliothèque mathématiques fourni par Microsoft dont une partie a été développé en Fortran et pour lequel, je n’ai pas été capable de faire fonctionner le compilateur fourni via la plateforme cigwin…Cela commence a piquer un peu. et il s’agit d’un cas particulier.
Bref, avant de commencer à installer un dual boot ou de basculer carrément sur Linux sans rien y connaitre, commencez par une console Linux sous Windows 10 et effectuez vos premier pas : essayez de comprendre comment fonctionne le système de fichiers, la gestion des droits, la gestion des comptes, l’arborescence du système et les répertoire et fichiers importants pour survivre au début.
Trop de personnes démarrent la fleur au fusil et se dégoutent rapidement car ils ont cédé à la cloche des évangélistes auto-proclamés et autres experts en herbe sans vérifier auparavant ce a quoi ils s’exposaient.
C’est à vous de voir…mais souvenez-vous : » Le meilleur des deux mondes ! «
• Lien vers le commentaire
Alex Soyer Auteur(e) de l'article
Bonjour !
J’étoffe dans ce cas mes propos, > 90% des serveurs dans le monde tournent sous Linux. Donc oui, Windows est hors-course.
Quand on parle grand public, il est indiscutable que Windows est un grand leader, pour le reste, pas nécessairement.
Là où j’en viens ici. Sauf si vous développez pour Windows / Azure (les produits Microsoft), avoir un système de développement sous Linux est préférable à mon humble avis. Dans + de 90% des cas, votre développement tournera sous Linux : développer sous Linux prend donc tout son sens.
Je ne suis pas forcément d’accord avec la dernière partie du message, Ubuntu a rendu l’accès à Linux très facile, plus besoin d’utiliser la ligne de commande ! Pour un développeur, il a tout à gagner à passer sous Linux, pour les autres ça se discute.
Là où Linux peut être ardu c’est si jamais SELinux est activé ou qu’on ne maîtrise pas très bien la gestion des droits / la compréhension de systemD qui est adopté depuis quelques bons mois.
Content d’avoir pu échanger !
Alex
• Lien vers le commentaire
Beleneglorion
Alors développeur de 15 ans, Anti windows au possible, pro linux , je ne suis pourtant pas d’accord avec vos arguments, Aujourd’hui , tous serveurs sont en général virtualisé et ou dans le clouud, tout développeur qui se respect aussi utilise la virtualisation sur sa machine. donc qu’on soit sous windows ou linux cela ne change rien.
L’environnement de dev en local étant des containers docker on ne se pose plus la question la question de savoir de sur quoi ca tourne.
Par contre on peut trouver des inconvénients a windows dans se cas ( la gestion des liens symbolique dans les volumes docker sous windows c’est un peu compliqué mais pas insurmontable) et un des performances moindre quand on est sous mac ou windows au niveau des accès fichier
Donc non windows est une solution viable pour un poste de dev a l’heure actuelle.
• Lien vers le commentaire
Roberto
Pas du tout d’accord avec l’article. Est ce que l’auteur a entendu parler de docker….entre autre….Il est possible de developper de manière satisfaisante sur les 3os précités dans a peu près toutes les technos open source! Cest un peu comme si un tennisman joueait mal et accusait sa raquette….lol. « Il se rapproche le plus de l’environnement final ». Foutaise, il peut y avoir de grande difference de config ou version même en étant sous linux du côté dev et prod avec son lot de surprise…Mieux vaut a ce moment la docker sous Windows calqué precisement sur lenvironnement de prod par ex qu’un lamp par defaut…. L’auteur a til egalement entendu parler de linux sub system dans windows 10 très prometteur…Bref, windows nest pas du tout hors course, mac os non plus….Linux est par contre hors course pour utiliser la suite adobe ou autres logiciels graphiques propriétaire qui sont souvent indispensables pour beaucoup de developpeur dans le milieu pro…
• Lien vers le commentaire
Alex Soyer Auteur(e) de l'article
Hello !
Pour vous répondre à tous les deux, la virtualisation ne change pas grand chose à ce que j’ai voulu dire.
Docker ou pas, vous avez plutôt intérêt à ce que votre environnement de dev soit au plus proche de votre environnement de prod. Autrement dit même : même OS, même version des paquets pour la version de votre projet Dockerisé et la version sur serveur en prod, non ?
Pour aller plus loin, tous les développeurs utilisant Docker n’en n’ont pas forcément monté un, donc pour intervenir sur ce dernier si jamais il y a besoin, ce sera déjà plus difficile si vous n’avez jamais utilisé Linux ; et cet argument est aussi valable pour les environnements en production, même si sa gestion est sous-traitée…
Sans même parler de virtualisation (valables pour les gros projets ou dans un cadre d’entreprise), à une époque j’ai travaillé sur tellement de projets qu’il était pour moi hors de question de créer un environnement de dev propre sur lequel travailler avec Docker, imaginez le temps que ça prendrait sur 30 projets ? Pas de temps à y accorder. Avoir un environnement de dev qui se rapproche de son environnement de prod prend ici tout son sens.
« linux sub system dans windows 10 très prometteur »
Et donc avoir un environnement de dev sous Linux ? Bonne idée, je la note !
Pour moi la gestion du CoreUtils (les fonctions de bases du Shell) sont indispensables à maîtriser pour tout développeur amener à évoluer (difficile à utiliser au quotidien sous Windows). Même si vous êtes sous Windows avec un Docker Linux identique à celui de la production, je doute fort que vous fassiez souvent usage du terminal.
Ensuite concernant l’utilisation de suite autre comme Adobe voire Office, on sort pas mal du cadre de développeur classique, on se rapproche sûrement d’un gars qui a plusieurs casquettes, auquel cas ce n’est plus un développeur à proprement parler. Dans le milieu pro, quand je dois intégrer une maquette ou autre et que ça a été généré sous Photoshop, Avocode fait bien le travail.
L’idée de cet article était de sensibiliser les développeurs (sous Windows notamment) à l’utilisation de Linux au quotidien pour se rapprocher de leur environnement de prod, et je pense que c’est justifié pour un développeur amené à progresser et / ou à gérer un environnement de prod.
Enfin, pour terminer, développer sous Windows sans Docker est pour moi juste impossible, donc quitte à se diriger vers une distribution Linux pour développeur, autant choisir la bonne !
• Lien vers le commentaire
Clement
« »Vous avez donc tout intérêt à développer votre logiciel sur un serveur HTTPD sous Linux, non? » »
Ba non pas dutout … php 7 c’est php 7 sur linux ou windows.
Js est interprété par le navigateur, donc la encore linux ou windows on s’en fou, surtout que l’utilisateur final lui est sans doute sur windows, donc si on suit ta logique vaux mieux être sur windows.
Je développe sur linux, mais j’ai trouvé ton article pas dutout objectif et pas convaincant
• Lien vers le commentaire
Alex Soyer Auteur(e) de l'article
Hello,
Ben pas vraiment… pour commencer il y a une grande différence entre php-fpm et mod_php, donc non PHP7 n’est pas PHP7 partout. Ensuite HTTPD est peut-être similaire sous Windows et sous Linux, bien que le code doit être différent, passons, la configuration est différente, et même d’une distribution Linux a une autre (cf. Centos / Debian). Donc même ici, si tu développes un appli PHP sous Windows, ta configuration changera sûrement si tu dois l’envoyer sur un serveur Linux.
La logique derrière c’est d’avoir de l’iso prod en local pour avoir le moins de soucis de déploiement, ce qui ne me semble pas trop bête.
Effectivement, si on suit ma logique et que ton JS interagi avec l’environnement de ton utilisateur, il vaut mieux tester sous Windows.
• Lien vers le commentaire