Vergleich von IDEs für die C ++ und C-Entwicklung unter Linux: KDevelop, Eclipse, NetBeans, CodeBlocks und Anjuta

49

Ich möchte auf Ihre Erfahrungen mit vollständigen IDEs unter Linux hinweisen.

Ich persönlich arbeite meistens mit vim, aber andere Programmierer möchten eine echte IDE sehen. Daher würde ich gerne Ihre persönliche Meinung zu verschiedenen IDEs und deren Vergleich in folgendem Kontext hören:

  • C ++ und vielleicht etwas C-Entwicklung (nicht Java, Python und andere Sachen)
  • Serverseitige Programmierung (keine GUI-Entwicklung erforderlich)
  • Arbeiten unter Linux, nicht "plattformübergreifend".

Meinung benötigt Rücksicht:

  1. Wie stabil ist es? Wenn IDE abstürzt, brauche ich es nicht.
  2. Bequem zu bedienen.
  3. Leistungsstark zum Debuggen.
  4. Integration in verschiedene Build-Systeme
  5. Skalierbarkeit über große Projekte (Projekte mit Hunderttausenden von Codezeilen)

Ich habe mit KDevelop gearbeitet und es war eine sehr schöne IDE, und KDevelop 4 scheint ein großer Fortschritt zu sein. Es scheint auch, dass viele lieber Netbeans und Eclipse verwenden.

Artyom
quelle
9
Ich bin sehr interessiert an den Antworten, die Sie erhalten, und dankbar, wenn Sie mir zwei weitere Punkte mitteilen, die mich interessieren. Die Skalierbarkeit für Projekte im Bereich von 50.000 Dateien / 30 Millionen Zeilen und Anpassbarkeit an eine Projektstruktur, die von der IDE nicht standardmäßig verwendet wird. Meine Experimente sind mehrere Jahre alt, aber damals schlug alles, was ich versuchte, in diesen Aspekten fehl.
Programmierer
@AProgrammer - sehr guter Punkt, der Liste hinzugefügt.
Artyom
Sie können auch einen Blick auf CodeLite-codelite.org werfen . Leider habe ich nicht viel Erfahrung damit, es bei großen Projekten einzusetzen. Trotzdem kann es sich lohnen, es auszuprobieren.
RSC
Mit den Plugins project und clang_complete und dem richtig konfigurierten make bietet Ihnen vim fast alles, was die IDE tun würde (außer beim Debuggen). Mit denen, von denen ich vermute, dass Sie sowieso bei vim bleiben werden; Das tue ich sicher.
Jan Hudec
Ich habe mich nur selbst gefragt. Vielen Dank, dass Sie diese Frage gestellt haben.
Ausgesetzt

Antworten:

39

Hier ist meine persönliche Erfahrung mit IDEs. Ich habe alle IDEs installiert, die ich finden konnte, und mit allen gespielt (das würde ich dir raten):

  • kdevelop

Ich persönlich benutze es. Die Version, die ich installiert habe, stürzt ab, aber ich habe die neueste Version von ihrer Website heruntergeladen, und es funktioniert gut. Es ist einfach zu konfigurieren und sehr gut zu bedienen. Sie unterstützen benutzerdefinierte Build-Systeme über Plug-Ins. Möglicherweise finden Sie einige seltsame Funktionen (wie das Parsen nur direkt eingeschlossener Header), aber im Allgemeinen funktioniert es gut für große Projekte.

  • Finsternis

Super komplex zu konfigurieren, erlaubt aber buchstäblich alles. Wenn Sie genug Zeit haben, um eine richtige Konfiguration zu finden, die jedem gefällt, dann versuchen Sie es. Aber irgendetwas ändern zu wollen ist sehr ärgerlich, weil es so viele Möglichkeiten gibt.

  • anjuta und codeblocks

Ich habe es kurz versucht und es war nicht so gut wie die beiden vorherigen. Codeblocks eignen sich für kurze Projekte, aber nicht für mittlere und große Projekte.

  • Netzbohnen

Eine andere gute IDE, aber da mein Zuhause auf Netzwerkfreigabe ist und das Projekt, an dem ich arbeite, ziemlich groß ist, war es sehr langsam. Es analysiert die ganze Zeit.

  • qtcreator

Einfach zu konfigurieren, aber es fehlen viele Optionen. Das Seltsamste daran ist zum Beispiel, dass es keine qt-Klassen analysieren und automatisch vervollständigen kann. Unterstützt benutzerdefiniertes Build-System.


Schlussfolgern :

  • Wenn Sie geduldig genug sind (oder eine gute Konfiguration finden), entscheiden Sie sich für Eclipse. Es ist wirklich die beste freie IDE.
  • Wenn Sie etwas Einfaches konfigurieren möchten, gehen Sie zu kdevelop.

Eine andere Möglichkeit ist, beide zu installieren und Ihre Entwickler die für sie am besten geeigneten auswählen zu lassen.

