Pourquoi Linux est mon IDE
Vous pouvez programmer sans outils de programmation, et les environnements de développement intégrés (IDE) sont populaires parmi les développeurs. Je prends une approche différente. Je traite mon système Linux, avec sa gamme d'outils de programmation, comme IDE en soi.
Sommaire
Une fenêtre pour un travail
Les IDE sont populaires parmi les développeurs car ils donnent accès à tous leurs outils, y compris un éditeur, un interprète ou un compilateur, un débogueur et même une documentation. Je peux voir pourquoi la plupart des développeurs voudraient que leurs outils au même endroit. Je pense que je peux réaliser une expérience similaire en ayant des applications séparées dans l'environnement Linux.
J'aime l'idée de la philosophie Unix, d'un petit outil qui fait un bien. Ce n'est peut-être pas facile à réaliser dans la pratique, mais je pense que c'est quelque chose qui vaut la peine de rechercher.
Qu'est-ce que Unix, et pourquoi est-ce important?
La plupart des systèmes d'exploitation peuvent être regroupés en deux familles différentes.
Il est révélateur que les IDE ont le plus prospéré sur les plates-formes non linux ou UNIX, en particulier Windows. Windows a fait moins usage des outils de ligne de commande, et le lancement de processus est à forte intensité de ressources, il y a donc une incitation à favoriser les programmes plus importants qui font plus, y compris les systèmes de développement plus importants.
L'approche UNIX traditionnelle des programmes séparés fonctionne bien pour moi. Je peux avoir une fenêtre de shell en cours d'exécution VIM, une autre pour tester le programme et l'autre pour exécuter des programmes de manipulation de fichiers. Je peux obtenir l'effet d'un IDE avec des programmes plus petits et plus petits au lieu d'un gros.
Si j'ai besoin d'exécuter une autre tâche, je peux simplement ouvrir une autre fenêtre de terminal et l'exécuter sans sauter un battement.
Mon flux de travail est mieux adapté pour séparer les applications
Je serai le premier à admettre que je ne suis pas un programmeur professionnel. La programmation n'est pas mon occupation, mais c'est un passe-temps amusant et stimulant. Bien que les IDE soient adaptés aux développeurs professionnels, mon utilisation est différente de beaucoup d'autres «vrais» programmeurs.
Python est mon langage de choix, et j'ai tendance à écrire des scripts plus petits ou à utiliser un python interactif. Cela signifie l'interpréteur interactif par défaut ou IPython. Je fais partie de ces personnes qui utilisent Python comme calculatrice de bureau. Je n'ai pas besoin de tirer un IDE entier juste pour faire de l'arithmétique.
L'une de mes principales utilisations pour Python est les statistiques et l'analyse des données. J'utilise principalement le python interactif, en particulier l'iPython que j'ai mis en place avec mon environnement Mamba. Je vais également examiner la documentation, soit dans Ipython, soit sur Internet. Si je veux un enregistrement de ce que je fais, comme partager plus tard, je ouvrirai un cahier de jupyter. Comme je travaille principalement de manière interactive, je n'ai pas beaucoup d'utilisation pour les débogueurs. Je peux généralement dépanner les messages d'erreur immédiatement.
L'utilisation d'un IDE signifierait l'installation de composants que je n'utilisais pas. Un débogueur serait surtout gaspillé pour ce que je fais. Et un IDE à part entière.
Je peux changer d'applications quand je veux
De nombreux développeurs vantent le fait que les environnements de développement intégrés sont, bien intégrés, y compris des outils essentiels comme les éditeurs, les compilateurs, les débogueurs et d'autres choses comme les liners et les vérificateurs d'erreur. Dans Linux, je peux installer des éditeurs, des compilateurs, des débogueurs, des liners et des vérificateurs d'erreur via mon gestionnaire de packages.
Je ne suis pas limité à ce que le développeur IDE a pensé inclure. Si je n'aime pas l'éditeur, je peux simplement passer à un autre. Je suis devenu assez à l'aise avec VIM. Les touches semblent se sentir mieux, du moins sur les claviers de Chiclet que les fabricants d'ordinateurs portables semblent favoriser ces jours-ci.
Un outil que j'ai déplacé était l'interprète Python. L'interprète Python est utile en soi car je peux tester les idées de code (et l'utiliser comme calculatrice), mais Ipython est encore mieux, car il dispose de la syntaxe de mise en évidence et de rappel facile, ainsi que la possibilité d'exécuter des commandes système directement à partir d'Ipython.
J'ai également pu changer le gestionnaire de packages lui-même pour Mamba. Mamba est optimisée pour l'analyse des données et la science des données, offrant des packages plus récents dans de nombreux cas que le gestionnaire de package du système et me laissant laisser le système Python seul.
Un IDE standard ne m'offrirait probablement pas ce type de flexibilité.
Si vous utilisez Linux ou Program pendant assez longtemps, vous avez tendance à se forger des opinions sur la façon dont les choses devraient fonctionner. L'une de ces choses sur lesquelles beaucoup de gens, y compris moi, obtiennent une opinion est l'éditeur de texte. J'ai tendance à favoriser VIM, même si je suis passé par une phase Emacs pendant un certain temps, donc j'ai de l'expérience avec les deux principaux éditeurs.
L'approche IDE est toujours populaire, même parmi les environnements qui ne sont pas considérés comme des IDE. Les fans d'Emacs citent souvent comment ils peuvent exécuter des outils tels que les terminaux ou les navigateurs de fichiers sans avoir à quitter l'éditeur. Je n'ai jamais été aussi impressionné par cet aspect. Cela peut être dû au fait que j'ai presque toujours eu accès à des environnements de fenêtres et que j'ai effectué la plupart de mes travaux de programmation sur les plates-formes où le lancement de processus est facile.
EMACS a été conçu à l'origine pour les terminaux basés sur les personnages. Il n'était pas facile de lancer de nouvelles tâches sur ces terminaux, c'est pourquoi il y avait une incitation à construire un programme où vous pourriez avoir tout ce dont vous aviez besoin en un seul endroit.
Si vous utilisez un IDE, vous êtes souvent coincé avec ce que les développeurs pensaient que vous voudriez. Les ides Linux sont populaires, donc je suppose qu'il y a beaucoup de gens qui veulent ce qu'ils offrent. Peut-être que mes besoins sont tout simplement différents de ceux des autres. D'autres développeurs peuvent conserver leurs IDE, mais j'utiliserai avec plaisir plusieurs programmes.
J'ai développé un confort avec les outils que j'utilise. Lorsque je passe à un nouveau système, je peux le configurer rapidement et être dans un environnement familier.
Je préfère plusieurs tâches avec plusieurs programmes
Je pense que je pourrais simplement préférer l'approche de la « philosophie Unix » en matière de développement. Il s'agit d'un effet de la conception de systèmes d'exploitation de type UNIX facilitant le lancement de nouveaux processus. Il est plus facile dans le sens où je peux lancer un nouveau terminal et exécuter facilement une commande. Si je veux un éditeur, je fais juste l'exécution de VIM. Si je veux lancer une session Python interactive, je lance mon environnement Mamba et ouvre Ipython.
Ceci est une conséquence de la conception de Linux et d'autres systèmes de type Unix, comme je l'ai mentionné plus tôt. Linux lance facilement les processus, alors que le faire sur Windows a généralement été un processus plus intensif en ressources. Lorsque vous avez lancé votre programme dans un tel système, les threads sont moins chers en termes de performances. C'est la raison pour laquelle il y a un lecteur pour faire plus de fonctionnalités dans un programme plus grand que l'approche UNIX traditionnelle d'un programme qui fait une tâche.
Le seul problème était l'interface utilisateur. Même si Unix a été conçu pour être multitâche, il était gênant de basculer entre les tâches. Le contrôle des emplois et les consoles virtuelles ont contribué à résoudre ce problème, mais c'est avec la disponibilité de systèmes de fenêtres fonctionnant sur des postes de travail et des terminaux graphiques que l'approche de l'exécution de plusieurs programmes dans des fenêtres individuelles est devenue viable. Alternativement, les multiplexeurs terminaux peuvent faire un travail raisonnablement bon, en particulier sur les connexions distantes.
Les multiplexeurs terminaux expliqués et pourquoi vous en utiliseriez un
Gardez vos séances SSH en cours et en cours.
Avec la disponibilité de fenêtres à bornes multiples, de bornes à onglets et de multiplexeurs de terminaux disponibles, je peux profiter pleinement de ce style de développement léger. Je peux exécuter ma session Python interactive dans une fenêtre pour l'expérimentation, un cahier Jupyter dans mon navigateur et un éditeur dans une autre fenêtre.
L'utilisation de plusieurs applications sur Linux peut être moins «intégrée», mais cette approche fonctionne pour moi sans les frais généraux d'un IDE à part entière. Je pense que mon effort est payant dans un environnement de programmation léger sur lequel je peux compter.
