t***@onepost.net
2013-09-28 08:03:38 UTC
Hello all. Like to share some thoughts.
You might know that I always try to release code that avoids deprecated elements of the latest non-development releases of glib and gtk/gdk. As gtk3 progresses, this policy is becoming increasingly problematic, and as from 3.6, practically impossible. Sooner or later (gtk4?), the deprecated elements will go completely, and we're stuck.
What to do?
* Ignore the problem, and assume gtk3 (or gtk2) will always be around ?
* Pressure gtk devs to fix at least some of their issues ?
* Encourage some team to 'do a cinnamon' on gtk3 ?
* Dumb-down emelFM2 so that it can cope with gtk4 ?
* Port emelFM2 to some other suitable library ?
* Something else ?
I have no firm views about which way to go. I'd welcome some discussion about this.
As I look into the newly-released gtk 3.10, I'm coming to agree with the opinion I've seen around the place, to the effect that libgtk3 is on its way to becoming libgnome3. Meaning not a reasonable level of support for independent applications.
In this latest episode, support for internal/stock icons goes. So, no more menu-items or buttons that include icons, just plain labels for those. No more entries with embedded stock icons. And so on. I look forward to DnD operations where we see the drag accompanied by a label instead of an icon! Or else long suffering theme maintainers will each need to add a bundle of extra icons, and someone needs to invent an API to map back and forth between icon name and corresponding label.
Another example this time is removal of the UI manager, which is used (though not by e2) to describe/define an application's UI layout. Of course! Why didn't we think of this before? What reasonable developer would want/need to design his/her own UI? :-)
In gtk 3.6 documentation, it was announced that what I'll call the 'display-locking API' is to go. Some such arrangement is needed because display-server interfaces (xlib, we're looking at you) hate concurrent usage. Maybe wayland etc will be better. Anyway, in future, all use of gtk functionality is supposed to be in the main thread of an application. IMHO, this pretty much means that any non-trivial application needs to be single-threaded. I'd certainly agree that the current API is not good for a shared library, and glib at its heart is a kludge for threads, but those issues could be fixed, instead of walking away. Even I could do it (trivial changes to gtk itself, but fundamental changes to glib's mainloop). Then again, maybe gnome3 applications are intended to be simple or a bit slugg
ish. :-)
I've seen some comment to the effect that efl is not thread-safe. I know even less about other available libraries. Maybe there's an opportunity here, to plug this gap.
BTW, all this is quite independent of the un-fixable bad behaviour seen when running on recent gtk3, which I still suspect is theme-related.
Regards
Tom
You might know that I always try to release code that avoids deprecated elements of the latest non-development releases of glib and gtk/gdk. As gtk3 progresses, this policy is becoming increasingly problematic, and as from 3.6, practically impossible. Sooner or later (gtk4?), the deprecated elements will go completely, and we're stuck.
What to do?
* Ignore the problem, and assume gtk3 (or gtk2) will always be around ?
* Pressure gtk devs to fix at least some of their issues ?
* Encourage some team to 'do a cinnamon' on gtk3 ?
* Dumb-down emelFM2 so that it can cope with gtk4 ?
* Port emelFM2 to some other suitable library ?
* Something else ?
I have no firm views about which way to go. I'd welcome some discussion about this.
As I look into the newly-released gtk 3.10, I'm coming to agree with the opinion I've seen around the place, to the effect that libgtk3 is on its way to becoming libgnome3. Meaning not a reasonable level of support for independent applications.
In this latest episode, support for internal/stock icons goes. So, no more menu-items or buttons that include icons, just plain labels for those. No more entries with embedded stock icons. And so on. I look forward to DnD operations where we see the drag accompanied by a label instead of an icon! Or else long suffering theme maintainers will each need to add a bundle of extra icons, and someone needs to invent an API to map back and forth between icon name and corresponding label.
Another example this time is removal of the UI manager, which is used (though not by e2) to describe/define an application's UI layout. Of course! Why didn't we think of this before? What reasonable developer would want/need to design his/her own UI? :-)
In gtk 3.6 documentation, it was announced that what I'll call the 'display-locking API' is to go. Some such arrangement is needed because display-server interfaces (xlib, we're looking at you) hate concurrent usage. Maybe wayland etc will be better. Anyway, in future, all use of gtk functionality is supposed to be in the main thread of an application. IMHO, this pretty much means that any non-trivial application needs to be single-threaded. I'd certainly agree that the current API is not good for a shared library, and glib at its heart is a kludge for threads, but those issues could be fixed, instead of walking away. Even I could do it (trivial changes to gtk itself, but fundamental changes to glib's mainloop). Then again, maybe gnome3 applications are intended to be simple or a bit slugg
ish. :-)
I've seen some comment to the effect that efl is not thread-safe. I know even less about other available libraries. Maybe there's an opportunity here, to plug this gap.
BTW, all this is quite independent of the un-fixable bad behaviour seen when running on recent gtk3, which I still suspect is theme-related.
Regards
Tom