60 votes

Quels avantages Ubuntu a-t-il par rapport à Windows en tant qu'environnement de programmation ?

Pourquoi écrire un programme dans des fichiers texte ou via le terminal est-il une meilleure option (comme je l'ai lu) que d'utiliser des environnements de développement intégrés (IDE) tels que Visual Studio sur Windows ? Est-ce que les fonctionnalités qu'un IDE fournit existent là-bas (par exemple, afficher les erreurs de compilation) ou est-ce un processus manuel ?

8voto

vartec Points 6825

Pourquoi Linux est meilleur pour la programmation

Environnements de développement intégrés (IDEs)

Outre Visual Studio et Xcode, qui répondent à des besoins spécifiques, la plupart des IDEs populaires sont multiplateformes. Il peut sembler qu'il existe une multitude d'IDEs pour des dizaines de langages, mais la plupart d'entre eux sont basés sur soit Eclipse, IntelliJ IDEA ou NetBeans. Ce qu'ils ont en commun, c'est qu'ils sont tous basés sur Java. Java fonctionne de manière plus efficace sur Linux que sur tout autre système d'exploitation sur le même matériel. En fait, Java est jusqu'à 20% plus rapide sur Linux que sur OS X sur le même matériel. Beaucoup de ces IDEs sont prêts à être installés en un clic dans le Centre de logiciels Ubuntu.

Compilateur

Le GCC est devenu en grande partie la norme de l'industrie. Sans aucun doute, sa plate-forme principale est Linux, où il est le mieux pris en charge. Et il est gratuit et sans redevances.

Outils supplémentaires

Linux propose des outils uniques, non disponibles sur d'autres plates-formes, comme par exemple Valgrind (un outil pour le débogage de mémoire, la détection de fuites de mémoire et le profilage). Linux est également livré avec des outils de débogage tels que strace et ltrace, qui peuvent être utilisés pour déboguer même du 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 ne fournissent pas les mêmes fonctionnalités.

Facilité d'installation des logiciels Open Source (OSS)

Ubuntu dispose d'un excellent gestionnaire de paquets. Dans la plupart des cas, installer un logiciel se fait simplement par apt-get install nom-du-paquet (vous pouvez également le faire en GUI, que ce soit avec le Centre de logiciels Ubuntu ou Synaptic). Une fois installés, les logiciels sont automatiquement mis à jour par le système avec des versions de correctifs. Le système de paquets garde également automatiquement trace des dépendances, vous n'avez donc pas à vous soucier des autres paquets nécessaires; ils seront installés automatiquement.

En revanche, sous Windows, vous devez télécharger et installer manuellement les logiciels, et s'ils nécessitent d'autres paquets, vous devez le faire manuellement également. Il n'y a pas non plus de mise à jour globale du système, chaque logiciel met en œuvre son propre système de mise à jour ennuyeux ou ne se met pas du tout à jour.

Les machines de production sont très susceptibles d'être sous Linux

Si vous développez pour des back-ends, pour le web, pour le cloud, etc., il est très probable que vos machines cibles soient sous Linux. Il y a beaucoup moins de surprises désagréables lorsque vous développez sur le même type de système d'exploitation que votre machine cible.

Bien sûr, vous pourriez développer une application de bureau pour Windows, mais de nos jours, c'est un peu un marché de niche pour les programmeurs.

7voto

Daniel Points 187

Pourquoi écrire un programme dans des fichiers texte ou via le terminal serait une meilleure option (comme je l'ai lu) que d'utiliser des IDE(s) comme Visual Studio sur Windows?

Non, je peux argumenter que c'est plutôt le contraire. Généralement, les gens ont tendance à préférer les outils avec lesquels ils sont les meilleurs. 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 à la question Pourquoi utiliser un IDE.

Revenons à votre question initiale, la seule chose pour laquelle Linux est meilleur est la programmation en C. Tout ce que vous pouvez faire sur Linux, vous pouvez également le faire sur Windows et vice-versa (du point de vue de la programmation). La programmation en C est meilleure sur Linux pour des raisons historiques, cela offre un excellent ensemble d'outils (que vous pouvez obtenir sur Windows d'ailleurs mais c'est beaucoup plus facile à configurer sur Linux). De même, si vous écrivez en C# et aimez .NET alors Windows est un meilleur choix pour des raisons évidentes. Tout le reste est complètement subjectif et vous entendrez des avantages et des inconvénients des deux côtés.

6voto

Uhall Points 1668

Quels outils (éditeur de texte ou IDE) utilisez-vous pour programmer est une question de choix. En général, on peut dire : 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. Simplement parce que l'on en apprend davantage en utilisant des éditeurs de texte simples. Les IDE peuvent perturber votre processus d'apprentissage en automatisant des choses (comme le fait Visual Studio ;) ).

En ce qui concerne les professionnels, qui jonglent avec de nombreux outils et langages, les IDE sont pratiques, car ils peuvent faire tellement plus pour vous, si vous les laissez faire. Il y a de nombreux IDE à choisir, en fonction du langage dans lequel vous souhaitez programmer. Certains sont meilleurs que d'autres et d'autres sont moins pratiques.

Mon expérience personnelle est que le 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 programmes que j’utilise sont conçus pour Linux et que je n’ai pas à chercher sur Internet les liens de téléchargement de mes programmes préférés. C’est seulement à un 'apt-get install programme1 programme2 programme3' de distance. En comparaison : j'ai besoin de 3 jours ouvrables pour installer et configurer une nouvelle installation de Windows avec tout ce dont j'ai besoin pour programmer (entreprise, pas privé, cela serait plus rapide), mais il ne faut qu'une seule journée pour la même tâche sous Ubuntu.

Mon expérience est que les programmeurs qui passent à Linux pour programmer ont (la plupart du temps) une compréhension plus approfondie des contextes techniques et du fonctionnement des bases. Les utilisateurs de Mac et de Windows ont tendance à ne pas savoir pourquoi quelque chose fonctionne de cette manière 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 seulement ceux qui sont prêts à apprendre passent à Linux.

J'espère que mon "blafasel" vous aide un peu...

1voto

david25272 Points 131

Je soutiendrais qu'une distribution Linux est un IDE.

Pour commencer, 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 parties manquantes ne sont qu'un apt-get (ou équivalent) de distance. En revanche, Windows est un environnement de développement terrible jusqu'à ce que vous installiez un IDE, ce qui n'est pas bon marché, ou un processus trivial.

Un IDE est plus intégré, au sens où les IDE sont plus étroitement couplés que l'utilisation de GCC, Git et Vi (par exemple). Un couplage étroit permet à des choses comme l'intellisense de fonctionner mieux. Mais d'autre part, un couplage lâche présente de nombreux avantages (par exemple, la flexibilité, l'interchangeabilité, l'absence de verrouillage).

Et les progrès dans la conception des compilateurs (compilateurs avec des frontaux facilement séparables comme LLVM) pourraient éventuellement signifier un meilleur support pour des fonctionnalités telles que la mise en évidence des erreurs de syntaxe même dans des environnements faiblement couplés.

1voto

AsymLabs Points 471

En ce qui concerne la philosophie : Ubuntu/Linux permet au programmeur d'avoir un accès direct aux entrailles et au matériel de l'ordinateur, tandis que Windows fait office de gardien. Il s'agit là d'une question philosophique importante en matière de programmation. Donc, d'un point de vue philosophique, le fait que cette fonctionnalité soit un avantage dépendra de la connaissance ou de la conscience technique de l'utilisateur quant à son importance.

En ce qui concerne la programmation : Tout le système d'architecture d'Ubuntu/Linux repose sur la tradition Unix de petits programmes simples réalisant une seule tâche, puis les reliant pour effectuer des tâches plus complexes. Pour un programmeur, cette architecture est incroyablement puissante, et, à mes yeux, 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 domaines où Unix n'est pas actuellement dominant est le bureau, mais cela changera avec le temps. Des distributions comme Ubuntu contribuent à accompagner cette évolution.

Cependant, je ne conteste pas qu'il existe d'excellents environnements de programmation sur Windows. Pour la programmation dans un environnement d'entreprise, ceux-ci dominent souvent.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X