After using KDE, Gnome and other Windows Managers. As well, as usings Windows for many many years (far too many for my preference.) As well, programming in MFC, GTK and a bunch of other toolkits to handle GUIs. I came to a realization of what the industry should be doing, but isn't.
Right now the "look and feel" of any program is commonly left up to the program itself to control. Thus, you end up with operating systems full of programs that each individually look good, but as a whole look absolutely horrid (like a hodge-podge of randomness). So, I went to thinking about this, and wondered "what can be done to make any program you code not only look good under any windows manager, but also simply convertable between operating systems." Then it hit me, we've been doing this for years, but for some reason no one ever has implemented it.
** Incorporate the standard GUI into the programming language **
So, for example, if I code in C++, all of the standard GUI parts (window, button, scrollbar, etc) are incorporated into it. Thus, when the program is compiled under any operating system, it will naturally absorb the "look and feel" of the operating system. Thus, there is no need to reprogram for each OS, and the look and feel will naturally come out of the code you program. Sure, I acknowledge that you won't be able to do all of the useless thing Microsoft adds to their programs that waste time and processing power, but overall a operating system will beging to look like a unified entity.
Now, is this a difficult thing to do? I don't think it is. Almost every gui toolkit I have used has roughly the same structures. All that is needed is for these structures to be standardized. In Linux, the opportunity for this is great. Since you can standardize the structures, and then code all of the Windows Managers to use those structures. Thus, there isn't even a need to recompile the program under different WMs. In Windows, on the other hand, this isn't as easy. This require Microsoft to be willing to give up a small portion of their "proprietary" property, to allow for an advancement of the common good.
A menu is a menu, a button is a button. Sure, some OSs and Windows Managers can allow for even more fancy GUI objects, but as long as it is standardized and understood what the GUI objects are, it becomes amazingly easy for people to create programs that look and feel right in any environment they are used.
We need this standard. As soon as we have it, then GUIs will finally be able to advance miles beyond where they are currently. Standardize GUI programming, and make the look and feel an OS dependent function. Get rid of the "skins" in programs, and let the OS handle what skin the person wants. Thus, the person can have their look and feel exactly as they wish.
Standardize the GUI.