Before starting an application, if we do not target a particular system, we should choose a graphical user interface, and a wide choice is offered to the programmer.
But above all, for a lambda programmer, unrelated to a particular environment, a fact must be taken into consideration: the future of programming is not Windows (or any other system), it is in mobile devices and Web applications running on a server, so should we use a framework able to run on a server and a mobile.
Classical user interface on the desktop operate on the WIMP model. It is the acronym of Window, Icon, Menu, Pointing device. The principle was developed from 1973 by Xerox and popularized by Apple with the Macintosh and then by Microsoft from Windows 95.
This model is challenged by touch screens. In the case of mobiles, we are facing a considerable fragmentation of environments and graphical interfaces, as discussed in the article Programming a mobile phone, which we can overcome only with HTML 5.
List of toolkits and platforms
Toolkits contain predefined components used directly to create the interface of an application.
There APIs are interfaces to the systems, providing primitives used to create a library of components.
We see that when a framework offers the possibility of programming for mobile phones, one enters the circle of specializations, each platform running a system for a single brand.
Otherwise, when programming for the desktop but not specifically for Windows, Qt seems to be the most comprehensive framework while being portable. The license is LGPL.
Remain still the possibility to write his own components with OpenGL or WebKit if you need a very limited interface.