A few first impressions of the new gtk.org website

I just looked at that page for a few minutes.

Looks really professional now, like some other commercial promotion sides created by a “marketing expert”.

First question, when I talk with the majority of non Linux Computer users (Windows/Mac) about GTK is, what GTK is (a Widget toolkit for creating …), if Android, Windows and MACOS is supported well with native look and what the relation of GTK and Gnome is.

These most queried and important topics are not too visible on that new page unfortunately.

And some remarks are questionable:

written in C but has been designed to support a wide range of languages

I read that statement in 2007 already somewhere, maybe in the Krause book. But is it really true? Gimp was created in the early 90, did the gimp creators really consider interfacing other languages beside C at that time? I would assume if they did then the internal working and memory management would be different today?

most trusted toolkit for developing Linux applications.

Is there a new, non toy application created in the last 10 years at all?

You may notice that Android is not mentioned anywhere, unlike Windows and macOS. The Windows page also links to a theme to make applications look like a Windows native one—within limits. If you have a link to a theme for macOS, feel free to open an issue with it.

Yes, it’s true.

GTK language bindings are as old as GTK itself—with the C++, Perl, and Python bindings appearing in early 1997 once the library was split off from GIMP.

The API has been constantly modified to ensure that it could be used by other languages—every variadic argument function paired with an array-based one; mechanisms to break reference cycles; consistent memory management policies—and GTK has had machine-readable descriptions of the API for 20 years, predating the modern gobject-introspection parser.

You’d assume wrong. The main point of contention is typically floating references as a C convenience API, but the library works well enough without them, and language bindings have had policies in place to deal with them for the better part of two decades, now.

Are you able to have a conversation without insulting people, or are you really trying to do that?

Going around declaring applications “toys” does not do anything to make me want to answer your questions, going forward in the future. What you consider a “toy” is usually made by people giving away the result of their efforts for free; it doesn’t matter if it doesn’t get used to make a million dollars or just scratch an itch. Incidentally, the same applies to GTK and GNOME.

Remember that Discourse is under the GNOME code of conduct next time.

1 Like

You may notice that Android is not mentioned anywhere,

Yes, but it would be more sincere to say that Android is not supported at all at a prominent place. When people ask about GTK and them is told that there is no Android support, then unfortunately they are repelled in these days often.

GTK language bindings are as old as GTK itself

That is interesting. I had always the feeling that the fact that GTK allocates the memory for the Widgets itself makes languages bindings difficult, as we generally need a separate proxy object which memory is handled by the other language. Would it not be easier when the other language would allocate all memory, in one larger block, where a part is used from GTK? What always confused me, and which is the reason that I thought that bindings are not high priority from the beginning is that GTKMM needs such a large effort to bind to GTK, including a set of custom libraries.

Of course the gobject-introspection based bindings works not bad, took me about 1300 hours to create the Nim Bindings, but now most seems to work well, even with the new destructor based deterministic memory management of Nim.

Are you able to have a conversation without insulting people, or are you really trying to do that?

You may have missed the question mark at the end of the sentence? Well I do a Google search for new GTK apps at least once a year, and have really found nearly nothing in the last 10 years. OK, there is the EDA tools Horizon, written in GTKmm. And maybe Gnome Builder – I am not sure if that one is new, from my understanding it was funded somehow, and indeed it may be the most professional GTK product. And there is Inkscape, released in 2003.

What I call toy apps is something like my Nim Editor or my Chess game, see https://github.com/StefanSalewski/NEd and https://github.com/StefanSalewski/nim-chess4.

And it is a question still, I would love so see some new GTK3 apps created in maybe the last 5 years. Because that would be a good resource for learning, and because I was asked about new GTK projects myself a few times.

A Gtk app created 10 years ago, doesn’t mean it has never been updated or is not useful for learning. All those “10 years ago” apps are updated to the latest of Gtk and other GI modules. Yes I get what you are asking, you want a simple app that can be used to learn and understand, so you may have a look at small code-base applications like GNOME Tweaks. Otherwise, you could go with the documentation and guidelines available, if you still find them confusing, we are here to help you ^^

If you’re looking for a list, you can start at GitLab’s GNOME Group, but if you’re looking for someone to convince you I doubt anyone’s too worried about that.

It’s also worth pointing out that Gtk is LGPL, so not all software written with it is open source and available for public viewing.

Yes, I have already visited that resource in the past. And Github, and this forum and before the gtk mailing list, and of course Google.

Yes of course not all GTK apps are available for public, some people or small companies use plain tools internally.

The day before yesterday I found indeed a new App which just made it to version 1.0, it is a internet radio player. Was mentioned in the gnome blog, the place where people generally talk about last lunch and post all their smartphone pictures. :slight_smile:

I can not remember the name of that radio app currently, and do not want to visit that blog again. But that app seems to be really nice, and it is written in Rust. Maybe next winter I will try to install it.

It is interesting that there is support by the Rust team for GTK, maybe they have like Nim not managed to create really good Qt support? People generally ask for Qt, and some languages like Python, Go and Crystal advertise good Qt support, so that question may be justified. But I guess it would be a really large effort.