GTK+
GTK+ eli GIMP Toolkit on useissa käyttöjärjestelmissä toimiva graafinen käyttöliittymäkirjasto. Se on Qt:n ohella suosituimpia X-ikkunointijärjestelmälle kehitettyjä käyttöliittymäkirjastoja. GTK+ on ohjelmoitu C-kielellä ja lisensoitu LGPL-lisenssillä. Nykyään se on GNU-projektin osa.
Alun perin GTK+ kehitettiin GIMP-kuvankäsittelyohjelmaa varten. Nykyään GTK+ on käytössä useissa merkittävissä Unix/Linux-järjestelmien työpöytäympäristöissä. Esimerkiksi GNOME ja Xfce rakentuvat sen päälle. Myös kämmenmikrojen Maemo-kehitysalusta käyttää GTK+:aa. Se on käytössä joissakin suosituissa käyttöjärjestelmäriippumattomissa ohjelmissa kuten Pidginissä.
GTK+:n kehittivät alun perin Spencer Kimball, Peter Mattis ja Josh MacDonald vuonna 1997 GIMP-kuvankäsittelyohjelman käyttöön Unix-käyttöjärjestelmien (mm. Linuxin) X Window Systemissä. Aluksi projektin nimenä oli pelkästään GTK, mutta se muutettiin GTK+:ksi oliopohjaisten laajennosten myötä.
GIMPin edeltävät versiot olivat käyttäneet kaupallista Motif-kirjastoa, johon Mattis ei ollut tyytyväinen.
Vähitellen GTK+:a alkoivat käyttää myös useat muut ohjelmistot, mukaan lukien samana vuonna alkunsa saanut GNOME-työpöytäympäristö.
Ensimmäinen vakaa versio, GTK+ 1.0 julkaistiin huhtikuussa 1998. Se sisälsi GIMPin tarvitsemat peruskomponentit. Helmikuussa 1999 julkaistu 1.2-versio käsitti useita laajennuksia ja oli tarkoitettu pelkän GIMPin sijaan yleiseen käyttöön.
Seuraava versio, GTK+ 2.0 julkaistiin maaliskuussa 2002 yli kolmen vuoden kehitystyön jälkeen. Se sisälsi useita merkittäviä muutoksia ja rikkoi yhteensopivuuden aiempien versioiden kanssa. Uudistuksia olivat muun muassa tekstin renderöinnin siirtäminen Pango-kirjastolle, GObject-oliojärjestelmän eriyttäminen GLib-kirjastoon ja tuki Windows-alustalle.
Tämän jälkeen projektissa siirryttiin nopeampaan julkaisuaikatauluun ja yhteensopivuuden säilyttäviin aiemman päälle rakentaviin päivityksiin. Uusia versioita on julkaistu vaihtelevin väliajoin noin kerran vuodessa. Viimeinen 2.x-sarjan versio oli tammikuussa 2011 julkaistu 2.24, jonka jälkeen kaikki uusi kehitys kohdennettiin 3.x-sarjaan.
Pitkän vakaan kauden edetessä alkoi esiintyä keskustelua seuraavasta suuremmasta uudistuksesta, osittaisesta yhteensopivuuden rikkomisesta ja vanhentuneiden rajapintojen poistamisesta.
Luonnos GTK+ 3:n kehityssuunnitelmasta julkaistiin huhtikuussa 2009 ja lopullinen versio 3.0 julkaistiin helmikuussa 2011. Ohjelmointiteknisten parannusten ja refaktoroinnin lisäksi muutoksia 2.x-sarjaan verrattuna ovat muun muassa nykyaikaistettu syötelaitteiden tuki, uusi CSS:ään perustuva teemajärjestelmä ja yksinomaan Cairoon perustuva renderointi.
Jatkossa projektin suunnitelmissa on muun muassa asettelu- ja teemajärjestelmän laajentaminen sekä yhteensopivuuden kehittäminen Gnome 3:n kanssa.
GTK+ perustuu neljään projektin kehittämään kirjastoon:
GTK+ on kirjoitettu C-kielellä käyttäen GLibin GObject-oliojärjestelmää. Sitä on mahdollista käyttää useimmilla suosituilla ohjelmointikielillä kuten esimerkiksi C++, Java, C sharp ja Python. GTK+ on pääasiassa kohdennettu X Window Systemille, mutta se toimii myös Windowsissa ja tuki Mac OS:n Quartzille on kehitteillä.
Käyttöliittymän elementtien ulkoasua on GTK+:ssa mahdollista vaihdella erilaisilla "teemamoottoreilla" sekä niille tehdyillä teemoilla.
Seuraava C-kielinen ohjelma luo GTK+ 2:ta käyttäen ikkunan, joka sisältää tekstin "Hello, world!".
Esimerkkiohjelman voi kääntää GCC-kääntäjällä komennolla codice_1 ja suorittaa tämän jälkeen codice_2 -komennolla. Lopputulos näkyy oheisessa kuvassa.
GTK+:aa on käytetty pohjana monissa graafisissa ympäristöissä ja niiden ohjelmissa. Sitä käyttäviä työpöytäympäristöjä ovat muun muassa GNOME, Xfce ja ROX Desktop. Lisäksi se on käytössä esimerkiksi Nokian kämmentietokoneille suunnatussa Maemo-kehitysalustassa sekä OLPC-projektin Sugar-käyttöliittymässä.
Käytössä olevan työpöydän tai alustan ei kuitenkaan tarvitse perustua GTK+:aan, jotta sitä hyödyntäviä ohjelmia voisi käyttää; riittää, että järjestelmä sisältää tarvittavat kirjastotiedostot. Tästä syystä GTK+ onkin käytössä myös useissa monella käyttöjärjestelmällä toimivissa ohjelmissa. Yleisiä GTK+:aa käyttäviä ohjelmia ovat muun muassa Abiword, Mozilla Firefoxin Linux-versio, GIMP, Inkscape ja Pidgin.