Ich suche eine Entwicklungsumgebung für C++ die folgende Punkte zwingend erfüllen muss:
-
Projektverwaltung (mit mehreren Projekten gleichzeitig)
-
Integrierter Debugger
-
Class Browser
-
Subversion Unterstützung
-
Codevervollständigung
-
Übersicht auf kleinen Displays (15" Laptop-TFT)
Optional hätte ich gerne noch folgende Features:
-
Lauffähig auf mehreren Plattformen (Linux und Windows)
-
Unterstützung für Codedokumentation (Doxygen)
-
Open-Source
-
Codeformatierung
-
Automatisches Makefile/Build Management
Leider ist das gar nicht mal so einfach, was zu finden, was möglichst viele Kriterien erfüllt. Gehen wir mal meine Odyssee durch, wobei dies kein umfassender Vergleich sein soll.
Hinweise
Dieser Test soll nicht fair sein, und er ist auch wirklich äußerst subjektiv. Ich bin teilweise recht voreingenommen was bestimmte Produkte angeht, beispielsweise weil sie in Java geschrieben sind, oder von M$ sind. Ich denke meine Kriterien haben sich auch teilweise während dem Ausprobieren der anderen IDEs leicht verändert. Wer eine abweichende Meinung hat oder denkt das "seine" IDE zu schlecht weggekommen ist, da unten ist ein Eingabefeld für Kommentare und links ein Link zur Seite mit den Kontaktmöglichkeiten. Da ich mit einigen IDEs nur wenige Stunden herumexperimentiert habe, sind mir wahrscheinlich auch eine Menge interessanter Features entgangen, auch hier würde ich mich über Tipps und Hinweise freuen :)
Erläuterung der Kriterien
-
Projektverwaltung Es sollte mehr als ein Editor sein, mit dem man mehrere Dateien gleichzeitig bearbeiten kann. Projekte sollten eine funktionelle Einheit bilden. Mehrere Projekte gleichzeitig in einer Arbeitsumgebung zu haben ist auch hilfreich, vor allem, wenn man beispielsweise eine Bibliothek (oder mehrere!) entwickelt und dazu Testprogramme oder eine Applikation die auf diese Bibliothek aufsetzt. Natürlich liese sich das bestimmten Fällen auch mit mehreren Zielen im Buildmanagement erreichen, aber es wäre nicht so sauber.
-
Integrierter Debugger Jede IDE sollte einen Debugger drin haben, sonst ist es einfach keine IDE. Gute Debugger haben überwachte Ausdrücke, automatische lokale Variablen und bedingte Haltepunkte. Und leider können das nicht alle IDEs :(. AFAIR hatte Eclipse/CDT früher Probleme den Typ von Variablen oder Arrays festzustellen.
-
Class Browser Der Class Browser ist wichtig um auf einer höheren Ebene ein Projekt umzusetzen wie man sie nicht hätte, wenn man nur mit Dateien, statt mit Klassen arbeiten müsste.
-
Unterstützung für Subversion Die Integration einer Codeverwaltung ist für mich wichtig und zur Not würde es auch CVS tun wenn der Rest stimmt. Es gibt zwar auch Konsolenprogramme und Erweiterungen für den Explorer (TortoiseSVN) aber da müsste man immer selber Dateiauschlüsse wie Backupdateien, IDE-Zwischendateien, etc verwalten, was eine IDE automatisch machen sollte.
-
Codevervollständigung Dies ist auch eine nützliche Funktion, weil sie einem immer daran erinnert, welche Funktionen und Methoden gerade verfügbar sind. Auch wenn man diese als Programmierer auswendig können sollte, ist es doch oft doch so, das einem gerade der Name nicht einfällt.
-
Übersichtlichkeit bei 1024x768px Gerade wenn man ein "kleineres" Notebook hat, ist diese Auflösung wieder wichtig. Und man sollte auch bei dieser Auflösung komfortabel arbeiten können und dabei noch die Übersicht zu behalten.
-
Verfügbarkeit für mehrere Plattformen Auch wenn ich noch ein Windowsbenutzer bin, möchte ich doch endlich mal auf Linux umsteigen, und würde da dann gerne dann die gleichen Programme nutzen wie unter Windows. Zudem finde ich, das man so programmieren sollte, das es nicht nur unter Windows läuft, sondern auch unter Linux und Mac OS X
-
Unterstützung für Codedokumentation Seine eigenen Ergüsse zu dokumentieren ist auch äusserst wichtig, vor allem wenn man Bibliotheken schreibt, die andere evt. verwenden (müssen). Diese unangenehme Arbeit sollte von einer IDE unterstützt werden.
-
Open Source Eigentlich eine persönliche Einstellungssache. Aber selbst wenn man kein Open Source Fanatiker ist, sollte man doch einsehen, das es eher möglich ist eine Erweiterung für eine Open Source Anwendung zu entwickeln als für eine Closed Source Software, was sich dann bestimmt positiv auf deren Anzahl auswirkt.
-
Codeformatierung Richtige Programmierer sollten ihren Code händisch nach ihrem favorisierten Stil formatieren können, ich bin dafür aber zu faul, habe aber dennoch gerne einen sauber nach meinem Lieblingsstil formatierten Code (GNU Stil). Am besten wäre es, wenn der Code beim Editieren schon formatiert würde.
-
Automatisches Makefile/Build Management Gerade für Anfänger ist es hilfreich, wenn sich die Entwicklungsumgebung um die nötigen Einstellungen kümmert, auch wenn sie den Entwickler trotzdem nicht von allen Einstellungen befreien kann. Gerade Bibliotheken und bestimmte frameworkabhängige Projekte brauchen oft sehr komplizierte Einstellungen. Zu dem muss man dann nicht selber das Makefile pflegen, wenn man an der Struktur des Programms was ändert. Trotzdem sollte man ein Projekt auch ohne IDE kompilieren können.
Code::Blocks
Code::Blocks steckt noch in der Entwicklung, macht aber einen sehr guten Eindruck. Interessant ist der wxWidgets GUI Designer "wxSmith", den ich jedoch nicht brauche. Man sollte sich nicht davon abschrecken lassen, das der letzte Release Candidate von Herbst 2005 ist, denn Code::Blocks wird aktiv weiterentwickelt. Die täglichen Builds sind auch sehr gut, und viel besser als dieser RC2. Zur Homepage |
Die Projektverwaltung ist klasse, mehrere Projekte können bequem innerhalb eines Workspaces verwaltet werden.
Der Debugger gefällt mir persönlich auch sehr gut. Überwachte Ausdrücke sind in anderen IDEs leider nicht selbstverständlich.
Der Class Browser ist gar nicht mal so schlecht, wenn man erstmal die anderen IDEs ausprobiert hat. Ich fand ihn zuerst doch etwas rudimentär.
Das Subversionplugin läuft nur mit dem letzten Release Candidate, der von Herbst 2005 ist. Die aktuelle SVN-Version hat keine Codeverwaltungsunterstützung mehr.
Die Codevervollständigung läuft mittelmässig. Nicht immer werden alle Mitglieder und Auswahlmöglichkeiten angezeigt, bei komplizierten Typen und Templates (Shared Pointer) versagt sie zumindestens bei mir vollständig.
Auch auf meinem Notebook lässt es sich gut arbeiten :)
Die IDE läuft zumindestens unter Windows und Linux. Die Projekte lassen sich unter beiden Plattformen nutzen
Eine Dokumentationshilfe habe ich nicht gefunden.
Die IDE ist Open-Source und damit auch kostenlos.
Die Codeformatierung ist exzellent, sie bietet gängige Layouts an, lässt sich aber auch konfigurieren. Leider muss man sie von Hand starten.
Die automatische Buildverwaltung ist gut, allerdings ist zum kompilieren die IDE nötig. Einen Makefileexport gibt es nicht.
konstanter CPU-Verbrauch auch im Leerlauf
Schnelles Umschalten zwischen Header und Implementation
Eclipse/CDT
Eclipse ist eine Entwicklungsumgebung (und mehr) für Java und andere Sprachen. Unterstützung für C++ wird durch das CDT Plugin erreicht. Zuletzt hatte ich Eclipse/CDT vor einem Jahr benutzt, und war am Ende nicht mehr so begeistert. Jetzt habe ich den aktuellen 4.0er Milestone 6 ausprobiert, und es hat sich einiges getan :) So hat zumindestens Eclipse eine 2. Chance von mir bekommen. In den Klammern sind die alten Bewertungen basierend auf meinen damaligen Erfahrungen mit der 3.0/3.1er Version. Zur Eclipse Homepage Zur CDT Homepage |
Die Projektverwaltung ist super, mehrere Projekte werden unterstützt und zudem kann Eclipse die Pfade (Includes, Libs, etc) zwischen den Projekten automatisch verwalten. (
)
Der Debugger scheint sehr gut geworden zu sein. Nur beim Anlegen bedingter Haltepunkte kommt ein Fehler und man muss Eclipse abschießen, aber das dürfte mit der Beta (Alpha?) Version zusammenzuhängen, so das der Fehler bald behoben sein wird.
Einen Class Browser gibt es momentan nicht. Der ist in einer Version mal temporär rausgeflogen, aber nie wieder aufgetaucht. Dafür existieren eine "Outline" Ansicht, die die Funktionen der aktuellen Datei anzeigt, und eine Index-Ansicht, die einem Class Browser sehr nahe kommt. Ein Class Browser sollte damit doch einfach zu implementieren sein. (
)
Subversion wird über Subclipse sehr gut in Eclipse unterstützt. Auch wenn es ein Konkurrenzplugin gibt, was einige nette Features aufweisst, ist die bestehende Implementation recht gut.
Die Codevervollständigung sieht gut aus und hat zumindestens mit Templates keine Probleme (
)
Mit einer 1024x768er Auflösung ist kaum was im Editor zu sehen. Nach einigen Anpassungen geht es meiner Meinung nach. (
)
Eclipse läuft auf Plattformen die Java und SWT unterstützen (zumindestens Windows und Linux/GTK). Das CDT braucht eine externe Compiler Toolchain wie GCC/GNU Make.
Eclipse hat ein Doxygen Plugin namens Eclox, aber das hat zumindestens damals bei mir beim Updaten immer Probleme gemacht. Es ermöglicht wohl nur eine Doxygen Konfiguration, aber eine sinnvolle Dokumentationshilfe gibt es meines Wissens nach nicht.
Die IDE ist Open-Source und damit auch kostenlos.
In der neuen Version ist eine Codeformatierungsroutine drin, man muss sie zwar von Hand aufrufen, aber sie scheint ihren Dienst zu tun :) (
)
Projekte können nur in Eclipse kompiliert werden, es gibt wohl momentan keine Möglichkeit diese zu exportieren.
Die Eclipse frisst wie jedes typische Java Programm Unmengen an Speicher. Bei mir können schon bis zu 200MB dabei drauf gehen. Die Oberfläche ist aber recht schnell und nicht so träge wie SWING-Programme (siehe Netbeans).
Wenn man in Eclipse eine Datei speichert, dann wird diese im Hintergrund kompiliert, was sehr angenehm ist, aber auch zu Problemen führen kann, wenn man mehrere Dateien parallel bearbeitet und die Änderungen von einander abhängen, dann kommt es dadurch zu Kompilierungsfehler. Ansonsten sehr angenehm :)
KDevelop
KDevelop ist eine freie Entwicklungsumgebung für KDE. KDevelop läuft aber auch unter Cygwin auf Windows. Die Entwicklungsumgebung wird aktiv weiterentwickelt und unterstützt mehrere Programmiersprachen. Zur Homepage |
Die Projektverwaltung ist für mich katastrophal. Mehrere Projekte gleichzeitig werden meines Wissens nach nicht unterstützt. Die Anzeige von Dateien im Projekt ist total unübersichtlich. Dafür ist ein Dateiexplorer eingebunden, aber eigentlich bevorzuge ich eine "virtuelle" Übersicht.
Den Debugger habe ich nicht getestet, da mir die Projektverwaltung schon zu katastrophal war (Bibliotheksprojekt + mehrere Testprojekte)
Den Classbrowser finde ich klasse, er zeigt alles wichtige an und erlaubt es direkt zur Implementation und zur Deklaration zu springen. Leider ist er nur sehr sehr unübersichtlich bei kleinen Auflösungen und wächst bei der Verwendung von verschachtelten Namespaces schnell in die Breite, und dann ist Scrolling angesagt.
Subversion wird direkt über KDE unterstützt, die Unterstützung soll sehr gut sein, habe ich aber selber noch nicht ausprobiert.
Die Codevervollständigung tut auf dem ersten Blick ihre Dienste.
Ich persönlich finde KDevelop bei 1024x768px recht unübersichtlich. Mit einer kleineren Schrift behält man zwar die Übersicht im Editor-Fenster, aber das Drumherum ist doch ziemlich zugebaut und unübersichtlich. Meine Meinung...
Nativ läuft KDevelop auf allen Unix-Betriebssystemen, die die KDE unterstützen. Unter Windows braucht man die Cygwin"emulation", und dort stürzte KDevelop bei mir zu oft ab. Mac OS X : keine Ahnung...
KDevelop bietet eine kleine Hilfe für die Codedokumentation an. Leider erzeugt diese Funktion nur einen minimalen vorformatierten Kommentarblock. Eine komfortableren Editor würde ich persönlich vorziehen. Aber besser als nix.
KDevelop ist Open Source und damit frei und kostenlos erhältlich.
KDevelop bietet Codeformatierung an, die aber manuell aufgerufen werden muss. Eine Formatierung beim Editieren findet nicht statt. Zudem funktioniert die Einrückung im GNU Style bei mir nicht, obwohl diese in der Vorschau korrekt angezeigt wird.
Wenn die automatische Projektverwaltung funktioniert, dann ist sie klasse. Vor allem sind die Projekte extremst portierbar, da sie GNU automake und co. benutzen.
Netbeans/C++-Pack
Netbeans ist eine freie Entwicklungsumgebung für die Programmiersprache Java. Die Erweiterung "C++ Pack" fügt die Unterstützung für C/C++ hinzu. An Plattformen werden Windows, Linux und Sun (OS? Solaris??) unterstützt (mag da einer Mac OS X nicht??). Mingw32 kann unter Windows leider nicht direkt genutzt werden, es wird die Cygwin-Toolchain benötigt. Das diese IDE eigentlich auf Java ausgelegt ist, spürt man fast an jeder Stelle, aber trotzdem könnte man damit C++ Projekte entwickeln. Netbeans Homepage C++ Pack Homepage |
Mehrere Projekte lassen sich gleichzeitig verwalten. Es kann ein Hauptprojekt festgelegt werden.
Der Debugger ist gut. Anscheinend ist es momentan nicht möglich an einer Zeile einen bedingten Haltepunkt anzulegen, zumindestens lässt sich das Bedingungsfeld in der Breakpointmaske nicht anwählen.
Ein Class Browser existiert, aber er verschwendet zuviel Platz und wenn man mal die richtige Methode gefunden hat, kann man dort nur zur Deklaration springen und nicht zur Implementation (Unter Java gibt es diese Trennung ja nicht!).
Die Subversion-Unterstützung ist recht gut integriert.
Die Codevervollständigung versagt bei Templates. Verschachtelte Namespaces werden auch nicht richtig erkannt/unterstützt.
Mir persönlich wird zu wenig angezeigt, selbst wenn man eine kleinere Schritgröße wählt.
Lauffähig ist Netbeans/C++-Pack unter Windows, Linux und Sun.
Eine Dokumentationshilfe habe ich nicht finden können.
Die IDE ist Open-Source und damit frei verfügbar.
Die Codeformatierung ist zu rudimentär. Es gibt kaum Einstellungsmöglichkeiten und "GNU-Style" ist gar nicht möglich. Zudem muss sie explizit aufgerufen werden und versagt schon in einfachsten Fällen.
Ein automatisches Makefile-Management ist vorhanden. Es werden wohl Standard-Makefiles generiert. Leider werden Änderungen an Voraussetzungen nicht erkannt, so das Abhängigkeiten nicht neu kompiliert werden.
Fehler vom Buildprozess werden nicht aufbereitet, es existiert nur die rohe Ausgabe vom Compiler.
Visual Studio 2005 Express/Pro
Diese Entwicklungsumgebung fällt etwas aus dem Rahmen, da sie weder frei ist noch für mehrere Plattformen angeboten wird. Ich habe mehr oder weniger zwei Versionen ausprobiert: Die kostenlose Express Edition, die allerdings aller Teamfähigkeiten wie die Verwendung von Code Repositories wie CVS und Subversion beraubt ist, als auch die 90-Tage Evaluierungsversion, die wohl der besten Version entspricht. Die Pro dürfte aber ausreichen und diese ist für Schüler und Studenten für so um die 60€ zu bekommen, normale Anwender zahlen so um 800€ herum. Zur Visual Studio 2005 Homepage |
Mehrere Projekte lassen sich innerhalb einer Mappe verwalten. Ein Startprojekt kann angegeben werden.
Der Debugger ist exzellent. Komfortabler geht´s kaum.
Der Class Browser ist super. Man kann bequem zur Definition als auch zur Implementation von C++ Funktionen/Klassen/Methoden/etc springen.
Subversionunterstützung wird über das Plugin AnkhSVN zur Verfügung gestellt. Diese Plugin stürzte bei meinen Versuchen immer wieder ab. Zudem kann man es nicht mit der kostenlosen Express Edition verwenden, was aber von M$ so gewollt ist.
Die Codevervollständigung arbeitet sehr gut, selbst Templates schafft sie mühelos.
Die Übersicht ist recht gut, vor allem weil sich die IDE so flexibel anpassen lässt.
Naturlich läuft Visual Studio nur unter Windows.
Eine Dokumentationshilfe habe ich nicht gefunden.
Haha.. M$ und Open Source.. Wenn man auf eine Codeverwaltung verzichten kann, dann kann man die kostenlose Express-Edition verwenden.
Die Codeformatierung hat kaum Konfigurationsmöglichkeiten und zu dem muss man von Hand den gewünschten Codebereich auswählen und dann über das Menü "Code Formatieren" auswählen.
Über die Projektverwaltung kann man sich nicht beschweren, solange man genug Ahnung hat oder nicht von der Menge an Optionen überwältigt ist. Natürlich lassen sich die Projekte nur mit/auf M$ Produkten kompilieren.
Andere IDEs
Und dann waren da noch :
-
X-Code DIE Entwicklungsumgebung für Mac OS X. Wenn man an einem Mac eine PC-Tastatur wie eine normale PC-Tastatur benutzen könnte, dann hätte ich mir X-Code nochmal angeguckt. Aber ohne ordentliches Tastaturlayout .. nein danke!
-
Anjuta Anjuta ist eine IDE für Gnome. Man kann sagen was man will, aber das Ding ist hässlich und meiner Meinung weit entfernt davon entwicklerfreundlich zu sein. Alleine die Projektkonfigurationsdialoge sind erschreckend. Nicht wirklich evaluiert da ich meine bestehende Bibliothek nicht als Library importieren konnte.
-
Bloodshed Dev-C++ Soll gar nicht mal so schlecht sein, aber seit Jahren hat sich nix mehr an dieser Entwicklungsumgebung getan, so das man davon ausgehen muss, das sie tot ist. Das Interface wirkt auf Screenshots schon nicht sooo modern.
-
Borland C++ Builder oder wie das Produkt und die Firma gerade heissen mögen. Ich denke, die IDE ist mehr oder weniger nur auf die Entwicklung mit den Borland Builder Framework (oder wie der Borland Kram heissen) ausgelegt und eine Entwicklung "fremder" Projekte wird nicht so bequem sein. Und sie ist halt heute auch irgendwo auch ein Nischenprodukt.
-
GNAT, wxDevCPP, TheIDE, etc. Die ganzen Exoten. Ich frag mich wirklich manchmal, ob es überhaupt Leute gibt, die diese Programme benutzen.
-
Die unbekannte IDE. Kennst DU eine gute IDE, die du mir empfehlen möchtest, dann schreib doch bitte einen Kommentar oder nenn sie mir auf anderem Wege (Tipp : Kontakt-Seite). Ich bin gerne offen für neue Erfahrungen.
Evil IDE
Wie sieht die Entwicklungsumgebung meiner Träume aus? Projektverwaltung Erstmal können in einem virtuellen Arbeitsbereich mehrere Projekte zusammengefasst werden. Es sollen Abhängigkeiten zwischen den Projekten möglich sein, wie beispielsweise eine Bibliothek und 2 Programme die dann diese Bibliothek nutzen. Die Pfade sollten automatisch von der IDE verwaltet werden. Integrierter Debugger Der Debugger soll Haltepunkte, bedingte Haltepunkte, Überwachungsausdrücke, automatische Anzeige lokaler Variablen und eine Übersicht über globale Variablen bieten. Objektverweise sollen jeder Zeit aufgelöst werden können und auch private Mitglieder sollten auch abgefragt werden können. Zudem sollte es, sofern möglich, ein Direkteingabefenster (wie das von VB) geben, wo man beliebige Ausdrücke auswerten/ausführen kann. Class Browser Die Klassenverwaltung sollte eine Dateiverwaltung/Explorer überflüssig machen. Alle Klassenmitglieder sollten geordnet und evt. filterbar angezeigt werden. Objekte sollten nach Namespaces gruppiert werden. Weiteres unter Klassen- und Funktionseditor. Subversionunterstützung Subversion und/oder CVS sollten von der IDE vollständig integriert werden. Neben den üblichen Update/Commit Funktionen sollten auch auch eine gute History und Log Ansicht implementiert werden. Zwischen allen Versionen sollten Diffs in einem Fenster mit 2 Editoren nebeneinander angezeigt werden können. Ein guter Assistent wäre sicherlich auch hilfreich. Eclipse/Subclipse könnte man da als Vorbild nehmen. Codevervollständigung Sie sollte einfach funktionieren. Alle Klassen, Objekte und auch externe Includes sollten erfasst sein und angezeigt werden. Templates sollten kein Problem sein. Alle Klassenmitglieder sollten verfügbar sein. Übersicht auf kleinen Displays Damals (in der guten alten Zeit!) hatte ich keine Probleme auf einem 14" mit 800x600er Auflösung zu basteln. Aber irgendwie stellen heute schon 1024x768 ein Problem dar, an dem viele IDEs scheitern. Es muss doch möglich sein, eine Entwicklungsumgebung benutzerfreundlich und ansprechend zu gestalten und dabei die GUI kompakt und übersichtlich zu halten. Wie hat es damals geklappt?? Mehrere Plattformen unterstützen Es wäre schön, wenn die IDE sowohl unter Linux als auch unter Windows das gleiche Look & Feel hätte. Wenn noch Mac OS X unterstützt würde, dann wäre es perfekt. Dokumentationshilfe Eine sinnvolle Dokumentationshilfe wäre ein Editor bzw eine Maske, die abhängig vom Typ der zu dokumentierenden Objekts andere Felder anzeigt bzw vorbelegt, so sollten beispielsweise bei einer Klassenmethode die Parameter bereits erfasst sein, so das diese nur noch kommentiert werden müssten. Diese Hilfe sollte also eng mit dem Parser für die Codevervollständigung zusammen arbeiten. Ob diese so erfasste Dokumentation im Quellcode wie Doxygen Kommentare eingebettet werden, oder separat gespeichert werden, das ist mir erstmal egal. Hauptsache es kann hinterher eine gute Referenz exportiert werden. Open-Source Open-Source wäre zwar nett, aber für eine gute Software wäre ich auch bereit was springen zu lassen. Wobei ich denke, das viele Open Source Projekte einfach näher am "Kunden" sind als große Firmen wie M$. Automatisches Makefile/Build Management Am tollsten fänd' ich, wenn man nur einstellen bräuchte welcher Art das Projekt ist (Executable, Library, etc), und das Projekt wird dann dafür konfiguriert. Kleine Änderungen wie beispielsweise von einer statischen Bibliothek zu einer dynamischen sollten möglichst einfach sein. Auch ein Wechsel des Compilers und anderer Teile der Toolchain sollten möglich sein. Und wichtig ist auch, das man das Projekt auch ohne die IDE kompilieren kann, oder einen Export durchführen könnte, der ein Makefile erstellt. Klassen- und Funktionseditor Mir schwebt sowas ähnliches vor wie es damals schon in Visual Basic 6 gab. Jede Klasse, Methode und Funktion soll in einem eigenen Editorfenster editiert werden können. Dieses Editorfenster soll alles verwalten können, was mit dem jeweiligen Objekten zu tun hat, einschliesslich der Parameter und der Dokumentation. Ich stell mir das beispielsweise so vor, das ich im Class Browser eine Klasse auswähle und für die dann ein Editorfenster kriege, in der die Methoden und Mitgliedsvariablen aufgelistet sind und das auch eine Maske für die Dokumentation bietet. In diesem Fenster möchte ich durch einen Klick auf die Methode dann diese in einem neuen Editorfenster zum Editieren bereitgestellt bekommen, natürlich auch mit Dokumentationsmöglichkeit. Wenn ich an der Signatur der Methode was ändere, dann soll sich diese Änderung automatisch auf die Definition und Implementation auswirken. Ausser beim Erstellen von neuen Klassen möchte ich nichts mit den darunterliegenden Dateien zu tun haben. Es wäre quasi eine Vermischung von einem UML-Programm mit einer Entwicklungsumgebung. Heutige UML-Tools können schon recht gut aus Code UML generieren und umgekehrt. Dann sollte das doch nicht so das Problem sein, oder?
Vergleichstabelle
IDE |
Code::Blocks |
Eclipse+CDT |
KDevelop |
Netbeans C++-Pack |
Visual Studio 2005 |
Projekt-Verwaltung |
 |
 |
 |
 |
 |
