Should I Move from GTK (C) to gtkmm (C++)? Future of gtkmm?

Hello,

I am currently developing a Linux application (in C++) using GTK (C) and have been evaluating gtkmm (C++). Based on my observations, gtkmm offers several advantages, such as:

  • Modern C++ features (RAII, smart pointers, type safety).
  • Object-oriented API, making development more intuitive.
  • Better signal handling with sigc::signal instead of function pointers.
  • Automatic memory management, reducing manual cleanup efforts.

However, I also noticed some concerns:

  • Feature Lag – gtkmm updates tend to be behind GTK.
  • Less community support compared to GTK.
  • Increased compile time due to C++ abstractions.
  • Larger binary size compared to pure C GTK applications.

My Questions:

  1. Given these pros and cons, should I move to gtkmm from GTK for a new application?
  2. What is the future of gtkmm? Will it continue to be actively maintained and developed in parallel with GTK?
  3. Will gtkmm remain as significant as GTK in the long run, or is it expected to become less relevant?

I would love to hear insights on this. Thanks in advance!

The only way a language binding can remain relevant is for people to contribute to it.

The only other option is to switch to another language binding that has a more active maintenance model.

1 Like

My prediction is that gtkmm will not be very relevant unless there’s a surge of renewed interest from the community. You could be a part of that. gtkmm and all of its underlying C++ bindings are almost entirely maintained by one person, and he’s wanted to hand off the project for a long time.

I’ve not seen many apps that use gtkmm. Nickvision apps like Parabolic are in C++ but don’t use gtkmm; they just use a custom C++ template that wraps the C API manually.

I’m pretty sure I heard someone else wanted to make a new set of C++ bindings but I don’t remember who or how that turned out.

1 Like

Claire is right. I’ve done more than 90% of the maintenance for several years.
I announced 4 years ago
that I wanted to quit as a maintainer. Still I will continue for a while.
What is sure is that when gtk5 is created, I will not contribute to gtkmm5.
There might never be a gtkmm5.

Considering how few issues and merge requests are created, I assume that gtkmm
is not much used. Inkscape is one user.

You can also look at cppgir.

3 Likes