Quando iniziammo il progetto GNOME nel 1997, stavamo cercando di affrontare svariati difetti del mondo UNIX, in particolare nell'area degli UNIX liberi.
Lo scopo originale del progetto GNU era di creare un sistema operativo completamente libero, fornito di strumenti e applicazioni libere. Per anni programmatori hanno lavorato perchè questo potesse accadere. Il lavoro era semplice da organizzare: dato che l'obbiettivo era clonare UNIX, i programmatori GNU dovevano semplicemente scegliere un componente a cui erano interessati e implementarlo. Data la modularità di UNIX, si trattava di un buon approccio al problema.
Ma UNIX ha i suoi difetti. Il mercato UNIX era diviso tra i maggiori produttori, ciascuno dei quali aveva esteso, migliorato e corretto il proprio sistema operativo in modo diverso. A volte aggiungendo sottosistemi completamente nuovi. A volte incorporando tecnologia proprietaria di terze parti. A volte estendendo il kernel e le API delle librerie per fornire agli utenti del loro sistema operativo un set più ampio di funzionalità.
Questo venne fatto per aumentare il valore aggiunto delle loro versioni specifiche di UNIX, o per indirizzarsi verso un particolare settore di mercato. Le nuove tecnologie emergevano da sole, diventando parte dello UNIX principale, e da qui passava parecchio tempo prima che venissero adottate dai vari produttori.
Questa divisione nel mondo UNIX è stata disastrosa per l'ambiente desktop. Sebbe i produttori abbiano tentato di risolvere alcuni problemi standardizzando le API di sistema, e il sistema X Window libero sia stato un successo, non sono riusciti a creare un toolkit GUI standard e un ambiente desktop libero.
Agli inizi del 1997 UNIX mancava di una interfaccia utente open source con un look and feel uniforme. Mancavano anche applicazioni dekstop così come gli strumenti e i componenti necessari per costruire tali applicazioni. L'infrastruttura non c'era ancora.
Questo ritardo nella tecnologia fu disastroso per gli sviluppatori di applicazioni. Per esempio, UNIX non aveva una infrastruttura di stampa, per cui ogni applicazione doveva gestirla per conto proprio. La programmazione a componenti era comparsa su altri sistemi operativi ma non esisteva su UNIX.
Il progetto GNOME venne creato per risolvere questi problemi.
| Abbiamo creato uno standard libero per scrivere applicazioni grafiche uniformi per sistemi UNIX. Chiunque può utilizzare le nostre librerie e la nostra infrastruttura, senza dover pagare diritti o sottostare a vincoli dei produttori. |
| Le nostre librerie sono progettate per essere esportate in linguaggi di programmazione diversi dal C. Questo consente ai programmatori di scrivere applicazioni GNOME nel linguaggio migliore per ogni situazione. |
| Stiamo sviluppando una suite di applicazioni insieme alla nostra infrastruttura e all'ambiente desktop. Mentre sviluppiamo applicazioni effettive, identifichiamo i problemi reali degli standard UNIX esistenti e ne produciamo delle soluzioni. |