BЈовић
quelle
16
Eclipse ist ein langsames Stück Java .... Es gibt keinen Grund, eins zu verwenden, es sei denn, es gibt absolut keine Alternativen. Auf meinem PC hat es in weniger als einer Minute angefangen. Nuff sagte nein?
Coder
10
@Coder Nun, Sie werden es einmal starten und den ganzen Tag verwenden, ohne es neu zu starten. Das ist eine Idee. 1 Minute ist nichts im Vergleich dazu, wie lange Sie es an einem Tag verwenden werden.
BЈовић
6
@VJovic: Das Umschalten zwischen den Registerkarten dauert je nach Registerkarte zwischen 18 Sekunden und 1 Sekunde. Verlangsamungen sind nicht nur Verlangsamungen. Sogar Visual Studio wirkt im Vergleich dazu bissig.
Coder
7
@Coder Wie Edison sagte, ist Ihre Installation oder Umgebung nicht gut. Meine Sonnenfinsternis ist super schnell. Das Wechseln der Registerkarten erfolgt fast augenblicklich.
BЈовић
4
Ecilpse leckt den Speicher wie ein Sieb. Die Linux-Box für mehrere Benutzer mit 16 Gigabyte RAM verfügt nicht über genügend RAM, und einige Instanzen von Eclipse (CDT) sind länger als ein paar Tage aktiv. Daher ist der langsame Start ein Problem, da Sie mindestens einmal am Tag einen Neustart durchführen oder das gesamte Entwicklerteam verlangsamen müssen. Eclispe RAM-Nutzung - 600 Meg / Instanz wächst mit 100 / Tag. Voll funktionsfähige IDE 50Meg / Instanz wächst mit 0 / Tag, VIM, 10Meg wächst mit 0 / Tag. Eine kommerzielle IDE mit einem Preis von 250 US-Dollar pro Sitzplatz ergab einen ROI von weniger als einem Jahr, der ausschließlich auf dem Produktivitätsverlust beim Laden von Eclipse pro Tag beruhte.
Mattnz
13

Schauen Sie sich Qt Creator an.

  • Es ist ziemlich stabil. Ich kann mich an keine Abstürze erinnern.
  • Es kann einige Zeit dauern, bis Sie sich an das Fehlen von Registerkarten gewöhnt haben, aber die Benutzeroberfläche ist insgesamt gut.
  • Es verwendet GDB. Das Debuggen ist nicht so gut wie in Visual Studio, aber trotzdem ziemlich gut. Es kann jetzt auch in den Profiler (Valgrind) integriert werden.
  • Es lässt sich in qmake und CMake integrieren. Sie können jedoch benutzerdefinierte Befehle ausführen, sodass fast alles verwendet werden kann.
  • Ich kann nichts über große Projekte sagen, aber es wird von denselben Leuten hergestellt und verwendet, die Qt schreiben, sodass die Anforderungen hoch sind.
  • Es scheint keine Annahmen über die Projektstruktur zu geben.

Ich habe vor einiger Zeit KDevelop 4 ausprobiert. Es bewegt sich auf jeden Fall in die richtige Richtung, ist aber leicht fehlerhaft. Vielleicht möchten Sie es trotzdem versuchen.

Ich habe CodeBlocks für sehr kurze Zeit benutzt, aber ich erinnere mich, dass es mir nicht gefallen hat, weil das Interface hässlich war.

Anton Barkovsky
quelle
8

Viele GCC - Entwickler (und GCC hat 5 bis 9 Millionen Zeilen Quellcode, je nachdem , wie Sie sie zählen) verwenden nur emacs oder vimit Programmen wie grep, ctagsoder etags, make, svn, gcc, etc.).

Sie benötigen keine IDE, um eine große Software zu entwickeln.

Wenn Ihre Software groß genug ist (z. B. mindestens 0,3 Millionen Zeilen), können Sie sogar GCC durch Plugins oder MELT- Erweiterungen anpassen , um Softwaremetriken, Softwarenavigation, spezifische Warnungen, Codierungsregeln usw. zu berücksichtigen .

Basile Starynkevitch
quelle
10
Das war nicht die Frage. Wie ich bemerkt habe, benutze ich meistens vim (mit grep, ctags usw.) - ich weiß, wie gut es ist. Allerdings bevorzugen viele Programmierer IDE
Artyom
1
IDEs sind besonders hilfreich für Funktionen in Verbindung mit der C ++ - Klasse, die in Vim nur sehr schwer zu konfigurieren sind. Raw C ist mit ctags in Ordnung.
Ciro Santilli am
6

Ich arbeite hauptsächlich mit Eclipse. Ich habe KDevelop jahrelang mit großer Zufriedenheit verwendet, aber jetzt arbeite ich an mehrsprachigen Projekten (C, C ++, PHP, Java, Python, Datenbank, Web usw.).

