What is KDE, GTK, GTK+, QT, and/or GNOME?
I'm new to Ubuntu (and Linux in general). Sometimes when looking at programs in the Ubuntu Software Center, I see things about the programs being 'for the GTK+ environment', or 'for GNOME', or a whole lot of other things. All I know is that I've got Ubuntu 12.04 LTS, and what I'm seeing through my monitor appears to be the controversial Unity interface.
What are these other things I see mentioned in the descriptions of programs (such as KDE, GTK, QT, GNOME, GNOME 'shell', etc.)? Are they Linux GUIs that are alternatives to Unity? Are they dependencies that I need to have?
I've spent the last several months getting used to Ubuntu in its present form (though I confess, I have played around with Compiz, which is fun as hell). Will these other things completely turn my world upside down if I use them?
GTK, GTK+, and Qt are GUI toolkits. These are libraries that developers use to design graphical interfaces, all running on top of the X Server. These are things that you need to install as dependencies. They're the Linux "equivalent" to Windows' GDI/GDI+. When an application uses any of these, it will always have a general "look and feel".
GNOME and KDE are Desktop Environments. GNOME primarily uses the GTK+ toolkit, while KDE primarily uses the Qt toolkit. There are applications designed for GNOME or KDE, such as a settings menu or a default music player, usually in the appropriate toolkit. These Desktop Environments have a set of utilities/window managers/design specification to create a more unified desktop. You can mix the two if you feel like it, but you may run into issues with colliding standards and applications (which you might occasionally run into on systems like Arch).
Unity uses many of the GNOME utilities (Nautilus, Rhythmbox, etc.), so Unity is more GNOME than KDE.
GTK+ is the "GIMP Toolkit" (http://en.wikipedia.org/wiki/GTK+) ; this refers to the widgets - the bits that make up GUI applications, like buttons, menus, drop lists, etc - and the underlying bits you can't see, like libraries for storing configuration.
Unity is a desktop environment - based on Gnome. GNOME is a desktop environment that uses GTK+ as its GUI toolkit. KDE is another desktop environment. It's more like Windows in general style and uses Qt as its GUI toolkit.
The good news is that Qt applications run just fine in Unity.
The medium news is that some applications written for KDE use quite a lot of the KDE desktop and pull in a lot of dependencies. While this won't break anything, it can consume a lot of system resources running chunks of KDE that you're not really using.
An application written on Qt is not necessarily the same as an app written for KDE, though. There are plenty of apps that use Qt for their GUI and don't use the KDE libraries.