GNU/Linux >> Tutoriels Linux >  >> Linux

5 raisons pour lesquelles j'aime coder sous Linux

En 2021, il y a plus de raisons que jamais pour lesquelles les gens aiment Linux. Dans cette série, je partagerai 21 façons différentes d'utiliser Linux. Ici, je vais vous expliquer pourquoi tant de programmeurs choisissent Linux.

Lorsque j'ai commencé à utiliser Linux, c'était pour son excellent support multimédia car je travaillais dans la production cinématographique. Nous avons constaté que les applications de montage vidéo propriétaires typiques ne pouvaient pas gérer la plupart des séquences extraites de pratiquement n'importe quel appareil capable d'enregistrer une image. À l'époque, je ne savais pas que Linux avait la réputation d'être un système d'exploitation pour les serveurs et les programmeurs. Plus j'en faisais sur Linux, plus je voulais en contrôler tous les aspects. Et à la fin, j'ai découvert qu'un ordinateur était à son maximum lorsque son utilisateur pouvait "parler" sa langue. Quelques années après le passage à Linux, j'écrivais des montages vidéo sans surveillance, enchaînant des fichiers audio, éditant des photos en masse et tout ce que je pouvais imaginer, puis inventais une solution. Il ne m'a pas fallu longtemps pour comprendre pourquoi les programmeurs aimaient Linux, mais c'est Linux qui m'a appris à aimer la programmation.

Il s'avère que Linux est une excellente plate-forme pour les programmeurs, qu'ils soient nouveaux ou expérimentés. Ce n'est pas que vous avez besoin Linux pour programmer. Il existe des développeurs qui réussissent sur tous les types de plates-formes. Cependant, Linux a beaucoup à offrir aux développeurs. Voici quelques éléments que j'ai trouvés utiles.

Fondements de la logique

Plus de ressources Linux

  • Aide-mémoire des commandes Linux
  • Aide-mémoire des commandes Linux avancées
  • Cours en ligne gratuit :Présentation technique de RHEL
  • Aide-mémoire sur le réseau Linux
  • Aide-mémoire SELinux
  • Aide-mémoire sur les commandes courantes de Linux
  • Que sont les conteneurs Linux ?
  • Nos derniers articles Linux

Linux est construit autour de l'automatisation. Il est très intentionnel que les applications de base sur Linux puissent au moins être lancées à partir d'un terminal avec des options supplémentaires, et souvent elles peuvent même être entièrement utilisées à partir du terminal. Cette idée est parfois confondue avec un modèle informatique primitif parce que les gens croient à tort que l'écriture d'un logiciel qui fonctionne à partir d'un terminal fait juste le strict minimum pour obtenir une application fonctionnelle. C'est un malheureux malentendu sur le fonctionnement du code, mais c'est quelque chose dont beaucoup d'entre nous sont coupables de temps en temps. Nous pensons plus est toujours mieux, donc une application contenant 1 000 lignes de code doit être 100 fois meilleure qu'une application avec dix lignes de code, n'est-ce pas ? La vérité est que toutes choses étant égales par ailleurs, l'application avec une plus grande flexibilité est préférable, quelle que soit la façon dont cela se traduit en lignes de code.

Sous Linux, un processus qui peut vous prendre une heure lorsqu'il est effectué manuellement peut littéralement être réduit à une minute avec la bonne commande de terminal, et peut-être moins lorsqu'il est analysé par GNU Parallel. Ce phénomène nécessite un changement dans la façon dont vous pensez à ce que fait un ordinateur. Par exemple, si votre tâche consiste à ajouter une image de couverture à 30 fichiers PDF, vous pourriez penser qu'il s'agit d'un processus judicieux :

  1. Ouvrir un PDF dans un éditeur PDF
  2. Ouvrez le capot avant
  3. Ajouter un PDF à la fin du fichier de couverture
  4. Enregistrer le fichier en tant que nouveau PDF
  5. Répétez ce processus pour chaque ancien PDF (mais ne dupliquez pas ce processus pour chaque nouveau PDF)

C'est surtout des trucs de bon sens, et même si c'est douloureusement répétitif, ça fait le travail. Sous Linux, cependant, vous pouvez travailler plus intelligemment que cela. Le processus de réflexion est similaire :d'abord, vous concevez les étapes nécessaires pour un résultat réussi. Après quelques recherches, vous découvrirez le pdftk-java commande, et vous découvrirez une solution simple :

$ pdftk A=cover.pdf B=document_1.pdf \
 cat A B \
 output doc+cover_1.pdf

Une fois que vous vous êtes prouvé que la commande fonctionne sur un document, vous prenez le temps de vous familiariser avec les options de bouclage, et vous optez pour une opération parallèle :

$ find ~/docs/ -name "*.pdf" | \
 parallel pdftk A=cover.pdf B={} \
 cat A B \
 output {.}.cover.pdf

C'est une façon de penser légèrement différente car le "code" que vous écrivez traite les données différemment de la linéarité imposée à laquelle vous êtes habitué. Cependant, il est important de sortir de votre ancienne façon de penser linéaire pour écrire du code réel plus tard, et cela a l'avantage secondaire de vous permettre de calculer plus intelligemment.

Connexions de code

