64 votes

Quel est le meilleur IDE pour le développement C / Pourquoi utiliser Emacs plutôt qu'un IDE ?

Comme je l'ai indiqué dans l'une de mes questions précédentes, je suis en train d'améliorer mes compétences en matière de langage C.

Ma question est la suivante : qu'est-ce que les gens utilisent pour développer le langage C ?

De nombreuses personnes utilisent Emacs, et ce depuis des années, mais le travail de l'équipe est un travail de longue haleine et de longue haleine comme Geany ou KDevelop ?

Il serait également intéressant de connaître le point de vue de ceux qui utilise toujours emacs et pourquoi ils l'utilisent par rapport à d'autres applications ?

Veuillez noter que je ne m'intéresse vraiment qu'aux IDE / éditeurs gratuits .

EDITAR:

Merci d'avoir posté des liens qui répondent à certaines de mes questions, mais je crois que ce que je me demande vraiment, c'est.. :

Est-ce que cela vaut la peine d'apprendre à éditer en utilisant emacs / vim et à compiler / déboguer en utilisant la chaîne d'outils gcc plutôt que d'utiliser simplement un IDE, et pourquoi ?

Quelles sont les raisons qui poussent les gens à ne pas migrer vers un IDE ?

Quelqu'un est-il passé d'un développement centré sur le terminal à un développement IDE, et pourquoi ?

63voto

n-alexander Points 2685

J'ai commencé par utiliser des IDE, Microsoft ou non. Puis, en travaillant sur QNX il y a longtemps, j'ai été obligé de me contenter d'un éditeur de texte + compilateur/lien. Aujourd'hui, je préfère cette simple combinaison - un éditeur de syntaxe + un compilateur C et un éditeur de liens + make - à n'importe quel IDE, même si l'environnement le permet.

Les raisons sont, pour moi, les suivantes :

  1. il est partout. Si vous programmez en C, vous avez le compilateur et vous pouvez généralement vous procurer un éditeur. La première chose que je fais, c'est de me procurer nedit sous Linux ou Notepad++ sous Windows. J'opterais bien pour vi, mais les éditeurs à interface graphique offrent de meilleures polices de caractères, ce qui est important lorsque l'on regarde du code toute la journée

  2. vous pouvez programmer à distance, via ssh, lorsque vous en avez besoin. Et il est parfois très utile de pouvoir se connecter en ssh à la cible et d'y faire quelques manipulations rapides

  3. il me permet de rester proche de l'interface de programmation, de préférence de l'interface de programmation UNIX/Linux. Ainsi, toutes les commandes sont à portée de main, et lorsque j'en ai besoin, je n'ai pas besoin de lire un livre de référence. Et l'interface de programmation UNIX peut faire des choses que les IDE ne peuvent souvent pas faire - parce que leurs développeurs n'ont pas pensé que vous en auriez besoin

  4. surtout, c'est un peu comme si on voyait la Matrice en code brut. Je gère des fichiers, je suis donc obligé de les garder gérables. Je trouve des choses dans mon code manuellement, ce qui m'oblige à le garder simple et organisé. Je fais de la gestion de configuration explicitement, donc je sais quand je suis synchronisé et comment. Je connais mes Makefiles parce que je les écris, et ils ne font que ce que je leur dis de faire

    (si vous vous demandez si cela fonctionne dans les "très gros projets", cela fonctionne, et plus le projet est gros, plus je gagne en performance).

  5. lorsque les gens me demandent de regarder leur code, je n'ai pas besoin d'apprendre l'IDE qu'ils utilisent

34voto

Anders Hansson Points 2362

Je suis passé d'un environnement terminal de type éditeur de texte+make à Eclipse pour la plupart de mes projets. Cela va du C et du C++ au Java et au Python, pour ne citer que quelques langages avec lesquels je travaille actuellement.

La raison en est simplement la productivité. Je ne pouvais pas me permettre de consacrer du temps et des efforts à garder tous les projets "dans ma tête" alors que d'autres choses devenaient plus importantes.

Il y a des avantages à utiliser l'approche "hardcore" (terminal) - comme le fait d'avoir une couche beaucoup plus fine entre vous et le code, ce qui vous permet d'être un peu plus productif lorsque vous êtes tous "à l'intérieur" du projet et que tout est dans votre tête. Mais je ne pense pas qu'il soit possible de défendre cette façon de travailler pour elle-même lorsque l'on a besoin de son esprit ailleurs.

En général, lorsque vous travaillez avec des outils en ligne de commande, vous devez fréquemment résoudre des problèmes de type "boilerplate" qui vous empêchent d'être productif. Vous devrez connaître les outils en détail afin de tirer pleinement parti de leur potentiel. De plus, la maintenance d'un projet vous demandera beaucoup plus d'efforts. Le remaniement conduira à des mises à jour des fichiers make, etc.

En résumé : Si vous ne travaillez que sur un ou deux projets, de préférence à temps plein et sans trop de distractions, le "codage basé sur le terminal" peut être plus productif qu'un IDE complet. Cependant, si vous avez besoin de dépenser votre énergie de réflexion sur quelque chose de plus important, un IDE est définitivement la voie à suivre pour maintenir la productivité.

Faites votre choix en conséquence.

15voto

Svante Points 24355

Emacs est un IDE.

éditer : D'accord, je vais développer. Qu'est-ce qu'un IDE ?

Pour commencer, développons l'acronyme : environnement de développement intégré. Pour l'analyser, je commence par la fin.

Un l'environnement est, d'une manière générale, la partie du monde qui entoure le point de vue. Dans le cas présent, il s'agit de ce que nous voyons sur notre écran (que nous entendons peut-être dans nos haut-parleurs) et que nous manipulons à l'aide de notre clavier (et peut-être d'une souris).

Développement est ce que nous voulons faire dans cet environnement, son but, si vous voulez. Nous utilisons l'environnement pour développer des logiciels. Cela définit les sous-parties dont nous avons besoin : un éditeur, une interface avec la REPL, c'est-à-dire le compilateur, une interface avec le débogueur et l'accès à la documentation en ligne (cette liste n'est pas exhaustive).

Intégré signifie que toutes les parties de l'environnement se trouvent en quelque sorte sous une surface uniforme. Dans un IDE, nous pouvons accéder aux différentes sous-parties et les utiliser avec un minimum de changements ; nous n'avons pas besoin de quitter l'environnement défini. Cette intégration permet aux différentes sous-parties de mieux interagir. Par exemple, l'éditeur peut connaître la langue dans laquelle nous écrivons, et nous donner l'autocomplétion des symboles, le saut à la définition, l'indentation automatique, la mise en évidence de la syntaxe, etc. Il peut obtenir des informations du compilateur, sauter automatiquement aux erreurs et les mettre en évidence. Dans la plupart des IDE, si ce n'est tous, l'éditeur est naturellement au cœur du processus de développement.

Emacs fait tout cela, il le fait avec un large éventail de langues et de tâches, et il le fait avec excellence, puisqu'il est extensible de manière transparente par l'utilisateur lorsqu'il lui manque quelque chose.

Contre-exemple : vous pourriez développer en utilisant quelque chose comme Notepad, accéder à la documentation via Firefox et XPdf, et piloter le compilateur et le débogueur à partir d'un shell. Il s'agirait d'un environnement de développement, mais ce ne serait pas intégré .

10voto

fluffels Points 1748

J'ai utilisé Eclipse avec le plug-in CDT avec succès.

5voto

Jimmy J Points 1124

Emacs serait meilleur s'il contenait un éditeur de texte... :-)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X