gtkmm

Η gtkmm είναι ένας συσκευαστής C++ για το GTK+, μια βιβλιοθήκη που χρησιμοποιείται για τη δημιουργία γραφικών διεπαφών χρήστη. Αδειοδοτείται χρησιμοποιώντας την άδεια LGPL, έτσι μπορείτε να αναπτύξετε ανοικτό λογισμικό, ελεύθερο λογισμικό, ή ακόμα εμπορικό μη ελεύθερο λογισμικό χρησιμοποιώντας τη gtkmm χωρίς την αγορά αδειών.

Η gtkmm ονομάστηκε αρχικά gtk--, επειδή το GTK+ είχε ήδη ένα + στο όνομά του. Όμως, επειδή το -- δεν ευρετηριοποιείται εύκολα από τις μηχανές αναζήτησης, το πακέτο γενικά έγινε gtkmm και εκεί κολλήσαμε.

1.2.1. Γιατί χρησιμοποιούμε τη gtkmm αντί για το GTK+;

Η gtkmm επιτρέπει τη συγγραφή κώδικα χρησιμοποιώντας κανονικές τεχνικές C++ όπως ενθυλάκωση, παραγωγή και πολυμορφισμό. Ως προγραμματιστής C++ θα καταλάβατε ήδη ότι αυτό οδηγεί σε σαφέστερο και καλύτερα οργανωμένο κώδικα.

Η gtkmm είναι περισσότερο ασφαλές στους τύπους, έτσι ο μεταγλωττιστής μπορεί να αναγνωρίσει σφάλματα που θα μπορούσαν να ανιχνευτούν μόνο κατά τον χρόνο εκτέλεσης, κατά τη χρήση της C. Αυτή η χρήση ειδικών τύπων κάνει επίσης το API σαφέστερο, επειδή μπορείτε να δείτε τι τύποι πρέπει να χρησιμοποιηθούν κοιτώντας απλά σε μια δήλωση μεθόδου.

Η κληρονομικότητα μπορεί να χρησιμοποιηθεί για παραγωγή νέων γραφικών συστατικών. Η παραγωγή νέων γραφικών συστατικών σε κώδικα GTK+ C είναι τόσο περίπλοκη και επιρρεπής σε σφάλματα που σχεδόν κανένας κωδικοποιητής C δεν το κάνει. Ως προγραμματιστής C++, ξέρετε ότι η παραγωγή είναι μια βασική αντικειμενοστραφής τεχνική.

Μπορούν να χρησιμοποιηθούν στιγμιότυπα μελών, απλοποιώντας τη διαχείριση μνήμης. Όλα τα γραφικά συστατικά GTK+ C αντιμετωπίζονται με τη χρήση δεικτών.Ως κωδικοποιητής C++, ξέρετε ότι οι δείκτες πρέπει να αποφεύγονται, όπου είναι δυνατό.

Η gtkmm εμπεριέχει λιγότερο κώδικα συγκρινόμενη με τη GTK+, που χρησιμοποιεί ονόματα συναρτήσεων με πρόθεμα και πολλές αποχρώσεις μακροεντολών.

1.2.2. Η gtkmm συγκρινόμενη με τη Qt

Η Qt του Trolltech είναι ο πλησιέστερος ανταγωνιστής με τη gtkmm, έτσι αξίζει συζήτηση.

Οι προγραμματιστές της gtkmm τείνουν να προτιμούν τη gtkmm από τη Qt επειδή η gtkmm κάνει πράγματα με έναν πιο C++ τρόπο. Η Qt προέρχεται από μια εποχή όταν η C++ και η τυπική βιβλιοθήκη δεν είχαν προτυποποιηθεί ή δεν υποστηριζόντουσαν καλά από μεταγλωττιστές. Συνεπώς, διπλοεγγράφει πολύ υλικό που είναι τώρα στην τυπική βιβλιοθήκη, όπως περιέκτες και πληροφορίες τύπων. Πιο σημαντικό, η Trolltech τροποποίησε τη γλώσσα C++ για να δώσει σήματα, έτσι ώστε οι κλάσεις Qt δεν μπορούν να χρησιμοποιηθούν εύκολα με μη Qt κλάσεις. Η gtkmm μπορούσε να χρησιμοποιήσει την τυπική C++ για να παράσχει σήματα χωρίς αλλαγή της γλώσσας C++. Δείτε τις συχνές ερωτήσεις για περισσότερο λεπτομερείς διαφορές.

1.2.3. Η gtkmm είναι ένας συσκευαστής

Η gtkmm δεν είναι ένα εγγενές πακέτο εργαλείων C++, αλλά ένας συσκευαστής ενός πακέτου εργαλείων C. Αυτή ο χωρισμός της διεπαφής και της υλοποίησης έχει πλεονεκτήματα. Οι προγραμματιστές της gtkmm διαθέτουν τον περισσότερο χρόνο τους συζητώντας πώς η gtkmm μπορεί να παρουσιάσει τη πιο σαφή API, χωρίς περίεργους συμβιβασμούς λόγω των ασαφών τεχνικών λεπτομερειών. Συνεισφέρουμε λίγο στον υποκείμενο κώδικα βάσης GTK+, αλλά το ίδιο κάνουν και οι κωδικογράφοι της C και της Perl και του Python, κλπ. Συνεπώς η GTK+ επωφελείται από μια πλατύτερη βάση χρήστη από τα ειδικά πακέτα εργαλείων γλώσσας - υπάρχουν περισσότερα άτομα για υλοποίηση, ανάπτυξη, έλεγχο και χρήση.