welche ide /welcher compiler und ein paar andere fragen.



  • hallo.
    ich habe früher ertwas c++ programmiert, bin dann auf java umgestiegen und komme jetzt wieder zurück zu c++.
    früher nutzte ich visual studio und codeblocks.
    allerdings kann man (soweit ich es erfahren konnte) nicht den compiler von vs ändern (und der mvc unterstützt bisher nicht c++11 bzw nur teilweise) und codeblocks unterstützt kein git....

    nun stehe ich vor der frage:
    1)
    welche ide soll ich nutzen?
    sie sollte wenn möglich git unterstützen (evt auch uml) und natürlich sowas wie refactoring usw.

    welche compiler sind gut? (c++11 soll unterstützt werden)
    soweit ich weiß unterstützen sowohl gcc als auch clang c++11.
    welche vorteile hat clang? (also z.b. merklich schnellere programme.)
    welche vorteile hat gcc gegenüber clang? (ist z.b. clang noch etwas verbugged?)

    was für eine libary für fenster könnt ihr mir emfehlen?
    (wäre schön, wenn es dazu einen guil-builder gibt. möglichst in die ide integrierbar)

    was wären vergleichbare sachen zu:
    javadoc
    (dokumentarsystem für code)
    (habe welche gefunden, aber welche werden verbreitet genutzt)

    junit
    (ein unit-test)
    (habe welche gefunden, aber welche werden verbreitet genutzt)

    EMMA
    (ein tool, welches die codeabdeckung von unit-tests prüft)

    maven
    (ein build management tool)

    findbugs
    (ein tool, das code auf fehlermuster prüft und dann warnungen ausgibt)

    könnt ihr mir einen code-profiler empfehlen, bei dem ich auch prüfen kann, wie häufig eine funktion/ eine zeile code aufgerufen wurde bzw welche besonders häufig aufgerufen wurden. (natürlich sollte er auch die laufzeit von funktionen messen können).

    bei allem wäre es mir am liebsten, wenn es in die ide integrierbar ist.

    schonmal danke für alle hilfe.

    gruß
    varant.



  • Zu C++11 und Visual Studio: Unter der Praemisse 'ertwas c++ programmiert' wirst du fehlende C++11 Features kaum vermissen.

    1. Welches Betriebssystem? Windows: Visual Studio!
    2. VS 2012, gcc, clang
    3. fltk
    4. doxygen
      Unittests: ... aehm boost ...
      Emma ... Maven ... Ich glaube du willst gar nicht C++ programmieren. Als Anfaenger ist das alles nebensaechlich.
    5. VS 2012, gprof, ....

    bei allem wäre es mir am liebsten, wenn es in die ide integrierbar ist

    Eher nicht.



  • varan schrieb:

    ide

    Ziemlich egal, ob Notepad++, Emacs oder KDevelop. Je spartanischer desto besser.
    Grund: In C++ schreibt man keinen Boilerplat-Code wie in Java. Es gibt (bis auf sehr wenige Ausnahmen) keine Getter/Setter, kein try/catch/finally, keine Casts keine LangenNamenExecutor.executeAchDieserNameIstWirklichLangOhneAutovervollständigungBinIchVerloren() und wenig for-Loops. Alles was irgendwie doppelt vorkommt kann als Template umgeschrieben werden.
    Hinzu kommt, dass IDEs mit Templates sowieso überfordert sind.



  • varan schrieb:

    bei allem wäre es mir am liebsten, wenn es in die ide integrierbar ist.

    Da triffst du scheinbar einen sehr wunden Punkt, hier streiten sich die Geister (Ich bevorzuge auch eher die IDE-Integration, und nutze auch die Möglichkeiten wie Refactoringwerkzeuge wo möglich).

    Wobei ich nicht zwangsweise alles integriert haben muss, gerade die Quellcodeverwaltung ist mir hier noch am unwichtigsten (An der Arbeit nutze ich z.B. Subversion und TortoiseSVN, eine ähnliche Konstellation mit git habe ich privat auch schon genutzt).

    varan schrieb:

    allerdings kann man (soweit ich es erfahren konnte) nicht den compiler von vs ändern...

    So ganz kann dies nicht stimmen, die Intel-Compiler lassen sich wohl durchaus nutzen.

    varan schrieb:

    ...und der mvc unterstützt bisher nicht c++11 bzw nur teilweise...

    Sofern du nicht massiv auf C++11 Features setzt, was ich ähnlich wie knivil nach deiner Schilderung bezweifel, rechne ich eher nicht damit das du die fehlenden Umsetzungen wirklich vermissen wirst (und die Sachen die bereits umgesetzt sind dir reichen werden). Zudem hat MS seit VS2012 auch die Schlagzahl der Aktualisierungen für eine Version erhöht, so ganz ist also nicht auszuschließen das nicht noch weitere C++11-Features Einzug halten.

    varan schrieb:

    welche ide soll ich nutzen?

    Unter Windows würde ich zum Visual Studio greifen, wobei deine "Design-Anforderungen" eigentlich eher nach einer RAD-Umgebung wie dem C++ Builder schreien (wobei du dann erst recht auf einige C++11 Features verzichten musst, und mit Sicherheit eher schlechten C++ Code generieren wirst - Dazu verleitet nach meiner Erfahrung RAD).

    varan schrieb:

    sie sollte wenn möglich git unterstützen (evt auch uml) und natürlich sowas wie refactoring usw.

    Ab Professional kannst du bei Visual Studio so ziemlich für alles und jedes Erweiterungen finden (wobei diese teilweise kostenpflichtig sind, je nach Qualität und Umfang). Den C++ Builder kann man hier eigentlich komplett in einer Pfeife rauchen, von fehlenden/fehlerhaften Refactoring ganz zu schweigen.

    varan schrieb:

    welche compiler sind gut? (c++11 soll unterstützt werden)
    soweit ich weiß unterstützen sowohl gcc als auch clang c++11.

    Ich würde mich nicht so sehr an C++11, sondern eher an der realistischen Nutzung orientieren. Fehlen dir wirklich entscheidende Features dann geht kein Weg an einen bestimmten Compiler vorbei, in der Regel sollten die meisten aber mit jeden aktuellen Compiler mehr als ausreichend versorgt sein.

    varan schrieb:

    welche vorteile hat clang? (also z.b. merklich schnellere programme.) welche vorteile hat gcc gegenüber clang? (ist z.b. clang noch etwas verbugged?)

    Nach meinem Wissen keiner der für dich als "Anwender" so massiv entscheidend wäre. Von der Geschwindigkeitsoptimierung her soll wohl der Intel recht gut sein, aber in der Regel nehmen sich die Compiler hier nur sehr begrenzt etwas.

    varan schrieb:

    was für eine libary für fenster könnt ihr mir emfehlen?

    Ich kann dir unter C++ keine einzige UI-Bibliothek empfehlen. Am ehesten würde ich wohl noch zu QT tendieren, auch wenn ich meine das dieses Framework "schöner" sein könnte.

    varan schrieb:

    (wäre schön, wenn es dazu einen guil-builder gibt. möglichst in die ide integrierbar)

    Wenn du Oberflächen zusammen klicken willst, würdest du wohl tatsächlich mit dem C++ Builder (und der VCL oder vielleicht auch Firemonkey) Glücklich werden. Ich bin hier froh von C++ weg zu kommen, UI ist so ein Thema das C++ meines Erachtens zu sehr ignoriert hat, und irgendwie jeder sein eigenes Süppchen kocht.

    varan schrieb:

    was wären vergleichbare sachen zu: javadoc

    u.a. Doxygen

    varan schrieb:

    junit

    Hier gibt es mehrere zur Auswahl, wobei ich unter C++ noch kein Unittesting-Framework verwendet habe. Unter anderem hat boost eins, es gibt aber auch einige die wohl junit angelehnt sind.

    varan schrieb:

    EMMA
    (ein tool, welches die codeabdeckung von unit-tests prüft)

    Dürfte unter C++ extrem schwer zu implementieren sein, der gleiche Grund warum es in der Regel nur wenig Refactoring-Unterstützung unter C++ gibt: C++ kann kein Reflection, daher müssen solche Tools den Code recht aufwendig analysieren.

    varan schrieb:

    maven

    Vielleicht der TFS (Team Foundation Server) von Microsoft.

    varan schrieb:

    findbugs
    (ein tool, das code auf fehlermuster prüft und dann warnungen ausgibt)

    Ich hatte mal vor langer Zeit ein kommerzielles im Einsatz, das als Plugin unter Visual Studio zum Einsatz kam. Ich glaube "Visual Lint".

    varan schrieb:

    könnt ihr mir einen code-profiler empfehlen, bei dem ich auch prüfen kann, wie häufig eine funktion/ eine zeile code aufgerufen wurde bzw welche besonders häufig aufgerufen wurden. (natürlich sollte er auch die laufzeit von funktionen messen können).

    Unter Windows kenne ich keinen Freien. Von Visual Studio selbst wohl erst ab Premium oder so, es gibt aber sicherlich noch kommerzielle Plugins.



  • knivil schrieb:

    Ich glaube du willst gar nicht C++ programmieren.

    Sehe ich auch so.



  • volkard schrieb:

    Sehe ich auch so.

    wow wie hilfreich.....

    an alle anderen danke für alle ratschläge

    knivil schrieb:

    Emma ... Maven ... Ich glaube du willst gar nicht C++ programmieren.

    emma finde ich halt ganz angenehm, weil es das testen erleichtert.
    aber asc schrieb ja warum es in c++ nicht umgesetzt wird.



  • varan schrieb:

    codeblocks unterstützt kein git....

    Darf man darüber lachen?
    Also Git installieren und die Bash/GUI benutzen ist - als Programmierer wohlgemerkt - zu viel Aufwand?

    varan schrieb:

    volkard schrieb:

    Sehe ich auch so.

    wow wie hilfreich.....

    Ne? Dieser Volkard...! 😃

    idee schrieb:

    Alles was irgendwie doppelt vorkommt kann als Template umgeschrieben werden.

    😮
    Ich hoffe das ist ein Scherz. Könnte man fast als Spott sehen.

    wenig for-Loops

    Also das ist echt Blödsinn.

    ein tool, das code auf fehlermuster prüft und dann warnungen ausgibt

    Seit wann braucht man das?

    Zu was artet das hier aus?



  • Sone schrieb:

    ein tool, das code auf fehlermuster prüft und dann warnungen ausgibt

    Seit wann braucht man das?

    Ist manchmal extrem hilfreich. Wir hatten bei uns so etwas eine Weile im Einsatz. Hat in der Tat ein paar nervige Bugs aufgedeckt. Ich weiß nicht mehr wie es hieß, unser continuous integration server ging leider vershcütt, und da war es drauf...ich vermisse es sehr. Sieh es mehr wie einen erweiterten warning mode deines compilers, mehr können die DInger nicht. ABer je nrviger Software auf bestimmte Codestellen hinweist, desto mehr ist man geneigt sich zu überlegen, ob man an der stelle wirklich so hässlich zeiger frickeln will...

    //edit seit wann diskutiere ich mit Sone ernsthaft über Tools die in professionellen Softwareprojekten eingesetzt werden?

    //edit2 http://en.wikipedia.org/wiki/Cppcheck



  • otze schrieb:

    //edit2 http://en.wikipedia.org/wiki/Cppcheck

    Na, da es eh in Code::Blocks integriert ist, habe ich es mal kurz ausprobiert.
    Mein Eindruck: völlig unnötig. Schlimme Verbrechen sieht er nicht, an Kleinlichkeiten hängt er sich auf.



  • ich glaube volkard ist einfach nur beleidigt, weil das Tool soviele Fehler bei seinen Codes liefert


Anmelden zum Antworten