As far as I can tell, all GUI toolkits are basically the same.
- They all have some sort of base Widget that everything else that can be drawn inherits from.
- They all have basically the same widgets - Window, Scrollbar, Button, Dialog, FileSelector, DrawingArea, Menu, Container, etc.
- They all use event driven architecture with a "main loop" that responds to user events through application registered callbacks.
- Most have some sort of "GUI-builder" program (ala Glade for GTK+).
As far as I can tell, most language bindings to each individual toolkit are more or less a literal translation of the API. This makes it seem to me like any programming language would be just about as productive as any other.
Some toolkits bill themselves as not just a GUI toolkit, but an "application framework", for example wxWidgets. They add on APIs for other stuff like networking, data structures, logging, threading, and database access. Considering that most of this other stuff usually has better libraries to access the functionality you need, it seems like it wouldn't be particularly important in deciding between toolkits. In fact, if you know you already have this stuff covered, it would be beneficial to choose a toolkit that is simple and know it is just a GUI toolkit, like GTK+ or FLTK.
Are there GUI libraries out there that are radically different from this mold?
As someone trying to break into GUI programming, how would you suggest to choose between a GUI toolkit - or does it really even matter which one? What programming language tends to be easiest for developing GUI applications - or should I just stick with what I know?