Gemeinsam C++ lernen, wer macht mit? Speziell auf Anfänger bezogen.
-
R.Paul W. schrieb:
Entscheide dich: Willst du C++ (und damit meine ich richtiges C++) benutzen? Wenn ja, dann benutze die von mir vorgeschlagenen Bibliotheken. Willst du auf .NET zurueckgreifen? Dann benutz C# oder VB als Sprache. Beides zu mischen ist moeglich, macht aber nur seltenst Sinn.
Ich glaub nicht, dass es für mich als Anfänger sinnvoll ist noch eine weitere Sprache zu lernen, also wahrscheinlich C++.
Da kommt bei mir dann natürlich die Frage auf, welche Möglichkeiten habe ich damit und gibt es dazu irgendwelche guten Tutorials/Bücher???Buecher und Tuts gibt es zu diesen Bibliotheken genug (einige besser, einige schlechter), aber bevor man dir da was empfehlen kann, muesstest du dich erstmal fuer eine der Libs entscheiden. Hier mal meine Erfahrungen pro und contra fuer einige dieser Libs:
-
WinAPI
-
+ extrem maechtiges Interface
-
+ Extrem systemnah, nur mit Syscalls waerst du naeher dran
-
+ Gut dokumentiert in der MSDN
-
- Nur ein C Interface (d.h. sachen a la cout darfst du nicht erwarten)
-
- nutzt ein veraltetes Design (wird sich aus Kompatiblitaetsgruenden auch nicht mehr aendern)
-
- einige Leute finden die Namenskonvention grauenhaft (wenn man dran gewoehnt ist und ihr Muster versteht kann man gut damit arbeiten
-
Fazit: WinAPI ist das Mittel der wahl, wenn die anderen Bibliotheken eine bestimmte Funktion nicht anbieten. Fuer den produktiven Einsatz mit C++ sollte sie jedoch nicht benutzt werden, ausser man braucht unbedingt eine Funktion aus ihr.
-
MFC
-
+ Objektorientierte Kapselung vieler WinAPI-Funkitionen
-
+ Framework fuer Anwendungen nach dem MVC-Modell
-
+ Sehr gute WinAPI-kompaitblitaet, d.h. wenn du eine Funktion vermisst kannst du ohne Umwege darauf zurueckgreifen
-
+ Bietet nciht nur GUI sondern auch viele Utility-Klassen
-
+ Gut dokumentiert in der MSDN
-
- Kein modernenes C++ (sie ist zwar Objektorientiert, aber benutzt ein veraltetes Design)
-
- Namenskonvention
-
Fazit: *Die* Bibliothek fuer native Windows-Anwendungen in C++. Zwar etwas in die Jahre gekommen, aber dennoch gut zu verwenden. Die nahtlose Integration mit der WinAPI macht sie zu einem extrem maechtigen Werkzeug. Trotz kleiner Mankos zu empfehlen.
-
GTKmm
-
+ Platformunabhaengig, d.h. Anwendungen laufen auch auf Linux usw.
-
- Dadurch kann sie aber auch nur einen begrenzten Funktionsumfang anbieten, der auf allen System auf denen sie laeuft vorhanden ist
-
- Anwendungen brauchen beim ersten Start nach einem reboot ziehmlich lange (getestet auf Windows)
-
Fazit: Gutes Mittel um Platformunabhaengige GUI-Anwendungen zu schreiben. Bietet allerdings keine WinAPI-Integration an, d.h. wenn du an bestimmten Steuerelementen mehr haben willst als die vorhandenen eigenschaften musst du darauf verzichten oder sie von Hand in der WinAPI erzeugen.
Mit QT und wxWidgets habe ich noch keine Erfahrungen gemacht.
R.Paul W. schrieb:
Naja ich will auf jeden Fall C++/CLI zu Ende lernen (sprich das Buch durchlesen und mir dazu meine Gedanken machen ), man weiß ja nie wozu das später noch zu gebrauchen sein wird (vielleicht bringt ja Vater Microsoft eine Neuerung davon raus, welche es deutlich nützlicher macht )!
Lobenswerte Einstellung; es schadet nie mehrere Programmiersprachen zu koennen. Fuer Interops ok, fuer Anwendungen bitte richtiges C++ :p
-
-
Plattformunabhängigkeit ist mir im Moment nicht so wichtig. Ich hab zwar auf meinem Zweitrechner (ich hab insgesamt 3 Stück zu Hause ) Liux installiert, nutze es aber nicht aktiv. Zumeist arbeite ich mit Windows 7 (eventuell auch mit XP). GTKmm scheint für mich also nicht die beste Wahl zu sein. Bleiben noch WinAPI und MFC:
Fuer den produktiven Einsatz mit C++ sollte sie jedoch nicht benutzt werden
Demnach würde ich also zu MFC tendieren, es wäre aber schön, wenn noch jemand die Pros- und Contras von QT nennen könnte.
-
Bei MFC vergass ich ein Contra: Es ist leider erst mit VS Prof. und hoeher enthalten. Solltest du VS Express verwenden (und kein Schueler oder Student sein um VS Prof. kostenlos bei MS abzukupfern), kannst du leider nciht die aktuelle MFC verwenden (im Platform-SDK ist glaub ich eine alte Version vorhanden, aber die zu verwenden waere Leichenschaendung).
Als kostenlose Alternative kann ich noch die WTL nennen. Stammt auch von MS und basiert auf der ATL, ist aber Open Source. Ansonsten duerften die Pros und Contras weitesgehend mit denen von MFC uebereinstimmen, aber es ist schon laenger her, dass ich sie mal verwendet habe, also ohne Gewaehr).
-
Ich bin noch Schüler (demnächst hoffentlich auch Student der Mathematik an der Uni Oldenburg )...
-
R.Paul W. schrieb:
Plattformunabhängigkeit ist mir im Moment nicht so wichtig. Ich hab zwar auf meinem Zweitrechner (ich hab insgesamt 3 Stück zu Hause ) Liux installiert, nutze es aber nicht aktiv. Zumeist arbeite ich mit Windows 7 (eventuell auch mit XP). GTKmm scheint für mich also nicht die beste Wahl zu sein. Bleiben noch WinAPI und MFC:
Fuer den produktiven Einsatz mit C++ sollte sie jedoch nicht benutzt werden
Demnach würde ich also zu MFC tendieren, es wäre aber schön, wenn noch jemand die Pros- und Contras von QT nennen könnte.
Bis gestern hatte ich die "Ehre" ein MFC Programm weiterzuentwickeln. Lass es mich so sagen: MFC/WinAPI ist nicht stellvertretend für gute C++-Programmierung. Es ist - vorsichtig ausgedrückt - die Hölle auf Erden. Oder um einen Spruch von einem Kollegen zum Besten zu geben, der da zu mir meinte: "Ich bedaure Dich, aber ich bin froh, dass ich es nicht machen muss.".
Ich denke, das wurde auf Jonas OSDever Liste nicht gut genug herausgestellt. Die Libs sind zwar gut dokumentiert, aber das heißt nicht, dass irgendwas mal einfach funktioniert - es gibt eine Vielzahl von Reihenfolgeabhängigkeiten und anderem Mist. Schon sehr 'gewöhnungsbedürftig'.GTKmm habe ich vor 6 Jahren ausprobiert, bin dann aber lieber mit Gtk (ohne mm, objektorientiert, aber halt in C) gefahren, auf Linux und Windows. Die Einrichtung von Gtk habe ich als Abschluss des C-Tutorials für verschiedene Entwicklungsumgebungen beschrieben.
wxWidgets rendert auf Windows mit MFC, auf Linux mit Gtk und auf Mac mit Carbon, wenn ich mich recht entsinne. Das Feedback von Gtk ist
Da habe ich bisher nur etwas mit Python mit gespielt. Lies sich aber mit arbeiten.Seit gestern abend lese ich das Qt-Tutorial auf proggen.org (nicht von mir geschrieben) und sammle darin erste Erfahrungen auf'm Mac. Auch der Qt Creator kommt als optionale IDE ganz gut. Ich bin durch das Tutorial noch nicht ganz durch, aber bisher gefällt es mir sehr gut. Die Programme können grundsätzlich ohne Änderungen auf Linux, Mac und Windows kompiliert werden, sowie für einige Händis (Android und iOS sind geplant).
Wenn Du die WinAPI/MFC nutzen möchtest, rate ich Dir trotzdem zu wxWidgets. Die Erfahrungen, die Du dort sammelst sind eher auf moderne GUI-Frameworks anzuwenden, während MFC eher als schlechtes Beispiel dient.
-
Wenn du
2313,50 Euro verschmerzen kannst, um MS Produkte die in die tausende gehen kostenlos zu kriegen: Fordere eine ISIC an, registriere sie nach erhalt auf der selben seite online und dann melde dich hier an.
Und dann fang mit saugen kanBTW: Es gibt Unis, die die ISIC standardmaessig (und wenn ich mich nicht taeusche sogar kostenlos) an ihre Studenten rausgeben. Sollten dir, entgegen aller Wahrscheinlichkeit, die
2313,50 Euro wehtuen, dann informier dich mal auf der Seite deiner Uni, ob die das machen.
-
23 € dürften nicht den weltuntergang für mich bedeuten (zur not bitte ich meine eltern darum )...
-
Xin der Link ist gut, danke!
Qt klingt gut, ich schau mir das demnächst mal an...
-
Sorry, mein Fehler, ein ISIC kostet (inkl. Versand) sogar nur 13,50 Euro.
Hatte (warum auch immer) 23 in Erinnerung und nicht nochmal kontrolliert. Asche auf mein Haupt
-
Sorry, mein Fehler, ein ISIC kostet (inkl. Versand) sogar nur 13,50 Euro.
Hatte (warum auch immer) 23 in Erinnerung und nicht nochmal kontrolliert. Asche auf mein HauptHab mich auch schon ein bisschen gewundert, auch egal:
13,50 € dürften kein Drama sein...
-
R.Paul W. schrieb:
Sag mal ist es in diesem Forum Brauch, dass man mindestens von 1-2 Leuten runtergemacht wird, sobald man irgendeine Frage stellt, wo etwas inkorrekt formuliert wurde?!
Ich habe dich überhaupt nicht runtergemacht und es war auch nicht meine Absicht. Ich habe einen grundsätzlich etwas aggressiven Stil, mich auszudrücken. Wüsste jetzt aber nicht mal, was du an meinem Post beleidigend findest. Das ist gar nichts im Vergleich zu dem, wie ich runtergemacht wurde, als ich angefangen habe (nicht in diesem Forum, damals nocht Newsgroups)
Ich fand deinen Beitrag einfach lustig, weil deine Argumente völlig am Kern der Sache vorbeigegangen sind. Das heißt aber nicht, dass ich mich über dich lustig mache. Niemand kann was dafür, wenn er Anfänger ist und sich noch nicht auskennt.MFC habe ich vor Jahren gemacht, ich finde das grauenhaft. Das kann nicht viel, ist nicht elegant, und macht sehr viele Probleme. Will eigentlich gar nicht so genau darauf eingehen, hat Xin ja schon ganz gut formuliert. In Arbeit nutzen wir Qt. Finde ich recht gut. Mag auch nicht perfekt sein, aber es ist zumindest durchdacht und recht mächtig, damit kommt man schon gut zurecht. Auch interessant, dass Autdesk Maya Qt verwendet.
-
Ich habe dich überhaupt nicht runtergemacht und es war auch nicht meine Absicht.
Kam bei mir zumindest so an...
Ich fand deinen Beitrag einfach lustig, weil deine Argumente völlig am Kern der Sache vorbeigegangen sind.
Bin halt noch Anfänger...
MFC habe ich vor Jahren gemacht, ich finde das grauenhaft. Das kann nicht viel, ist nicht elegant, und macht sehr viele Probleme. Will eigentlich gar nicht so genau darauf eingehen, hat Xin ja schon ganz gut formuliert. In Arbeit nutzen wir Qt. Finde ich recht gut. Mag auch nicht perfekt sein, aber es ist zumindest durchdacht und recht mächtig, damit kommt man schon gut zurecht. Auch interessant, dass Autdesk Maya Qt verwendet.
Qt klingt ganz gut...ich muss mir das noch angucken. Apropos angucken:
Brauch ich, um mit Qt zu arbeiten irgendeine spezielle IDE (wenn dann welche?)?
-
Es gibt eine spezielle QT-IDE, QtCreator.
Aber du kannst es genauso mit Visual Studio benutzen. Es gibt sogar ein spezielles Add-In dafuer: http://labs.qt.nokia.com/2011/12/19/qt-vs-add-in-1-1-10-released/
Wie gut oder schlecht der jetzt ist kann ich, mangels Qt-Erfahrung, nicht beurteilen.
-
Wir benutzen unter Windows Visual Studio (unter Linux wird nicht entwickelt, nur kompiliert und getestet). Das hat vor allem historische Gründe, weil unsere Software schon seit zwanzig Jahren entwickelt wird, lange bevor wir Qt eingesetzt haben. Von dem her kann ich nicht wirklich beurteilen, ob sich Qt Creator lohnt. Das Plugin für Visual Studio bringt nicht wirklich viel, ist aber schon nützlich, wenn man mit Qt arbeitet (z.B. erzeugt es etliche Einträge in der autoexp.dat, damit man sich im Debugger die Qt Objekte wie QString, QList etc. anschauen kann).
Wenn du unter Linux (oder auch unter Linux) entwickeln willst, dann würd ich den Qt Creator nehmen, ansonsten Visual Studio. Erfahrungen mit Visual Studio werden dir auch abseits von Qt nützlich sein.
-
Mechanics schrieb:
Wenn du unter Linux (oder auch unter Linux) entwickeln willst, dann würd ich den Qt Creator nehmen, ansonsten Visual Studio. Erfahrungen mit Visual Studio werden dir auch abseits von Qt nützlich sein.
Möglicherweise ist KDevelop unter Linux auch noch einen Blick wert.