What does the "+" in
GTK+ mean and what is its history?
I read through https://www.gtk.org/overview.php but did not see mention of the "+" origin or meaning.
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. It only takes a minute to sign up.Sign up to join this community
I emailed Peter Mattis (co-creator of GTK/GTK+) with this question and his reponse was:
GTK was the first version of the toolkit used in pre-1.0 versions of the GIMP. At some point, the architectural limitations were revealed and I rewrote and renamed it as GTK+. This too was used in pre-1.0 versions of the GIMP. I don't believe any project outside of the GIMP used GTK-(no-plus). Why a "+" instead of a version number? No reason other than whim.
2019.02.06 - Announcement - Project rename GTK+ to GTK.
tl;dr: GTK is GTK, not GTK+. The documentation has been updated, and the pkg-config file for the future 4.0 major release is now called "gtk4"
over the years, we had discussions about removing the "+" from the project name. The "plus" was added to "GTK" once it was moved out of the GIMP sources tree and the project gained utilities like GLib and the GTK type system, in order to distinguish it from the previous, in-tree version. Very few people are aware of this history, and it's kind of confusing from the perspective of both newcomers and even expert users; people join the wrong IRC channel, the URLs on wikis are fairly ugly, etc.
With the move to Git, years ago, we had to add a couple of hacks to allow for the "plus" to stay in the repository browsing UI; those hacks were dropped once we moved to GitLab. We discussed again during IRC meetings and hackfests whether to drop the "plus", and we finally decided to do so.
With the work in the master branch towards the 4.0 release, it's finally time to say goodbye to the "plus" in "GTK+".
The documentation is updated so that the project in named consistently.
The removal of the plus has a side effect on the name of the pkg-config file for GTK 4; additionally, since we don't break API across the same major version, having a fully qualified major.minor version in the pkg-config file is redundant. This means that the pkg-config file for GTK 4 is going to be called "gtk4".
Incidentally, the IRC channel on irc.gnome.org is now called "#gtk"; there's a re-direct in place, so if you join "#gtk+" you'll end up in the right place.
Thanks for moving this along! It's good to see the GTK name finally get less confusing and easier to talk about!
But to clarify the history, the "+" predates the point when GTK was moved out of the GIMP tree. Every single version of GTK with publicly released sources was called GTK+. As I understand it, Peter Mattis added the + to mark a change from a very early version that was structured more like Xt/Motif, to a version that had a fuller type system with inheritance.