Note: this page is under construction.
GNOME, KDE, LXDE, XFCE, Etoile, Enlightenment
Tk, Motif, GNUstep, Qt, GTK, GTK+, Enlightenment
Each of these desktops uses a different widget toolkit. If two desktops use the same widget toolkit, they may differ in the goals they set and in the means to add your code into the project, or their userbase.
This may be good for engaging many people into using your program. One good way to do this is a web app.
Once you have many users, it is better to dedicate some effort into writing the program interface for each of the desktops people use, they will feel easier this way! It would be more consistent with the look and feel of other programs on these peoples' desktops.
As an example, please see how Quassel does this.
See previous question. Ideally, yes. If you have a few users, they may help you do this. :-) Start by splitting the backend and the frontend of your program into different directories.
Some programs provide a version 'for GNOME', for example, SMUXI. This is a good thing and this specification makes things much more clear for everyone.
To leave a comment or propose a change, please contact the authors of this site at ##linux-desktop live chat at freenode. Thank you!