Pourquoi l'écriture d'un programme dans des fichiers texte ou via le terminal est-elle une meilleure option (d'après ce que j'ai lu) que l'utilisation d'un ou plusieurs IDE comme Visual Studio sous Windows ? Les fonctionnalités offertes par un IDE existent-elles ici (par exemple, l'affichage des erreurs de compilation) ou s'agit-il d'un processus manuel ?
Réponses
Trop de publicités?Pourquoi Linux est meilleur pour la programmation
IDEs
Outre Visual Studio et Xcode, qui répondent à leurs besoins spécifiques, la plupart des IDE populaires sont multiplateformes. On pourrait croire qu'il existe des milliards d'IDE pour des dizaines de langues, mais en fin de compte, la plupart d'entre eux sont basés sur l'un ou l'autre des éléments suivants Eclipse , IntelliJ IDEA o NetBeans . Ce qu'ils ont en commun, c'est qu'ils sont tous basés sur Java. Java fonctionne plus efficacement sur Linux que sur n'importe quel autre système d'exploitation sur le même matériel. En fait, Java est jusqu'à 20 % plus rapide sous Linux que sous OS X avec le même matériel. La plupart de ces IDE sont prêts à être installés en un clic dans le Centre logiciel Ubuntu.
Compilateur
GCC est devenu la norme dans l'industrie. Sans aucun doute, sa principale plate-forme est Linux, où il est le mieux supporté. Et il est gratuit et libre de droits.
Outils supplémentaires
Linux fournit des outils uniques, non disponibles sur d'autres plateformes, comme par exemple Valgrind (un outil de débogage de la mémoire, de détection des fuites de mémoire et de profilage). Linux est également livré avec des outils de débogage tels que strace y ltrace qui peut être utilisé pour déboguer même le code de production (c'est-à-dire non compilé avec des symboles de débogage). Les outils équivalents pour Windows sont soit inexistants, soit très coûteux et n'offrent pas les mêmes fonctionnalités.
Facilité d'installation des logiciels libres
Ubuntu dispose d'un excellent gestionnaire de paquets. Dans la plupart des cas, installer un logiciel est juste apt-get install package-name
(vous pouvez le faire avec l'interface graphique aussi, soit Ubuntu Software Center ou Synaptic). Une fois installés, ils sont automatiquement mis à jour par le système avec les versions de correction de bogues. Le système de paquets garde aussi automatiquement la trace des dépendances, vous n'avez donc pas à vous soucier des autres paquets nécessaires ; ils seront installés automatiquement.
D'autre part, sous Windows, vous devez télécharger et installer manuellement les paquets, et s'ils nécessitent d'autres paquets, vous devez également le faire manuellement. Il n'y a pas non plus de mise à jour à l'échelle du système, chaque logiciel implémente son propre dispositif de mise à jour ou ne se met pas à jour du tout.
Les machines de production sont très probablement sous Linux
Si vous faites n'importe quel type de programmation pour le back-end, pour le web, pour le cloud, etc., il est très probable que vos machines cibles soient Linux. Il y a beaucoup moins de mauvaises surprises lorsque vous développez sur le même type d'OS que votre machine cible.
Bien sûr, vous pourriez développer une application de bureau pour Windows, mais de nos jours, il s'agit d'une sorte de niche de marché pour les programmeurs.
Pourquoi l'écriture d'un programme dans des fichiers texte ou via le terminal est-elle une meilleure option (d'après ce que j'ai lu) que l'utilisation d'un ou plusieurs IDE comme Visual Studio sous Windows ?
Ce n'est pas le cas, je peux même dire que c'est plutôt le contraire. Mais en général, les gens ont tendance à préférer les outils qu'ils maîtrisent le mieux. Le type d'outils que vous utilisez peut faciliter l'écriture de programmes. Par exemple, je peux très bien écrire des programmes Java avec vim, mais c'est vraiment contre-productif par rapport à un IDE complet comme Eclipse ou IntelliJ. Jon Skeet a donné une excellente réponse à cette question Pourquoi utiliser un IDE .
Pour en revenir à votre question initiale, la seule chose pour laquelle Linux est meilleur est la programmation en C. Tout ce que vous pouvez faire sous Linux, vous pouvez également le faire sous Windows et vice-versa (en matière de programmation). La programmation C est meilleure sous Linux pour des raisons historiques, elle offre un grand nombre d'outils (que vous pouvez obtenir sous Windows, mais il est beaucoup plus facile de configurer Linux pour cela). De même, si vous écrivez en C# et aimez .NET, Windows est un meilleur choix pour des raisons évidentes. Tout le reste est complètement subjectif et vous entendrez les pour et les contre des deux côtés.
Les outils (éditeur de texte ou IDE) que vous utilisez pour la programmation sont une question de choix. En général, on peut dire que : Les débutants et les très petits projets ont tendance à utiliser de meilleurs éditeurs de texte, comme sublime text ou une version modifiée de gedit. Tout simplement parce que vous apprenez davantage en utilisant des éditeurs de texte simples. Les IDE peuvent perturber votre processus d'apprentissage en automatisant les choses (comme le fait Visual Studio ;) ).
Lorsqu'il s'agit de professionnels, qui manipulent de nombreux outils et langages, les IDE sont très utiles, car ils peuvent faire beaucoup plus pour vous, si vous les laissez faire. Vous pouvez choisir parmi de nombreux IDE, en fonction de la langue dans laquelle vous souhaitez programmer. Il en existe de meilleurs, mais aussi de moins pratiques.
Mon expérience personnelle est qu'un système d'exploitation Ubuntu est de loin plus rapide et plus facile à configurer pour le développement que Windows. Je suppose que c'est parce que la plupart des outils et des programmes que j'utilise sont construits sur Linux et parce que je n'ai pas à chercher sur Internet les liens de téléchargement de mes programmes préférés. Il suffit d'un "apt-get install program1 program2 program3". En comparaison : Il me faut 3 jours ouvrables pour installer et configurer une nouvelle installation Windows avec tout ce dont j'ai besoin pour la programmation (entreprise, pas privée, ce serait plus rapide), mais il ne faut qu'un jour pour la même tâche dans Ubuntu.
D'après mon expérience, les programmeurs qui passent à Linux pour programmer ont (la plupart du temps) une meilleure compréhension des contextes techniques et du fonctionnement de base. Les utilisateurs de Mac et de Windows ont tendance à ne pas savoir pourquoi quelque chose fonctionne de cette façon ou pourquoi cela ne fonctionne pas. Je ne suis pas sûr que l'on puisse réellement apprendre quelque chose en travaillant avec Linux ou si c'est simplement ceux qui ne veulent pas apprendre qui passent à Linux.
J'espère que mon "blafasel" vous aidera un peu...
Je dirais qu'une distribution Linux est un IDE.
Tout d'abord, Unix a été conçu dès le départ pour être un environnement de développement. Il a été écrit par des programmeurs pour des programmeurs. La plupart des Unix, et Linux, sont toujours livrés avec des outils de développement dans leur configuration par défaut. Et les pièces manquantes ne sont qu'un apt-get
(ou l'équivalent). Windows, d'autre part, est un environnement de développement terrible jusqu'à ce que vous installiez un IDE, ce qui n'est pas bon marché, ni un processus trivial.
Un IDE est plus intégré, dans le sens où les IDE sont plus étroitement liés que d'utiliser GCC, Git et Vi (par exemple). Le couplage serré permet à des choses comme `intellisense' de mieux fonctionner. Mais d'un autre côté, le couplage lâche a de nombreux avantages (par exemple, la flexibilité, l'interchangeabilité, l'absence de verrouillage).
Les progrès réalisés dans la conception des compilateurs (compilateurs dotés d'interfaces facilement séparables comme LLVM) pourraient éventuellement permettre une meilleure prise en charge de fonctionnalités telles que la mise en évidence des erreurs de syntaxe, même dans des environnements faiblement couplés.
Sur la question de la philosophie : Ubuntu/Linux permet au programmeur informatique d'accéder directement aux composants internes et au matériel, alors que Windows est une sorte de garde-barrière. C'est une question philosophique importante lorsqu'il s'agit de programmation. Ainsi, d'un point de vue philosophique, le fait que cette fonctionnalité soit un avantage dépendra du fait que l'utilisateur soit suffisamment informé ou techniquement conscient de son importance.
Sur la question de la programmation : L'ensemble de l'architecture système d'Ubuntu/Linux est fondé sur la tradition Unix de petits programmes simples qui font une seule chose, et qui sont ensuite assemblés pour faire des choses plus complexes. Pour un programmeur, cette architecture est incroyablement puissante et, à mon avis, c'est la raison pour laquelle Unix l'emportera à long terme sur toutes les autres architectures logicielles sur toutes les plates-formes. L'un des rares endroits où Unix n'est pas actuellement dominant est le bureau, mais cela va changer avec le temps. Des distributions comme Ubuntu contribuent à cette évolution.
Je ne conteste pas, cependant, qu'il existe de très bons environnements de programmation sous Windows. Pour la programmation dans un environnement d'entreprise, ils dominent souvent.