Unterschiede zwischen Eclipse und Visual Studio? Empfehlungen?



  • Hallo Leute,

    heiße Tobias, bin 22 Jahre alt, Student der Mathematik.
    Habe Windows 7 Prof, habe Eclipse mit MinGW heruntergeladen, kann an Visual Studio 2010 herankommen.
    In meinem Seminar soll ich sowohl in MatLAB als auch in C/C++ programmieren.
    (Matlab hierbei für nachvollziehbare Programme mit Graphen/Plots als Ausgabe.)

    In C/C++ möchte ich richtig rechenintensive Aufgaben lösen, da das vermutlich schneller funktioniert. Die Ergebnisse sollen dann entweder:

    (Okay-Möglichkeit) 1. im Terminal, als Vollbild, einfach nur als Punkte, Linien und Kreise graphisch ausgegeben werden oder

    (Toll-Möglichkeit) 2. in einem Windows-Fenster graphisch ausgegeben werden oder

    (Bombenmegaspitze-Möglichkeit) 3. als irgendein Video in irgendeinem Format abgespeichert werden.

    Hab jetzt aus den Foren herausgelesen, dass man dafür wieder etwas zusätzliches braucht. Da ich mich bereits zwei Stunden mit Eclipse und diesem MinGW herumgeschlagen habe, und jetzt plötzlich lese, dass es irgendetwas ähnliches, das dann Visual Studio heißt, gibt, mit dem man das eigentlich auch machen kann, bin ich nun total verwirrt und würde mich über Aufklärung freuen.
    Hier meine Fragen:

    1. Eclipse ist eine Entwicklungsumgebung, das heißt sie malt eigentlich nur Signalwörter bunt und verwaltet meine Programme, richtig?

    2. MinGW sind ausführbare Programme, Werkzeuge, die aus meinen helloworld.cpp ein helloworld.exe machen können, richtig?

    3. um fenster darzustellen, benötige ich ein sogenanntes framework, da hab ich dann was von winapi und .net gelesen, was ist das?

    4. Ist es richtig, dass in Visual Studio die drei oberen Teile, also IDE, Compiler und Framework von Anfang an dabei sind? Warum wird dann im Internet sonst auch Eclipse soviel Beachtung geschenkt? Was soll ich denn nun eurer Meinung nach verwenden?

    Vielen Dank für eure Antworten.

    Lieben Gruß
    Tobias

    PS: Nachtrag, habe gerade festgestellt, dass Visual Studio als Express Edition kostenlos ist; ich erhalte jedoch von meiner Uni auch Visual Studio Ultimate, wenn das relevant sein sollte.



  • Hansi2212 schrieb:

    In C/C++ möchte ich richtig rechenintensive Aufgaben lösen, da das vermutlich schneller funktioniert.

    Aber deutlich schneller.

    Ich habe mal eine Matlab-Berechnung von 14 Tagen auf 6 Stunden in C++ optimiert. Wobei der unoptimierte C++-Code etwa 24 Stunden lief.

    Hansi2212 schrieb:

    (Bombenmegaspitze-Möglichkeit) 3. als irgendein Video in irgendeinem Format abgespeichert werden.

    Hierfür brauchst Du ein Framework, dass Dir die Images berechnet.
    Ich habe damals selbst eins geschrieben und die Ausgabe über GTK geführt, bzw. TIFF-Images gespeichert und anschließend als Film zusammengebaut.

    Hansi2212 schrieb:

    Hab jetzt aus den Foren herausgelesen, dass man dafür wieder etwas zusätzliches braucht. Da ich mich bereits zwei Stunden mit Eclipse und diesem MinGW herumgeschlagen habe, und jetzt plötzlich lese, dass es irgendetwas ähnliches, das dann Visual Studio heißt, gibt, mit dem man das eigentlich auch machen kann, bin ich nun total verwirrt und würde mich über Aufklärung freuen.

    Du bist sehr neu in der C++-Welt, richtig? ^^

    Hansi2212 schrieb:

    1. Eclipse ist eine Entwicklungsumgebung, das heißt sie malt eigentlich nur Signalwörter bunt und verwaltet meine Programme, richtig?

    Vor allem kompiliert sie Deine Programme und zwar alle Deine Quellcodes, nicht nur einen.

    Hansi2212 schrieb:

    2. MinGW sind ausführbare Programme, Werkzeuge, die aus meinen helloworld.cpp ein helloworld.exe machen können, richtig?

    Richtig, mingw ist der Compiler, der aus einem Quelltext, ein Objekt erzeugt (1 bis viele Objekte ergeben eine Exe)

    Hansi2212 schrieb:

    3. um fenster darzustellen, benötige ich ein sogenanntes framework, da hab ich dann was von winapi und .net gelesen, was ist das?

    Du hast die Auswahl zwischen eine ganzen Reihe von Frameworks. GTK habe ich damals verwendet, das läuft auch unter Linux und Mac. Selbiges gilt für Qt und wxWidgets. Die WinAPI ist ... sagen wir nicht unbedingt Anfängergeeignet, .NET schon eher, aber damit holst Du Dir zusätzlichen Balast an Bord - .NET ist nicht nur ein Framework für Fenster zu verwalten, sondern SEHR viel mehr.

    Hansi2212 schrieb:

    4. Ist es richtig, dass in Visual Studio die drei oberen Teile, also IDE, Compiler und Framework von Anfang an dabei sind? Warum wird dann im Internet sonst auch Eclipse soviel Beachtung geschenkt? Was soll ich denn nun eurer Meinung nach verwenden?

    Eclipse ist eigentlich eine Java-Entwicklungsumgebung und dafür ist sie auch wirklich gut.

    Wenn Du C++ unter Windows programmierst, dann ist Visual C++ eigentlich Standard.
    Es gibt aber auch noch weitere Entwicklungsumgebungen, zum Beispiel CodeBlocks oder CodeLite.

    Hansi2212 schrieb:

    PS: Nachtrag, habe gerade festgestellt, dass Visual Studio als Express Edition kostenlos ist; ich erhalte jedoch von meiner Uni auch Visual Studio Ultimate, wenn das relevant sein sollte.

    Da Du von HelloWorlds sprichst, rate ich Dir erstmal dringend dazu C++ zu lernen und Deine Hello Worlds auf der Konsole mit MinGW zu kompilieren. Damit Du verstehst, was eine IDE überhaupt tut und nicht mit 10000 Möglichkeiten einer IDE erschlagen wirst, wo Du Dich eigentlich erstmal auf C++ konzentrieren solltest.

    C++ ist nicht Matlab...



  • Wenn man für Windows entwickelt dann führt imo kein Weg an Visual Studio vorbei. Zum einen schonmal weil msvc quasi der native Compiler für Windows ist und zum anderen weil Visual Studio die mit Abstand beste IDE ist die es gibt. Wer Visual Studio verwenden könnte und es trotzdem nicht tut dem ist nicht zu helfen 😉



  • Hansi2212 schrieb:

    PS: Nachtrag, habe gerade festgestellt, dass Visual Studio als Express Edition kostenlos ist; ich erhalte jedoch von meiner Uni auch Visual Studio Ultimate, wenn das relevant sein sollte.

    Nimm die Ultimate. Dort ist die MFC mit drin (microsoft'scher Wrapper um die WinAPI, also ein Framework zum Klickibunti-Fenster-Erzeugen 😉 ). Ob du das nun nutzt, sei erst mal dahingestellt (es gibt viele MFC-Kritiker, und halt auch Alternativen wie Qt; ich mag die MFC, aber wahrscheinlich nur, weil ich nichts anderes kenne 😉 ), aber es wäre Quatsch, freiwillig die eingeschränkte Version zu nehmen.



  • Wenn du was mit GUI machen willst würd ich eher zu .NET raten. Musst du unbedingt C++ verwenden? Vielleicht würde C# auch gehen!? Damit ließen sich ansprechende Ergebnisse um Größenordnungen einfacher erzielen. Vor allem wenn du mit C++ und Programmieren im Allgemeinen noch nicht so vertraut bist müsstest du schonmal allermindestens ein paar Monate Einarbeitungszeit rechnen bis du soweit bist überhaupt daran zu denken irgendwas mit GUI zu machen.



  • Was du auch bedenken solltest: Mit C# kannst du viel schneller einen Prototypen zusammenbauen als mit C++. So wie das bei dir klingt brauchst du das ja wahrscheinlich für ne Abschlussarbeit / nen Projekt, um was zu zeigen. Da muss die Software ja nicht perfekt sein, sondern ist nur Mittel zum Zweck.

    Ob Performance wirklich eine Rolle spielt, musst du natürlich wissen. Aber auch dann gäbe es Mittel, Rechenintensive Aufgaben auszulagern.



  • ich erhalte jedoch von meiner Uni auch Visual Studio Ultimate

    Die geben dir die Ultimate? Die Ultimate von Visual Studio 2010 kostet im Laden mehr als 12000 Euro (ja: 12 tausend Euro)!

    Nimm sie.

    Zum Rest der Post:

    Wenn es wirklich nur um reine Darstellung von Ergebnissen geht (also nicht um Interaktion mit ihnen) dann brauchst du kein GUI-Framework. Da reich auch ein Grafikframework (z.B. VTK). Das schmeisst dir ein einfaches Window aufn Bildschirm in dem deine Ergebnisse dargestellt werden (scatterplots, 3D Grafikobjekte, wasauchimmer).

    Filme herzustellen ist mit VTK dann auch nicht schwer. Entweder du lässt VTK nach jeder Bewegung/Änderung einen screenshot machen und haust alle Bilder nachher durch die frei erhältliche bmp2avi.exe (so habe ich das für meine diplomarbeit damals gemacht) ... VTK beinhaltet inzwischen auch einen vtkAVIWriter der das für dich direkt erledigt.

    GUI Frameworks brauchst du nur wenn du auch Buttons, Menüs, etc. haben willst. Ich mag Qt (weil platformunabhängig) - ist aber Geschmackssache. Definitiv einfacher zu schreiben als MFC. Die WinAPI ist was für Masochisten (<- höchst subjektiv).

    C++ ist wesentlich schneller als Matlab. dafür musst du viele Funktionen die Matlab so mitbringt selbst implementieren. Kommt halt darauf an was du genau machen willst/musst.

    Eclipse/Visual Studio sind Entwicklungsumgebungen minGW und mscv sind compiler. Compiler brauchst du um aus deinem Code ausführbare Programme zu machen, Entwicklungsumgebungen brauchst du nicht unbedingt (du kannst auch deinen Code in Notepad schreiben wenn dir danach ist und ihn nachher in den compiler stopfen). Man wäre natürlich schön blöd wenn man keine IDE benutzt.



  • dot schrieb:

    weil Visual Studio die mit Abstand beste IDE ist die es gibt. Wer Visual Studio verwenden könnte und es trotzdem nicht tut dem ist nicht zu helfen 😉

    Beruflich habe ich die 2005er Version, privat hatte bis vor kurzem Visual Studio 2008 auf meinem Rechner, die VS 2010 habe ich kürzlich installiert, aber noch nicht groß getestet.

    Visual Studio (inkl. des C++-Compilers) hat deutliche Schwierigkeiten mit Templates. Wenn man mit Templates arbeitet, dann ist Visual Studio sehr weit weg von der besten IDE, die es gibt.
    Da war CodeLite deutlich überzeugender, zumal der GCC auch noch schneller kompiliert.

    Was soll ich also mit Visual Studio?



  • Die 2010 Ultimate (und nur die Ultimate) hat einen 'historischen Debugger' (sprich du kannst Variablenwerte abfragen die bereits out of scope sind). Das ist ein seeeehr nettes Feature.



  • on-topic: Hallo Hansi2212,
    So wie ich das sehe macht dein Programm eine numerische Berechnung?
    Wenn ja, konzipiere Dein Programm so, das es Daten aus einer Datei einliest und auch das Ergebnis wider in eine Datei schreibt. Und zwar so, dass es von anderen Applikationen gelesen werden kann. (Text, CSV)
    Damit ist dein Programm eine sog. einfache Konsolenanwendung. Der Teil "Framework" fällt damit komplett weg. (Und das ist gut so, denn nach deinen Äusserungen zu schliessen hast du weder Zeit noch Lust dich in die GUI-Programmierung einzuarbeiten)

    Damit wird auch die Frage nach der IDE sekundär, da ein guter Texteditor bereits reicht. Falls du ausschliesslich auf Windows arbeitest, bist du mit Visual Studio aber sehr gut bedient. (egal ob Express oder Ultimate)

    Zur Ausgabe, verwende ein anderes Programm, welches deine Ergebnisdaten lesen kann. Benutze was fertiges, was schöne Grafiken machen kann und dabei flexibel parametrisierbar ist.
    Etwa Gnuplot, oder eben MatLAB oder zur Not auch Excel.
    Damit kommst du auf jeden Fall zur "Toll-Möglichkeit", wenn auch mit einem separaten Schritt für die Darstellung.

    Alles andere ist Zeitverschwendung.



  • Xin schrieb:

    Visual Studio (inkl. des C++-Compilers) hat deutliche Schwierigkeiten mit Templates. Wenn man mit Templates arbeitet, dann ist Visual Studio sehr weit weg von der besten IDE, die es gibt.

    Aus Interesse:
    Was genau sind die "Schwierigkeiten" von denen du sprichst und was macht Codelite besser?


  • Administrator

    Xin schrieb:

    Visual Studio (inkl. des C++-Compilers) hat deutliche Schwierigkeiten mit Templates. Wenn man mit Templates arbeitet, dann ist Visual Studio sehr weit weg von der besten IDE, die es gibt.

    Ehm, ich arbeite dauernd mit Templates und zwar im Bereich der Templatemetaprogrammierung und das funktioniert mit VS bestens! Wie kommst du auf den Unsinn, dass man in VS deutliche Schwierigkeiten haben soll?

    @Hansi2212,
    C++ und .Net sind was anderes. Es gibt zwar ein C++ mit .Net, was aber eine eigene Sprache ist und sich C++/CLI nennt. Allerdings ausser als Verbindungssprache sollte man C++/CLI nicht verwenden. C# mit .Net ist sicher nett, aber auch nicht ganz so schnell wie C++. Wohl ca. 10% langsamer, aber es ist noch schwer, dies genau zu definieren. Dafür kann man mit C# recht schnell entwickeln.
    Wenn du frisch mit C++ anfängst, dann rate ich dir persönlich, dass du erst mal alle anderen Frameworks und Bibliotheken vergisst. C++ ist recht komplex und sollte zuerst richtig gelernt werden, bevor man sich mit zusätzlichen Frameworks und Bibliotheken auseinander setzt. Das heisst aber leider auch mehrere Monate reines C++ lernen.

    Im übrigen: Wenn die Ausgabe asynchron zur Berechnung läuft, dann überleg dir auch, ob du überhaupt ein Framework/Bibliothek brauchst. Vielleicht reicht es, wenn C++ das Ergebnis in einer einfach Form (z.B. Text) abspeichert und du diese mit einem anderen Programm weiterverarbeitest. Zum Beispiel mit Matlab plottest.

    Grüssli



  • Xin schrieb:

    Visual Studio (inkl. des C++-Compilers) hat deutliche Schwierigkeiten mit Templates. Wenn man mit Templates arbeitet, dann ist Visual Studio sehr weit weg von der besten IDE, die es gibt.

    Ich kann mich meinen Vorpostern nur anschliessen. Meinst du nicht eine ältere Version (z.B. Version 6)? Es wäre mir nicht bekannt, dass aktuelle Ausgaben von Visual Studio Probleme mit Templates hätten. Und dabei handelt es sich nicht gerade um ein Sprachmittel, das ich selten benutze.



  • VC 6.0 ist älter als der C++ Standard selbst und wäre damit keine wirkliche Basis um hier ein Urteil zu fällen. Visual C++ hat wie jeder Compiler seine Macken, aber aktuelle Versionen stehen was Standardkonformität angeht generell afaik nicht wirklich schlechter da als andere Compiler auch. Eine Liste der Abweichungen gibts hier (die Punkte mit dem export Keyword und den Exception Specifications fallen mit dem kommenden Standard eh flach) wobei ich mir denke dass er vor allem auf die Geschichte mit den Dependent Names anspielt die dazu führt dass VC auch Code schluckt den er laut Standard nicht schlucken sollte. Ein Fix würde hier laut MS aber zuviel Code breaken. Außerdem verlangt er auch nicht immer ein typename wenn er eigentlich müsste.

    Xin schrieb:

    Was soll ich also mit Visual Studio?

    Weiß nicht, aber das war hier ja eigentlich auch nie die Frage oder!?



  • Oh Leute, ihr seid echt zu krass!

    Vielen, vielen Dank für so zahlreiche, hilfreiche Antworten, hätt ich nich im Leben erwartet.

    @Xin:
    Danke für die Erläuterung zu meinen Fragen, bestätigt mich in der Vermutung bezüglich Zeitersparnis.

    @dot, @beselbube:
    Hab mich jetzt auch vorerst für C# entschieden, schau mer mal, des erste Proggie läuft schon mal.

    @scrontch,@dravere:
    Geniale Idee, das mit dem Ausgabe in Datei, das ist auf jeden Fall eine Möglichkeit, werd ich ausprobieren. Dann brauch ich mir keine Sorgen mehr um Grafikausgabe machen, sondern kann das direkt mit nem anderen, leichter zu bedienenden Programm machen.

    Also, meine Fragen sind fürs erste beantwortet, danke an alle Poster.

    Kann geclosed werden.

    Lieben Gruß
    Tobias



  • Dieser Thread wurde von Moderator/in pumuckl aus dem Forum C++ in das Forum Compiler- und IDE-Forum verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.


Anmelden zum Antworten