So we have GTK2, GTK3, Qt, EFL, wxWidgets... applications will have to choose which toolkit to use, and no matter which they choose, they will integrate well on a part of desktops and poorly on others.
I was thinking, why don't we have a library that would unify all these toolkits? A sort of meta-toolkit, a program library that would have a unified, stable, API that developers could depend on to stay stable and not deprecate things, and that library would then use whatever toolkit is used on the system as a back-end. It could have bindings to all the major languages, just like other toolkits, and it would have backends for all the major toolkits, then it could be configured by the distro to use the backend for the toolkit that the distro uses.
This would provide a great way for developers to create software that runs just as well on all desktops no matter what toolkits they use, and also provide a great upgrade path away from GTK2 for developers of GTK2 software. And developers wouldn't have to worry about changing APIs.
Seriously, I think someone should take on this project. I would do it myself if I were any good at coding and had the time...