Integrierter Debugger |
 |
 |
 |
 |
 |
Class Browser |
 |
 |
 |
 |
 |
Subversion |
 |
 |
 |
 |
 |
Code Autocomplete |
 |
 |
 |
 |
 |
Übersicht |
 |
 |
 |
 |
 |
Multi-Platform |
 |
 |
 |
 |
 |
Dokumentationshilfe |
 |
 |
 |
 |
 |
Open-Source/Kostenlos |
 |
 |
 |
 |
 |
Codeformatierung |
 |
 |
 |
 |
 |
Build Management |
 |
 |
 |
 |
 |
Sonstiges |
  |
  |
|
 |
|
Fazit
Tja, jetzt bin ich genauso schlau wie zuvor. Ich kann nur definitv sagen, das ich vorläufig Netbeans und KDevelop nicht verwenden werde. So bleiben noch Code::Blocks, Eclipse+CDT und Visual Studio 2005. Netbeans fällt für mich ruas, weil viele Sachen wie die Autovervollständigung und die Codeformatierung entweder gar nicht funktionieren oder noch sehr rudimentär sind. Und ich finde, man merkt es dem C++-Pack an, das dieser auf eine Java-IDE aufgesetzt wurde. Kdevelop hat wiederum das Problem, das es nicht wirklich andere Betriebssystem als Linux unterstützt. Zudem ist die die Übersicht nicht gegeben, und man ist von den Anpassaungsmöglichkeiten her auch recht beschränkt, ein Problem das Code::Blocks auch leider hat. Visual Studio 2005 kann ich noch 2 Monate kostenlos nutzen, bis dahin sollte ich mich entschieden haben um ggf. noch eine Studentenlizenz erwerben zu können, solange ich noch die Möglichkeit dazu habe. Weiterhin gefällt mir nicht, das es die IDE nur unter Windows gibt, so müsste ich für Linux selber Makefiles erstellen und verwalten. Ich denke mal, diese IDE werde ich wohl nicht nehmen. Bleiben also noch Eclipse und Code::Blocks. Code::Blocks steckt noch mitten in der Entwicklung, und es wird auch fast jeden Tag eine Snapshot-Version (Nightly Builds) herausgebracht. Meiner Meinung nach macht Code::Blocks schon einen recht guten Eindruck, aber es ist auch noch sehr ausbaufähig. Mein Hauptkritikpunkt ist die fehlende Subversionunterstützung (auch CVS wäre ok) in der Entwicklungsumgebung. Natürlich könnte man auch TortoiseSVN oder ein Linux-Äquivalent nehmen, aber es ist nicht das gleiche wie eine saubere Unterstützung in der IDE selbst. Code::Blocks wird wohl voraussichtlich auch nicht meine momentan favorisierte IDE werden. Dann bleibt nur noch Eclipse/CDT. Tja, hätte ich nicht gerade noch etwas ausprobieren wollen dann wäre ich nicht über den aktuellen M6-Release des 4.0er Zweigs gestolpert, dann hätte ich wohl nicht bemerkt wie gut diese Entwicklungsumgebung doch ist. Viele meiner Kritikpunkte sind weggefallen, und der Gesamteindruck hat sich enorm verbessert. Was fehlt ist der Class Browser, wobei diese "Index-Ansicht" es auch tun könnte, das muss die Zeit mal zeigen. Und es ist halt ein Java-Programm, was mir auch nicht so gefällt. Aber man sollte ja kein Programm wegen der Sprache diskriminieren, in der es programmiert worden ist ;). Ich habe mich jetzt erstmal für Eclipse/CDT entschieden und werde diese Kombination vorläufig benutzen. Es stimmt mittlerweile fast alles dort und ich denke da steckt trotzdem noch eine Menge Potential drin. Potential eine exzellente IDE zu werden, sehe ich auch bei Code::Blocks und daher werde ich CB auch noch weiter im Auge behalten. Sobald CB wieder eine Subversionunterstützung hat, werde ich es mir nochmal anschauen und mit Eclipse vergleichen. Bis dahin werde ich mich dann erstmal über Eclipse/CDT ärgern ;)
Update
Hier gibt´s es einen kleinen Nachtrag zu diesem Test
Neueste Kommentare