ubuntuusers.de

GTK+ mit C++ nutzen - Verständnisfrage

Status: Gelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

Kabaal

Anmeldungsdatum:
5. September 2005

Beiträge: 33

Hallo.

Vor ewiger Zeit habe ich mal in C++ programmiert und wollte damit jetzt wieder anfangen.
Da ich mittlerweile nach Gnome gewechselt bin werde ich wohl GTK nutzen. Nun habe ich
gelesen das Gnome und eine menge Software für Gnome in C geschrieben sind. Außerdem
wollte ich die Abhangigkeiten so gering wie möglich halten und möchte möglichst auf
GTKmm verzichten.

Nun meine Fragen:
Ist es (auch) üblich das GTK+ Programme mit C++ programmiert werden oder greift man
dann auf jeden fall zu GTKmm?
Ich habe schon sehr oft gelesen, dass für die Anwendungsprogrammierung auf jeden Fall
eine Objektorientierte Sprache genommen werden sollte. Andererseits ist aber ein ganzer
Desktop in C geschrieben. Macht Anwendungsprogrammierung in C denn nun Sinn oder
nicht.

Die Informatiker unter euch werden mich für diese Fragen wohl am liebsten lüchen. Hier
bitte ich um Nachsicht mit einem Hobbyprogrammierer der leider sehr wenig Zeit für
sein Hobby hat. Das ist auch der Grund warum ich möglichst keine andere Sprache
lernen will.

Vielen Dank schon mal.

Gruß

Kabaal

Marc_BlackJack_Rintsch Team-Icon

Ehemalige
Avatar von Marc_BlackJack_Rintsch

Anmeldungsdatum:
16. Juni 2006

Beiträge: 4674

Wohnort: Berlin

Wenn C++ dann würde ich auf jeden Fall Gtkmm benutzen. Sonst sehe ich nicht so grosse Vorteile C++ zu verwenden, da man mit Gtk alleine am Ende ein Projekt hätte das in zwei Sprachen, C und C++, geschrieben wäre.

Wenn Dir Deine Zeit wichtig ist, solltest Du vielleicht doch lieber etwas Zeit in das Erlernen einer anderen Sprache investieren. C#, D, Java, Python, oder Ruby sind auch alle objektorientiert, aber etwas weniger komplex als C++ und alle haben automatische Speicherverwaltung.

Kabaal

(Themenstarter)

Anmeldungsdatum:
5. September 2005

Beiträge: 33

Ich möchte eigendlich bei C/C++ bleiben. Hatte mir mal C# und Python angeschaut und n paar
kleine Experimente damit gemacht. Diese Sprachen sparen sicherlich sehr viel Zeit. Aber ich
kommer aus der 16-bit-Rechner Zeit und habe damals Assembler programmeirt. Beim programmieren
hat man da um jeden CPU-Zyclus gekämpft. Warscheinlich habe ich desshalb eine Abneigung
gegenüber Laufzeitumgebungen. Außerdem komme ich mit C++ recht gut zurecht.

So wie ich die Sache sehe muss ich mich jetzt also zwischen C/GTK+ und C++/GTKmm entscheiden.
Es kann vorkommen das ich ein Programm, dass ich geschrieben habe nach ein oder zwei Jahren
erweitern/ verändern muss. Ich liebäugele eigendlich mit C/GTK+ aber wie sieht es denn dort
eigendlich mit der wartbarkeit aus?

Marc_BlackJack_Rintsch Team-Icon

Ehemalige
Avatar von Marc_BlackJack_Rintsch

Anmeldungsdatum:
16. Juni 2006

Beiträge: 4674

Wohnort: Berlin

Wie wartbar so ein Programm ist, hängt nicht unwesentlich davon ab, wie sauber es programmiert und wie gut es dokumentiert ist.

Das CPU-Zyklen-Zählen solltest Du Dir auf Desktoprechnern bei allgemeinen Aufgaben abgewöhnen. Bei GUIs warten die Rechner sowieso die allermeiste Zeit auf den lahmen Anwender und bei rechenintensiven Programmteilen kann man entweder auf den (JIT-)Compiler der jeweiligen Sprache vertrauen, oder ganz kritische Teile in C implementieren. Das ist aber eher selten nötig.

Noch ein Tipp zu Gtk: Falls die GUIs nicht zu dynamisch aufgebaut sind, lassen sie sich mit glade ganz gut erstellen, und dann per libglade benutzen. Das hilft schonmal ganz gut GUI und Programmlogik nicht allzusehr miteinander verschmelzen zu lassen.

Zum Dokumentieren ist doxygen recht brauchbar.

Kabaal

(Themenstarter)

Anmeldungsdatum:
5. September 2005

Beiträge: 33

Das CPU-Zyklen-Zählen solltest Du Dir auf Desktoprechnern bei allgemeinen Aufgaben abgewöhnen.

Ich glaube damit hast Du wohl recht. Den Satz musste mir nur mal irgendjemand um die Ohren haun.

Ich bin mittlerweile auf der Seite von GTKmm fündig geworden warum man GTKmm GTK+ vorziehen sollte (ich meine
als C++ Programmierer)
http://www.gtkmm.org/docs/gtkmm-2.4/docs/FAQ/html/index.html#id2496002

Werd mich wohl erst mal mit GTKmm beschäftigen. Allerdings kleinere Tools auch mal mit Python/Glade probieren.

Vielen Dank erst mal. Es sieht vielleicht nicht so aus aber Du hast mir sehr geholfen.

Gruß.

Kabaal

Antworten |