Da geht auch darum, wie und warum welche Layer vorhanden sind/sein müssen.
Zitat von Anthony Walter übersetzt
Auszugsweise Antwort von ZelijkoHier ist nun das erste große Problem mit dem implementierten Gtk3-Widgetset. Irgendwie hat jemand entschieden, dass es eine nette Idee wäre, ein viertes Stück nur für Gtk3 hinzuzufügen. Dieses Stück versucht, sich zwischen 2 und 3 einzukeilen, indem es die bereits existierende API im flachen C-Stil aus Stück 3 als eine große Reihe von Pascal-Objekten neu erstellt, die die Gtk3-API als eine Reihe von Objekten neu deklarieren (siehe TGtk3Widget in der Datei gtk3widgets.pas). Jetzt haben wir eine vierte Schicht nur für Gtk3, die nicht nur mehr Komplexität hinzufügt, sondern auch eigenartige Verhaltensweisen einführt, die ändern, was jemand, der einen nativen Gtk3-Widget-Port schreibt, wissen muss, während er mit der Erstellung eines Steuerelements oder einer Komponente fortfährt.
Da gibt es auch Auffassungsunterschiede zwischen einem Universellen Interface und einer dünneren Variante.Ich habe GTK3-Skelett und grundlegende Steuerelemente + einige Winapi-Funktionen festgeschrieben (AFAIR, es war 2012 oder sogar 2013). Alles basiert auf der qt/qt5/carbon/cocoa-Philosophie, die bereits in LCL enthalten ist. Zu dieser Zeit habe ich gtk2 gewartet und es ist nicht so angenehm für den Betreuer (vielleicht für Sie als Programmierer Ihrer Apps, aber nicht für den Betreuer von Lazarus lcl-ws), also war meine Entscheidung, gtk3 in Pascal-Objekte zu kapseln, und wenn mich jemand darum bittet gtk4 einführen Ich werde es genauso machen. Wieso den ? Einfache Wartung.
Außerdem gab es nach dem Commit von gtk3 keine oder nur wenige Commiter für die gtk3 ws (ich konnte mit gtk3 ws wegen fehlender Freizeit nicht weitermachen).
Somit muss man die Diskussion im internationalen Forum und die Mailingliste betrachten um einen Überblick zu bekommen.