Quelle que soit la plate-forme pour laquelle vous programmez lorsque vous écrivez du code, vous tissez un treillis complexe de connexions invisibles entre de nombreux fichiers différents. Dans tous les cas, sauf les plus rares, le code s'inspire des en-têtes et s'appuie sur des bibliothèques externes pour devenir un programme complet. Cela se produit sur n'importe quelle plate-forme, mais Linux a tendance à vous encourager à comprendre cela par vous-même, plutôt que de faire aveuglément confiance au kit de développement de la plate-forme pour s'en occuper pour vous.

Maintenant, il n'y a rien de mal à faire confiance à un kit de développement pour résoudre bibliothèque et inclure chemins. Au contraire, ce genre d'abstraction est un luxe dont vous devriez profiter. Cependant, si vous ne comprenez jamais ce qui se passe, il est beaucoup plus difficile d'ignorer le processus lorsque vous devez faire quelque chose qu'un kit de développement ne connaît pas ou pour résoudre les problèmes lorsqu'ils surviennent.

Cela se traduit également sur toutes les plateformes. Vous pouvez développer du code sur Linux que vous avez l'intention d'exécuter sur Linux ainsi que sur d'autres systèmes d'exploitation, et votre compréhension de la façon dont le code compile vous aide à atteindre vos objectifs.

Certes, vous n'apprenez pas ces leçons simplement en utilisant Linux. Il est tout à fait possible de coder avec bonheur dans un bon IDE et de ne jamais se soucier de la version d'une bibliothèque que vous avez installée ou de l'emplacement des en-têtes de développement. Cependant, Linux ne vous cache rien. Il est facile de creuser dans le système, de localiser les parties importantes et de lire le code qu'elles contiennent.

Code existant

Savoir où se trouvent les en-têtes et les bibliothèques est utile, mais les avoir à référence est un autre bonus supplémentaire à la programmation sous Linux. Sous Linux, vous pouvez voir le code source de pratiquement tout ce que vous voulez (à l'exception des applications qui ne sont pas open source mais qui s'exécutent sous Linux). L'avantage ici ne peut pas être surestimé. Au fur et à mesure que vous en apprenez davantage sur la programmation en général ou sur la programmation de quelque chose de nouveau pour vous, vous pouvez en apprendre beaucoup en vous référant au code existant sur votre système Linux. De nombreux programmeurs ont appris à coder en lisant le code open source d'autres personnes.

Sur les systèmes propriétaires, vous pouvez trouver de la documentation pour les développeurs contenant des exemples de code. C'est très bien, car la documentation est importante, mais elle n'est rien par rapport à la localisation de la fonctionnalité exacte que vous souhaitez implémenter, puis à la recherche du code source démontrant comment cela a été fait dans une application que vous utilisez tous les jours.

Accès direct aux périphériques

Quelque chose que j'ai souvent pris pour acquis après avoir développé du code pour les entreprises de médias utilisant Linux est l'accès aux périphériques. Par exemple, lors de la connexion d'une caméra vidéo à Linux, vous pouvez extraire les données entrantes de /dev/video0 ou similaire. Tout est dans /dev , et c'est toujours le chemin le plus court entre deux points pour y arriver.

Ce n'est pas le cas sur d'autres plateformes. La connexion à des systèmes en dehors du système d'exploitation est souvent un labyrinthe de SDK, de bibliothèques restreintes et parfois de NDA. Ceci, bien sûr, varie en fonction de ce pour quoi vous programmez, mais il est difficile de battre l'interface simple et prévisible de Linux.

Couches d'abstraction

Inversement, Linux fournit également un ensemble sain de couches d'abstraction lorsque l'accès direct ou le codage manuel finit par créer plus de travail que vous ne le souhaitez. Il y a des commodités trouvées dans Qt et Java, et il y a des piles entières comme Pulse Audio, Pipewire et gstreamer. Linux veut que vous puissiez coder, et ça se voit.

Ajouter à cette liste

Il y a d'autres raisons qui font du codage sous Linux un plaisir. Certains sont des concepts généraux et d'autres des détails trop spécifiques qui m'ont épargné des heures de frustration. Linux est un endroit formidable, quelle que soit la plate-forme que vous ciblez. Que vous veniez juste d'apprendre la programmation ou que vous soyez un codeur à la recherche d'une nouvelle maison numérique, il n'y a pas de meilleur espace de travail pour la programmation que Linux.


Linux
  1. 10 raisons d'aimer Linux en 2021

  2. Pourquoi les programmeurs aiment les packages Linux

  3. Pourquoi je suis tombé amoureux d'Antergos Linux

  4. Pourquoi Linux ? - Quelques raisons de convertir vers Linux

  5. 12 raisons pour lesquelles chaque administrateur système Linux devrait être paresseux

Linux vs Mac :7 raisons pour lesquelles Linux est un meilleur choix que Mac

Les 10 meilleures raisons d'utiliser Linux

Les 20 principales raisons pour lesquelles vous devriez choisir un serveur Linux

Linux vs Mac OS :15 raisons d'utiliser Linux au lieu de Mac OS

Raisons pour lesquelles je recommande d'utiliser Debian Linux

6 raisons pour lesquelles Linux n'a pas plus d'applications