POLL (Programmiersprachen)


  • Mod

    Auch die On-The-Fly Syntaxprüfung (rot markierte Wellenlinie) hat VisualAssist X! Gut das funktioniert nicht immer 100%ig, wegen der Komplexität von C++, aber meistens macht er das richtig.

    Stichwort: Refactoring. Was ist möglich mit Visual Assist? Kommentare werden mitberücksichtig? Namespaces? Funktioniert ein Rename? Ein Move? Automatisch generierte Klassendiagramme mit Abhängigkeiten? Übersetzung von C++-Klassen in Datenbanktabellen? Automatische Persistenzframeworks? Anzeigen bei #ifdef ___ func-decl #endif? Was geht denn wirklich ... nahezu nix. Und jetzt komm mir nicht mit der Komplexität der Sprache, denn die bemängle ich.

    MfG SideWinder



  • SideWInder schrieb:

    Unicode? RegEx-Unterstützung? Jede C++-Library schreibt ihre eigene Implementierung die möglichst anders ist => umständlich?

    Unicode? Was macht denn wstring? Wenn die MingW-Fuzis es verschlafen wstring zu implementieren, kann C++ nichts dafür. Ich setze wstring erfolgreich ein. Kann damit problemlos arabisch und chinesiche Zeichenketten bearbeiten. Da die Windows-API auf wchar_t setzt, brauch ich blos mystring.c_str() an die WinAPI-Funktionen übergeben, und schon steht mein Unicode-String auf dem Bildschirm.

    RegEx? Schon mal was von std::tr1::regex gehört? Anscheind die offizielle Library Erweiterung von April 2006 verschlafen?


  • Mod

    Einfach mal das Plugin ausprobieren, es lohnt sich. Und einfach zu sagen, das eine C++-IDE mit einer Java-IDE nicht mithlaten kann, zeugt einfach nur von Unwissenheit...

    Bei der Anzahl an Leuten die ihre SQL-Scripts immer noch im Editor statt mit Toad oder JDeveloper erzeugen zeigt das von Erleuchtung. Bei der Anzahl an Leuten die immer noch eine IDE "modern" finden wenn sie automatisch die Methoden aufpoppt...

    In ist: Parameter guessing, Refactoring mit allen Maschen, Generierung, automatisches Erkennen von Abhängigkeiten, etc.

    BTW: Da fällt mir ein, dass eine Sprache wie C++ zwar Namespaces hat aber trotzdem immer noch auf ein altmodisches Header-System zurückgreift. Hätten die doch lieber ein Package-System gebastelt.

    MfG SideWinder



  • Artchi schrieb:

    nenn mir eine entwicklungsumgebung, die mit eclipse für java mithalten kann! ich wäre dir sehr dankbar dafür! Und nein, VS 2005 C++ ist einfach schlecht.

    Die Natur ist doof! Ich mag keine Bananen, die sind auch doof. La la la la! Ätzsch! Ihr seid doof, ihr seid doof! Ätschie bätsch!

    Hallo? Vielleicht kannst du mal wie ein normaler erwachsener Mensch sagen, was an C++ Tools genau schlecht ist??? Muß man dir alles aus der Nase ziehen? Komme mir wie im Kindergarten vor.

    mit solchen aussagen disqualifizierst du dich. bleib auf dem boden...

    [quote="Artchi"]

    Aber ich kann dir eine Umgebung nennen, die sehr gut mit den Eclipse-Plugins for Java mithalten kann:

    VC++ und Visual Assist X. Und ja, ich arbeite seit Jahren täglich mit Eclipse und programmiere auch Plugins für Eclipse (kenne es also seeehr gut). Ich habe Erfahrung und kann es vergleichen. Visual Assist X ist ein sehr mächtiges C++ Plugin, das die IntelliSense von MS ersetzt und sogar Suggestions macht. Auch Refectoring ist damit möglich, mit den gleichen Features wie bei Java-Refectrorings. Selbst Rechtschreibprüfung mach Visual Assist in den C++-Kommentaren. Auch autom. Dokumentation mit Parametern einer Funktion/Methode lassen sich einfügen. Will ich z.B. einen Header inkludieren, bekomme ich nach dem Eintippen von "#inc" sofort eine Liste aller Headers.

    Auch die On-The-Fly Syntaxprüfung (rot markierte Wellenlinie) hat VisualAssist X! Gut das funktioniert nicht immer 100%ig, wegen der Komplexität von C++, aber meistens macht er das richtig.

    Einfach mal das Plugin ausprobieren, es lohnt sich. Und einfach zu sagen, das eine C++-IDE mit einer Java-IDE nicht mithlaten kann, zeugt einfach nur von Unwissenheit...

    diese antwort ist natürlich viel hilfreicher.

    visual assist verwende ich auch und damit macht das programmieren mit VS 2005 viel mehr spaß als ohne. trotzdem ist eclipse meilenweit überlegen:
    - zahlreiche refactorings
    - code-completion ist viel intelligenter
    - der im editor integrierte assistent zum importieren von packages, zur estellung fehlender operationen oder einer vorschlagsliste zur korrektur von irgendwelchen fehlern.
    - Kompilierzeit ist fast 0
    - und viele viele andere kleinigkeiten


  • Mod

    RegEx? Schon mal was von std::tr1::regex gehört? Anscheind die offizielle Library Erweiterung von April 2006 verschlafen?

    Das klingt verdammt nach "Noch immer nichts von XQuery gehört!! Was kann ich dafür, dass nichtmal der neueste Browser das untersützt???!" Du tust glatt so als wär das bereits etablierer Standard. Das ist nichtmal irgendeine Form von Standard. Das ist ein "Technischer Report", ein anderer Name für Beta.

    Unicode? Was macht denn wstring?

    Wenn das alles immer schon so toll funktioniert hat - wieso gibts dann kaum Libraries die davon Gebrauch machen? Wieso hat QT eine eigene? Wieso MFC? Warum?

    MfG SideWinder





  • otze schrieb:

    mathik schrieb:

    otze schrieb:

    SideWinder schrieb:

    Das sagt ja auch niemand. Aber für den alltäglichen Gebrauch kann ich aus der C++-Library nun leider fast gar nichts verwenden. Das fängt bei den nicht vererbbaren Containern bei denen Datenstrukturart und Implementierung vermischt wurden an,

    gibt es denn einen sinnvollen grund, wieso container polymorph sein müssen, wenn die sprache ein funktionierendes iteratorkonzept(also nicht sowas wie in java) unterstützt?

    ja. du kannst zur laufzeit einen vector nicht durch eine list ersetzen. überhaupt ist die bibliothek in c++ so ausgelegt, dass sehr viel zur compilezeit festgelegt wird. hat seine vorteile (performance) aber auch nachteile (flexibilität während der laufzeit).

    aber warum sollte man sowas tun? Ich seh da irgendwie den Vorteil nicht. Ich mein, es funktioniert ja nichtmal gut. Unterschiedliche container haben auch zugleich andere Anforderungen an das interface. ne liste hat keinen op[] wie ein vector(und das ist auch sehr sinnvoll so), und die meisten gemeinsamkeiten sind damit nunmal in den iteratoren enthalten.
    Und wenn man mal verschiedene repräsentationen einer elementmenge braucht, kann man sich im ernstfall auch einen container Boost::multi_index holen.
    und vorallem: wenn ich die container von den algorithmen trenne, und nur über iteratoren mit denen kommuniziere, kann ich trotzdem die container ändern wie ich lustig bin. Zwar nicht polymorph, das ist aber auch seltenst notwendig, aber statt den container zum algorithmus zu tragen, kann man auch den algorithmus zum container bringen...
    Und für den fall dass das auch nicht reichen soll: polymorphe iteratoren soll es ja auch geben. Und spätestens die löschen dann jeglichen unterschied aus. C++ ist sicher keine einfache Sprache und sie erfordert sicher eine menge Kreativität, aber das ist halt zugleich stärke und schwäche.

    in java greift man auf container auch über iteratoren zu. folgendes kannste in c++ nicht machen (oder eher umständlich):

    container* c;
    if (viele löschoperationen)
    {
     c = new list;
    }
    else
    {
    c = new vector;
    }
    
    iterator beg = c->begin();
    


  • SideWinder schrieb:

    Auch die On-The-Fly Syntaxprüfung (rot markierte Wellenlinie) hat VisualAssist X! Gut das funktioniert nicht immer 100%ig, wegen der Komplexität von C++, aber meistens macht er das richtig.

    Stichwort: Refactoring. Was ist möglich mit Visual Assist? Kommentare werden mitberücksichtig? Namespaces? Funktioniert ein Rename? Ein Move? Automatisch generierte Klassendiagramme mit Abhängigkeiten? Automatische Persistenzframeworks? Anzeigen bei #ifdef ___ func-decl #endif? Was geht denn wirklich ... nahezu nix. Und jetzt komm mir nicht mit der Komplexität der Sprache, denn die bemängle ich.

    MfG SideWinder

    Geht: Namespaces, Rename, Move, Methode extrahieren, Implementirung vom Header in den Cpp-Datei moven. Die wichtigsten Refactorings kann jedenfalls das Tool!

    Das fast nichts geht, kann man nicht sagen.

    Übersetzung von C++-Klassen in Datenbanktabellen? Weiß nicht was das sein soll.

    Automatische Persistenzframeworks? Was ist denn automatisch? In dem ich in Java entweder noch XML-Beschreibungsdateien oder Annotations einbauen muß??? Ich habe Hibernate in einem Projekt benutzt. Es funktioniert gut, aber unter autom. versteh ich was anderes. Verkauf mal hier den Leuten nichts falsches. Sonst kann ich mal die ellen langen XMLs und Annotations posten.

    Manchmal frage ich mich, warum die ganzen C++-Kritiker hier JEDEN Tag im Forum sind? Weil sie C++ nicht leiden können? Echt wahnwitzig das ganze... 👍



  • SideWinder schrieb:

    Unicode? Was macht denn wstring?

    Wenn das alles immer schon so toll funktioniert hat - wieso gibts dann kaum Libraries die davon Gebrauch machen? Wieso hat QT eine eigene? Wieso MFC? Warum?

    MFC und Qt gab es vor dem Standard. Das diese nicht auf wstring umsteigen, ist deren Entscheidung.



  • Du tust glatt so als wär das bereits etablierer Standard. Das ist nichtmal irgendeine Form von Standard. Das ist ein "Technischer Report", ein anderer Name für Beta.

    Eine fix und fertige Implementierung gibt es offiziel von Dinkumware. Auch ein Lehrbuch über TR1 kann man bei Amazon kaufen. Die Implementierungen von Boost und GNU sind kurz vor dem Release, die Regressiontests laufen noch. Und der TR1 hat eine ISO-Nummer und wird laut Komitee-Abstimmung in C++2009 reinkommen. Ist ja nicht so, das es inoffiziell ist.



  • mathik schrieb:

    in java greift man auf container auch über iteratoren zu. folgendes kannste in c++ nicht machen (oder eher umständlich):

    container* c;
    if (viele löschoperationen)
    {
     c = new list;
    }
    else
    {
    c = new vector;
    }
    
    iterator beg = c->begin();
    

    Natürlich kannst du das in C++ machen, siehe Traits-Klassen.


  • Mod

    Ich kann C++ doch leiden, aber mir gehen die Leute auf den Sack die behaupten Java wäre für Anwendungsentwicklung und Mid-Tier-Entwicklung die falsche Sprache. Die haben schlichtweg keine Ahnung. Ich warte eigentlich nur noch darauf, dass Adobe auf C# und .NET umsteigt damit die Jünger der Gläubigen hier nicht dauernd ihr Paradebeispiel rauswerfen können.

    [quotw]
    In dem ich in Java entweder noch XML-Beschreibungsdateien oder Annotations einbauen muß???[/quote]
    Keine Ahnung wovon du redest. Programmierst du Java in einer komplett veralteten Version von vor 5 Jahren? Mit einem Editor ala Notepad? Also das maximale was ich noch schreibe ist eine Annotation für ein weiteres Query, den Rest macht die IDE.

    Sonst kann ich mal die ellen langen XMLs und Annotations posten.

    Immer her damit. Kennzeichne die Stellen die du selbst geschrieben hast und nicht von der IDE generiert wurden.

    MfG SideWinder


  • Mod

    THX 1138 schrieb:

    Natürlich kannst du das in C++ machen, siehe Traits-Klassen.

    Sample für std::vector und std::list bitte, danke.

    Auch ein Lehrbuch über TR1 kann man bei Amazon kaufen.

    Eins? Tatsächlich? Wow.

    Komitee-Abstimmung in C++2009 reinkommen

    2009 schon, da hat man sich dann aber schnell geeinigt drauf. Dauert ja nur noch 2 Jahre um eine offenbar fertige Erweiterung zu standardisieren. Ist ja auch kein Problem, was sind schon 2 Jahre in der IT-Welt. Erstmal Kaffee holen...

    MfG SideWinder



  • SideWinder schrieb:

    Ich kann C++ doch leiden, aber mir gehen die Leute auf den Sack die behaupten Java wäre für Anwendungsentwicklung und Mid-Tier-Entwicklung die falsche Sprache. Die haben schlichtweg keine Ahnung. Ich warte eigentlich nur noch darauf, dass Adobe auf C# und .NET umsteigt damit die Jünger der Gläubigen hier nicht dauernd ihr Paradebeispiel rauswerfen können.

    Hallo? Die einzigen die hier immer Motzen, sind die Javaisten und C#ler!!! Die fangen immer solche Threads an, das C++ dies und das nicht kann. Ohne Javaisten oder C#ler würden solche Threads garnicht entstehen. Was interessiert uns denn, ob jemand Java auf nem AppServer einsetzt? Aber wenn tntnet seine C++Webserver Kit mal empfiehlt, kommen die Javaner angekrochen und heulen rum. Da fragt man sich echt, wer Angst hat?



  • SideWinder schrieb:

    Ich warte eigentlich nur noch darauf, dass Adobe auf C# und .NET umsteigt damit die Jünger der Gläubigen hier nicht dauernd ihr Paradebeispiel rauswerfen können.

    Naja, was zeigen würde wie brauchbar Java für Desktopanwendungen ist. Aber bloss aufpassen, dass die nicht auf das komplexe C++/CLI umsteigen, gell? 😉


  • Mod

    TactX schrieb:

    SideWinder schrieb:

    Ich warte eigentlich nur noch darauf, dass Adobe auf C# und .NET umsteigt damit die Jünger der Gläubigen hier nicht dauernd ihr Paradebeispiel rauswerfen können.

    Naja, was zeigen würde wie brauchbar Java für Desktopanwendungen ist. Aber bloss aufpassen, dass die nicht auf das komplexe C++/CLI umsteigen, gell? 😉

    Java und C#/.NET sind andere Namen für das Gleiche. C++/CLI ist so wie C++ seit 2 Jahren sein sollte wenn es sich mit Java und C# messen will. Ich würde C++ einfach gar nicht mit diesen Sprachen messen weil ich immer noch überzeugt bin, dass beide für andere Zwecke gedacht sind. Aber ihr erzählt mir immer das Gegenteil.

    @Artchi: Zum Thema "Streiterei anfangen", du landest deswegen immer in solchen Diskussionen weil du sie meistens beginnst. Wie in diesem Thread übrigens mit folgendem Posting:

    Naja, manchmal zweifel ich auch an manchen Forenusern. Manchmal sollte man das Forum in www.anti-c-plusplus.net/forum umbenennen. Ich will jetzt keine Namen nennen, sonst kann ich nicht mehr auf die Strasse.

    MfG SideWinder



  • 2009 schon, da hat man sich dann aber schnell geeinigt drauf. Dauert ja nur noch 2 Jahre um eine offenbar fertige Erweiterung zu standardisieren. Ist ja auch kein Problem, was sind schon 2 Jahre in der IT-Welt. Erstmal Kaffee holen...

    Na, dich zwingt ja keiner so lange zu warten. Kannst ja eine andere moderne Sprache benutzen. Also, ich meine nur, mir ist das doch schnuppe, was jeder benutzt. Du mußt wirklich nicht noch bis 2009 warten. Ehrlich. Ich halte dich nicht auf. 🙂



  • SideWinder schrieb:

    TactX schrieb:

    SideWinder schrieb:

    Ich warte eigentlich nur noch darauf, dass Adobe auf C# und .NET umsteigt damit die Jünger der Gläubigen hier nicht dauernd ihr Paradebeispiel rauswerfen können.

    Naja, was zeigen würde wie brauchbar Java für Desktopanwendungen ist. Aber bloss aufpassen, dass die nicht auf das komplexe C++/CLI umsteigen, gell? 😉

    Java und C#/.NET sind andere Namen für das Gleiche.

    Echt?



  • Ist mal wieder so sinnlos das ganze. Naja 2 Punkte von mir:

    Visual Assist X vs Eclipse:
    Das Visual Assist X nichts kann ist schon ziemlich daneben. Das kann schon einiges, aber perfekt ist es eben auch nicht, und es reicht tatsächlich nicht an Eclipse ran. Aber ich persönlich finde, dass es für viele alltägliche Dinge doch sehr gut funktioniert und dadurch schon sehr nahe an Eclipse kommt.

    Bibliotheken:
    Also das Argument von Leuten, dass man keine zusätzlichen Bibliotheken einbinden will (z.B. Boost), weil dadurch z.B. die Programme größer werden oder sonst was, ist ja mal sowas von daneben. Das ist doch in Java nicht anders, nur dass man hier nicht mal die Wahl hat, sondern dass man automatisch oft "Ballast" mitschleppt den man so gar nicht benötigt. Und um nicht falsch verstanden zu werden, ich finde das auch nicht sonderlich schlimm, nur kann man doch dann nicht C++ ankreiden, dass man hier im Prinzip die freie Wahl hat...

    Und ich stell jetzt mal ne These auf, auch wenn sie noch so blöd ist:
    Wenn C++ eine komplett neue Sprache wäre, und nicht C kompatibel wäre (was ja aber natürlich schon gut ist), dann gäbe es solche Threads wie diesen hier gar nicht. Den "Frickel"-Ruf hat C++ doch nicht zuletzt deswegen, weil eben immer wieder veraltete C Konstrukte eingesetzt werden, anstatt die moderneren C++-Mittel zu verwenden. Und das nicht nur von Anfängern, sondern auch im professionellen Bereich. Liegt einfach auch daran, dass man nicht gezwungen ist, sich mit den ganzen C++-Sachen auseinanderzusetzen, merke ich ja auch selbst manchmal bei mir.


  • Mod

    @Artchi: Keine Sorge, im Gegensatz zu manch anderen hier oder sonstwo (thomas001 im Chat zB) stelle ich zuerst fest welche Aufgabe ansteht, dann welche Umweltbedingungen (vorhandener Code, etc.) ich habe und erst dann welche Programmiersprache ich dafür benutze. Danach welche Libraries ich verwende (Logging, DB-Anbindung, etc.).

    Manche hier sind aber von vornherein auf jeden Fall von C++ überzeugt, überlegen dann wie sie die Aufgabe umdichten können damit sie optimal passt. Fangen erst einmal an das Logging-System oder das Konfiguration-System zu schreiben. Arbeiten sich bei Minimalproblemen stark ins detail und übersehen dann, dass ihr ehrgeiziges Projekt bereits tot ist bevor es richtig angefangen hat.

    @TactX: Nein, nicht unencht.

    MfG SideWinder


Anmelden zum Antworten