2011-10-15

Future considerations: Gtk+ 3 and Python 3 support

Currently for our Desktop UI, we use PyGTK and GTK+ 2. In recent years and months, GObject Introspection has become available and with it new, dynamic bindings to GObject-based libraries like Gtk. Also, for future releases, the GObject Introspection-based Python bindings will be the only ones available, so it's a good idea to be forward-thinking and trying to see how good we can support gPodder.

I've now started an experimental branch based on the "tres" branch to see how well we can support it today, the result is gPodder running in Gtk 3:


You can grab the (highly experimental and unsupported) code from the tres-gtk3 branch on Github. This also paves the way for a possible upgrade to Python 3 in the future, as PyGObject bindings are already available on Python 3 (I haven't done any elaborate experiments with it apart from some very basic tests, though). However, neither PyGObject support nor Python 3 support will land in the first release of "tres" for practical reasons, but rest assured that we'll make the switch when we think it's a good idea (i.e. when PyGObject bindings are a bit more stable and more widespread in distributions). We will probably also switch to the new bindings first and only after we've stabilized the codebase there, we can then move on to working on the Python 3 support.

Python 3 support is more complicated, though - because some UIs (e.g. the QML UI, which depends on the PySide bindings to Qt) are not yet compatible with Python 3, or lack support elsewhere (e.g. on MeeGo 1.2 Harmattan as found on the N950 or N9, only Python 2.6 is available, with no Python 3 in sight - at least not officially supported). Maybe that's something we can aim for in gPodder 4 then ;)

No comments:

Post a Comment

Comments are moderated. Not all comments will be published. Feel free to post replies on your own blog if your comment is not published here.