Vorteile von Eclipse: Viele Tools für fast alles (einschließlich Versionskontrolle); Funktioniert sehr gut für die Syntaxprüfung und die automatische Vervollständigung. Gute Arbeit beim Kompilieren / Erstellen / Debuggen. Es ist plattformübergreifend (Linux, Windows, Solaris usw.).
Nachteile: Einige Funktionen oder Einstellungen sind ein Albtraum (wenn Sie beispielsweise das Projekt von Ihrer Workstation auf dem Server bereitstellen müssen, speichert Eclipse eine Art Cache, und wenn es denkt, dass die Datei auf dem Server 'aktuell' ist, die Datei wird nicht überschrieben). Eclipse ist riesig , drosselt den größten Teil Ihrer CPU-Leistung und beansprucht Ihren gesamten Speicher. Weitere Informationen unter http://www.ihateeclipse.com .

KDevelop ist schnell und ideal für C / C ++ - und KDE / Qt-Projekte, es fehlen jedoch einige Funktionen wie die Unterstützung von Mercurial (KDevelop 3.3.4, keine Kenntnis für neuere Versionen).

AndrewQ
quelle
4

Visual SlickEdit - Werbung, wie jedes gute Tool, "funktioniert einfach". Verarbeitet jede Sprache unter der Sonne, ist sofort einsatzbereit, hoch konfigurierbar und bei Bedarf voll programmierbar und bietet eine Benutzeroberfläche für das Debuggen von GDB. Erledigt sehr große Projekte (ich verwende es für eine Codebasis von 5Millionen + SOLC, von denen ich mit ungefähr 1Million spiele). Versuch es

Eclipse - Tool der Wahl bei der Programmierung in Java, OK für jede unterstützte einzelne Sprache. In Java für Java-Entwickler geschrieben, die Java-Programme entwickeln. Benötigt aber Plugins für jedes winzige kleine und große Feature. Funktioniert nicht "nur" für mehrere Sprachen gleichzeitig.

mattnz
quelle
4

Netbeans ist eine langsame, langsame IDE. Wir verwenden keine "Dinosaurier-Computer", aber diese IDE HÄNGT schon ziemlich lange. Wenn wir über das Netzwerk auf die Netbeans-IDE zugreifen (z. B. mit VNC), vergessen Sie es !!! Die Verzögerung ist so schlimm, dass Netbeans unbrauchbar werden!

Ich finde Eclipse einschüchternd schwer für den ersten Gebrauch einzurichten, aber wenn Sie durchhalten, werden Sie mit einer IDE enden, die alles hat, was Sie wollen oder brauchen (möglicherweise über Plug-Ins).

Ich möchte nicht mehr als eine IDE verwenden, und ich vermute, Sie auch nicht. Ich würde Eclipse mit all seinen Fehlern empfehlen.

Mike
quelle
4

Also ... ich füge nur eine andere Meinung hinzu, aber ich glaube nicht, dass Sie sie als VIM-Benutzer auswählen können

emacs + gdb http://www.cs.bu.edu/teaching/tool/emacs/programming/

Zuallererst ist dies die leichteste IDE (ich kann es sogar als Betriebssystem bezeichnen) und die am besten anpassbare, sodass Sie alles mit minimalem Ressourcenverbrauch erledigen können, mit Ausnahme einiger Brainwork-Ressourcen für die Lisp-Konfiguration.

Persönlich, wenn ich ein ernstes Projekt habe, benutze ich Visual Studio. Aber wenn ich unter Linux arbeiten muss, starte ich mit Emacs. (auch ich mag qt überhaupt nicht)

Auch (hauptsächlich, weil ich dort das last.fm-Plugin und die Clojure-Unterstützung mag) habe ich eine nette IDE für Linux gefunden (versuche immer noch, von ihr auf Emacs umzusteigen == '). IDEA , nicht empfehle ich, es für C ++ zu verwenden, aber vielleicht es ist auch nicht schlecht, also kannst du es deiner Liste hinzufügen.

cnd
quelle
1

QT und CodeBlocks sind ok. Ich benutze in letzter Zeit CodeBlocks.

Es kann für Makefile-Projekte konfiguriert werden, die Code-Vervollständigung funktioniert meistens und hängt nicht wie in MSVS. Das Durchsuchen von Funktionen ist ebenfalls gut gelungen.

Es gibt einige kleinere Probleme, aber für die tägliche Arbeit unter Linux ist es meiner Meinung nach sehr gut.

Coder
quelle
0

Mein einziger Versuch, eine IDE unter Linux zu verwenden, fand 2005 statt, aber zu diesem Zeitpunkt war keine von mir ausgeführte IDE (KDevelop, Eclipse, Anjuta) von Nutzen, sodass ich zu vim + ctags + gdb zurückkehrte und sie immer noch für die Linux-Codierung verwendete.

Nemanja Trifunovic
quelle
Wahrscheinlich sind Sie der Mann, der die Antwort kennt: Wie gehen Sie mit einer Methodenimplementierung in einer anderen Hierarchieklasse (Eltern / Kind-Implementierung) in vim um?
Sergei
In Eclipse lautet die Kombination beispielsweise Strg + T für einen Methodennamen.
Sergei
@ Sergei Sorry, ctags unterstützt das nicht. Sie können besseres Glück mit etwas wie YCM haben: github.com/Valloric/YouCompleteMe
Nemanja Trifunovic