Mislis li ti na aplikacija nezavisne od KDE-a i Gnoma ili nezavisne od QT-a i GTK-a?
Prvo si trebao kazati u kom jeziku mislis da pises tu stvar. Neka, recimo, bude c++. Vrlo verovatno da ces koristiti njega.

Ovako ti stoje stvari sto se tice programiranja korisnickog interfejsa:
Mozes da koristis neku od biblioteka sa widgetima. Na primer Qt, GTK2-- i sl.
Prednosti: Imas testirane i dobre kompnenet koje se uklapaju u ostatak korisnickog interfejsa. Pisanje programa, bar onog dela koji se tice UI-a ce da se svede na lepljenje komponenti na prozor uz pomoc nekog RADa, tj 'interace designera' ako tako vise volis da zoves tu stvar. Npr. Qt Designer (KDevelop Designer), Glade, FLUID ...
Mana ovog pristupa se ogleda u sledecem: Ima nenormalno mnogo distribucija n akojima program treba da proradi, i na svakoj od njih treba da postoji biblioteka koju si ti koristio. Cesto tacno odredjena verzija te biblioteke. Takodje cesto treba da bude na nekom 'posebnom mestu', npr u /usr/lib/nesto. Znaci ako korisnik nije instalirao odgovarajuci paket, ili ga distribucija ne isporucuje, program koji si dimanicki linkovao moze da ne proradi. Ako ga staticki linkujes bice previse spor i glomazan. U svakom slucaju ako koristis neke 'normalne' biblioteke, npr. GTK 2.6 ili Qt 3.x, vrlo verovatno je da ce ih biti na svim sistemima. simpaticno je recima koristiti FLTK. Njega bez problema mozes da linkujes staticki - mali je, ali zato ima samo najosnovnije komponente i prilicno je ruzan. Ako koristis wxWidgets, ewl ili nesto slicno, potrudi se da uz program distribuiras i komponente. Na dosta distibucija ih nema.
Drugi pristup je da direktno koristis protokol za X server. T.j. da na najnisem mogucem nivou komuniciras sa X-om. Ovo ce za rezultat imati najbrzi i najoptimizovaniji kod, a ako se potrudis aplikacija ce izgledati mnogo dobro. Ali... Najveci deo koda aplikacije ce biti korisnicki interfejs. Sve ces morati sam da testiras. U principu, ne verujem da ces ikada da koristis ovo. Pa zbog toka su godinama kukali na Unix, sve dok se nisu pojavile biblioteke sa widgetima. Previse je komplikovano.
Sto se tice KDEa i Gnoma, i jedan i drugi imaju svoje APIje. Koriscenjem ovih imaces kompletnu integraciju u KDE/Gnome, opet veliku olaksicu u pisanju koda - veliki deo je vec neko tamo napisao i ti samo pozivas funkcije. Ali ce na masini na kojoj se program izvrsava morati da bude instaliran KDE/Gnome - sta si vec koristio. To nije neki veliki zahtev, posto ih na vecini danasnjih sistema ima. Ako hoces kod nezavisan od ovid okruzenja, jednostavno nemoj da koristis ove APIje.