|
|
|
|
|
by Crinus
2538 days ago
|
|
> The way I see it is that a new toolkit like GTK or Qt is required in the target language. The way i See it is that a new toolkit like GTK or Qt is required in C so that it can interface with any language as to avoid unnecessary duplication between languages (it is much easier to convince people switch toolkit than switch programming languages), ensure no language-specific indirect dependencies (especially if it is to included in OSes like OpenBSD that are traditionally C oriented) and with a stable backwards compatible ABI to avoid wasting the time and effort of whoever maintains the bindings (no need to rewrite them every few years), whoever decides to learn the new API (no need to learn something new for doing the exact same thing as before, only now in a slightly different yet incompatible way) and perhaps hopefully become a "standard" API people can target on Linux without having to carry 29892482923TB of libraries for a trivial app since you cannot rely on anything outside of X11 being there (and if GNOME people have their way, you wont be able to rely on even that). And of course all that in a permissive license that leaves everyone happy. Now guess how likely all of this is going to happen. |
|
so, uh, what would you depend on ? at the bare minimum you would need, for a gui toolkit :
- dependencies to X11 (xcb) and wayland (and cocoa and win32)
- dependencies to xkb, etc.. for keyboard handling
- dependencies on ICU for unicode text handling
- dependencies on freetype, fontconfig, harfbuzz, pango, etc... for font rendering
- dependencies on GL to allow your users to have a GL viewport, and potentiall on a software implementation of GL on windows because yes, even in 2019 this is still a problem on some user's computers
- dependencies on cairo, skia, QPainter, or something like that to provide a canvas-like API
- dependencies on libinput because that's the modern way to get mouse input on linux
- you are going to want a library of useful datastructures that aren't provided in C -> dependency to GLib or something else
- dependencies on libpng,jpeg, etc.... because you want your users to be able to have images in their app
- dependencies on dbus to be able to provide desktop notifications, etc
and you aren't even starting to match all the useful functionalities of GTK & Qt