Entscheidung für neuen Compiler
-
Hallo alle zusammen, bis jetzt benutze ich immer noch den (nicht mehr weiterentwickelten) Compiler "Power++" (ehemals Optima++) von Sybase. Nun möchte ich gerne umsteigen, und ich möchte mich für eine von zwei Alternativen entscheiden: Borland-C++-Builder oder MS Visual C++. Power++ ist/war dem BCB sehr ähnlich.
Für mich wäre wichtig, diese RAD-Oberfläche zu haben, wie beim BCB. Bietet der MSVC das mit seinen MFC auch an?
Ferner würde mich interessieren, wie der Support seitens der Community so ist. Gibt es viele brauchbare Komponenten für den BCB? Oder gibt es viele Komponenten für den MSVC? Für Power++ gab es seinerzeit recht brauchbare Komponenten, die einem die Kleinarbeit abnahmen (Systray-Komponente, FTP-Up-Download etc.).
Und die wichtige Frage: gibt es von beiden eine Version, die ich zum Studententarif kaufen kann, wären die empfehlenswert und gibt es irgendwo einen Funktionsvergleich zwischen den Standard, Prof. und Enterprise Versionen?
Über sämtliche Hinweise, Erfahrungen etc. bin ich sehr dankbar!
Gruß
Daniel
-
Was du suchst ist kein Compiler, sondern 'ne komplette IDE. Mit Borland habe ich schon seit ewigen Zeiten nichts mehr gemacht, kann dir dazu also nicht viel sagen. Bei Visual C++ ist das aktuelle Framework C++/CLI. Das basiert auf .NET und ist somit weitaus mehr als nur GUI. Die IDE gibt's in der Express Edition auch kostenlos
Visual C++ 2005. Zu MFC würde ich dir als Neueinsteiger bzw. Umsteiger nicht raten. Das ist einfach outdated, auch wenn Microsoft es immer noch supported.
Es gibt hier übrigens auch Foren für diverse Frameworks, da findest du sicherlich mehr Informationen. Da gibt es auch eine Welt ausserhalb von Microsoft und Borland.
-
gut, ich suche eine ide. bin mit den ganzen begriffen nicht so vertraut, ich benuzte einfach "compiler" als synonym für alles, womit ich programme erstellen könnte.
bei .net wäre ja das problem, dass dieses bei dem anwender installiert sein muss, wenn ich damit programme erstelle, oder? außerdem habe ich gehört, dass die MFC in etwa ein pendant zu den komponente/classen von BCB bzw. Power++ sind, dies würde den umstieg für mich natürlich erleichtern, wenn es so wäre.
ich programmiere nur hobbymäßig und bin nicht der absolute profi, daher kommt mir die art und weise, wie man bspw. mit dem BCB programme erstellt, entgegen. soetwas wäre für mich für den umstieg ebenfalls wichtig. und, dass auch künftig updates des compilers/der ide zur verfügung stehen, die meine programme auch auf künftigen (windows-)systemen lauffähhig sein lassen...
-
-
Die MFC ist sozusagen die VCL (BCB-Komponentenframework) von MS, richtig. Und die MFC wird auch noch von MS weiter supported, da seeehr viele Anwendungen damit entwickelt wurden (auch von MS selbst). Von heute auf morgen kann MS dies nicht fallen lassen.
Ich selber habe letztes Jahr noch die MFC favorisiert. Aber heute würde ich kein neues Projekt mehr damit anfangen und ich tu es auch nicht. Warum? Weil es heute bessere Alternativen zur MFC gibt! Denn die MFC entstand noch aus Windows 3.1 Zeiten.
Bedenke bitte, das der Compiler und IDE von MS nicht an die MFC gebunden ist! Du kannst also z.B. wxWidgets nehmen und mit dem aktuellen VC++2005 Express benutzen. wxWidgets ist die direkte Konkurrenz zur MFC und VCL, nur halt kostenlos, OpenSource und sogar platformunabhängig.
Die Frage ist auch: Was willst du machen? VCL, MFC und wxWidgets sind ja eigentlich _mehr_ als nur Komponenten für Fenster. Also weitreichender und komplexer. Geht es dir "nur" darum Programme mit Fenster zu erstellen? Da gibts auch noch für Einsteiger einfacher zu verstehende Bibliotheken. Z.B. ist SmartWin++ sehr intuitiv. FLTK ist auch nicht schlecht und hat sogar gleich einen grafischen GUI-Editor dabei. Es gibt auch Ultimate++, wo sogar eine IDE mit bei ist.
Also, die MFC hat heute kein Alleinstellungsmerkmal mehr. Diese ganzen Konkurrenten sind heute auch im Kommen und benötigen auch alle kein .NET-Framework.
Was man aber unter Windows als IDE empfehlen kann, ist MS VisualC++ 2005 Express, da es kostenlos ist. Es gibt auch Codeblocks, welches vor allem ein kleinerer Download ist, wenn man kein DSL hat.
-
wxWidgets und VC C++ Express hab ich mir mal runtergeladen. Werde ich mir mal anschauen.
Mein Verwendungszweck bzw. Programme, die ich erstellen möchte damit sind alle auf meiner Homepage zu finden: www.koolpeople.de bzw. das eine wird extra unter http://zettelkasten.danielluedecke.de angeboten.
Was auf mich zukommen wird, ist, dass ich alle Projekte von Grund auf neu programmieren muss. Vielleicht liegt hier auch die Chance, gleich einen "richtigen" Umstieg zu machen. Bloß, da ich kaum Zeit fürs Programmieren habe, befürchte ich, dass ein "gravierender" Umstieg zu aufwändig wäre. Daher würde ich gerne auf eine "vertraute" Umgebung umsteigen.
Du hast geschrieben: "Weil es heute bessere Alternativen zur MFC gibt". Was heißt "besser" bzw. worauf bezogen? Auf die "Anwenderfreundlichkeit" der Programmierumgebung oder auf die Technik / Aktualität der Programmiersprache?
Mein Programmierstil bzw. Gewohnheit ist so, dass ich viele Funktionen der Komponenten verwende und kaum direkt auf die WinAPI zugreife. Daher sollte der Umstieg auf eine andere Umgebung nicht unbedingt mit einer kompletten Umorientierung der "Programmiersprache" oder des Programmierstils einhergehen...
hm... schwierig.
-
Mit besser sind die Konzepte für die Programmierung gemeint. Die MFC verwendet Konzepte die einfach nicht mehr aktuell sind und wo du sehr viel Lernaufwand drin hast. Bibliotheken wie FLTK oder SmartWin sind vieeeel intuitiver, da sie die Leistungsfähigkeit von C++ nutzen.
Ein Bsp.? Sagen wir mal du willst ein Fenster mit einem Knopf (Button) erstellen. In MFC wirst du das praktisch mit reinem Code nicht schaffen. Es ist viel zu kompliziert und zu viel Code. Es ist sind mehrere große C++-Dateien. Es gibt zwar einen GUI-Editor, aber es zeigt, wo MFC konzeptionell heute ist.
Ein Bsp. wie es heute geht, nämlich so iuntuitiv das man nicht mal einen grafischen Editor benötigt: http://www.fltk.org/doc-2.0/html/example1.html
Natürlich hat FLTK auch einen grafischen Editor, aber das Beispiel zeigt, das es wesentlich moderner und einfacher ist. Und vorallem, dieses Bsp. läuft nicht nur unter Windows, sondern auch unter Linux, MacOS X und Unixen.
SmartWin++ ist z.B. konzeptionell extremer, schon fast zu modern.
Also, die MFC zieht niemandem mehr die Butter vom Brot.
Und egal auf welche IDE, welche Library du umsteigst: du wirst LERNEN müssen!!! Wenn du nicht neu lernen willst, solltest du bei deinem jetztigen System bleiben! Das meine ich jetzt nicht fies oder sarkastisch, sondern sachlich. Denn in der Programmierung wirst du dich einfach immer weiterbilden müssen. Es geht hier aber nicht um eine neue Sprache, sondern nur um andere C++ Libraries.
-
gut, dass ich nicht ganz ohne lernaufwand auskomme, liegt auf der hand.
nur, was für mich wichtig ist, da meine programme sehr viele verschiedene fenster mit sehr vielen verschiedenen elementen haben, ist es für mich praktisch, wenn ich die gesamt oberfläche BCB-like "zurechtklicken" kann, und dann für eine ListBox z.B. nur noch soetwas wie
for( cnt = 0; cnt < array.GetCount(); cnt++ ) lb_text->Add( array[cnt] );
brauche, um Daten aus einem Array in eine ListBox zu setzen. Wenn sich solche Sachen auch problemlos mit anderen Compilern/IDEs/sonstwas umsetzen lassen, umso besser.
Es geht um C++ libraries
Genau, und da vermute ich viel Ähnlichkeit zwischen Power++ und BCB. Aber ich werde mich mal mit den verschiedenen Vorschlägen hier auseinandersetzen...
Vielen Dank für die Hifle soweit.
-
for( cnt = 0; cnt < array.GetCount(); cnt++ ) lb_text->Add( array[cnt] );
Das ist keine Erfindung von Borland, das man einem Container (egal ob Liste, Tabelle oder einer Datenbank) mit einer Add-Methode etwas hinzufügen kann. Es kann sein das eine Methode anders heißt, aber das Konzept ist überall vom Prinzip her ähnlich.
Z.B. gibts im C++-Standard auch Container, Elemente fügt man dort mit meinContainer->push_back(irgendwas); hinzu. In FLTK, wxWidgets, gtkmm usw. gibt auch sowas. bei der einen Lib heißt es add(), bei der anderen AddElement() usw. Das was du hier gezeigt hast, machen alle Programmierer auf dem Planet in Java, Perl, C++ usw. Das ist die logische Folge von Schleifen und Datenstrukturen bzw. Objekten.
Nur in die Dokumentation wirst du trotzdem schauen müssen.
Wenn es ums Zusammenklicken von Oberflächen geht, haben die meisten Libs Editoren, die man sich aus dem Netz herunter laden kann oder für 20 oder 40 US$ bestellen kann. Bei FLTK ist gleich einer mit bei, auch wenn die Bedienung an manchen Stellen etwas merkwürdig ist, aber im Prinzip klickt man da auch alles zusammen.
-
Artchi schrieb:
Ich selber habe letztes Jahr noch die MFC favorisiert. Aber heute würde ich kein neues Projekt mehr damit anfangen und ich tu es auch nicht. Warum? Weil es heute bessere Alternativen zur MFC gibt!
Naja, diese Favoriten gibt es ja nicht erst seit letztem Jahr
GUI Editoren sind außerdem nicht ganz out. Bei GTK+/GTKmm geht man zB über das man die GUI mit dem Editor (glade) erstellt und dann zur Laufzeit lädt. So hat man im Code mit der GUI nichts mehr zu tun, außer die Signale mit dem Code zu verbinden.
wxWidgets würde ich nicht benutzen. Das sieht für mich nur nach einem OpenSource Clone der MFC aus, mit all den MFC Nachteilen.
Da würde ich eher noch Qt nehmen, was auch ein sehr umfangreiches RAD-Tool hat. Für nicht GPL-Software braucht man aber eine kommerzielle Lizenz.
Ich würde zur Zeit für C++ GUIs wohl zu FLTK tendieren, da es sehr light-weight ist.
-
Ich verschiebe das mal in das GUI-Forum, da es hier ja mehr um eine GUI-Library und Tools geht, als um den Compiler oder die IDE
-
Artchi schrieb:
Nur in die Dokumentation wirst du trotzdem schauen müssen.
das muss ich auch jetzt immer wieder machen, bin einfach zu vergesslich.
-
Hab noch ein Shockwave-Video gefunden, wie man FLUID (FLTKs GUI-Editor) benutzt:
http://seriss.com/people/erco/fltk-videos/fluid-intro.htmlVom kompilieren von der Commandline aus nicht verwirren lassen.