Vývoj
Do samotného vývoje aplikací se může zapojit každý, kdo se cítí být (kvalitním) vývojářem, tedy umí programovat či jinak rozvíjet technickou stránku programů.
Potřebné vstupní znalosti
Aby se člověk mohl zapojit do vývoje GNOME, jsou potřeba znalosti na úrovni. Samozřejmě, i programátorský začátečník si může zkusit vytvořit vlastní aplikaci (koneckonců, každý nějak začínal), ale těžko může počítat s tím, že se jeho kód dostane do toho oficiálního.
Základními znalostmi jsou samozřejmě algoritmizace a datové struktury – to je předpoklad, který zde nebudeme dále rozebírat. Zbývá si tedy vybrat jazyk, ve kterém budou konkrétní algoritmy zapisovány.
Primárním jazykem GNOME je jazyk C. V něm jsou napsány prakticky všechny knihovny a většina aplikací.
Kdo ale nezná nebo nepoužívá jazyk C, nemusí se vůbec strachovat, že by se nemohl do vývoje zapojit. Na knihovny v jazyce C totiž existují vazby (anglicky bindings) do jiných jazyků, takže lze použít například Python (Python je sekundárním jazykem GNOME, jsou v něm často psány přídavné moduly aplikací), dále třeba Ruby, C++, Javu, Perl… Podporována je velká spousta jazyků; jejich výpis je zde.
Některé jazyky jsou podporovány lépe, jiné hůře, přičemž nejlépe jsou podporovány C a Python – žádný vývojář neprohloupí, bude-li je znát.
Co studovat
GNOME je kompletní vývojářská platforma – obsahuje tedy velké množství tzv. sdíleného kódu. Sdílený kód je zdrojový kód, který je společný pro více aplikací – vývojáři nemusí vyvíjet vlastní. Má to několik výhod: vývojáři si ušetří práci (proč znova vymýšlet kolo, když už jednou bylo vymyšleno), nevznikají duplicity (čímž se snižuje počet možných chyb) a navíc to uživatelům šetří operační paměť.
Sdílené knihovny je nutné znát a využívat – abychom mohli profitovat z výhod popsaných výše.
Téměř veškerá dokumentace (nejen o sdílených knihovnách) je shromážděna v GNOME Documentation Library, sekci Developers. Většina textů je v angličtině, což by ale pro vývojáře neměl být problém.
Jak se zapojit
Každý se může zapojit dle svých možností. Ideální je vybrat si nějaký program, a ten pomáhat rozvíjet. Je to nejvýhodnější model, protože se tak vývojář bude soustředit na jeden jediný program a jeho specifika. V takovém případě stačí kontaktovat vývojářský tým konkrétního programu, který vám sdělí, na čem je potřeba pracovat (obvykle vás mj. odkáže na GNOME Bugzillu). Kromě toho se vás také může ujmout v začátcích.
Vynikající možností, jak se zapojit do vývoje (a ještě si něco vydělat), je účast na Google Summer of Code (GSoC). Google Summer of Code je projekt firmy Google pro studenty, který má za cíl rozvíjet svobodný software.
GSoC probíhá tak, že různé organizace (například GNOME) nominují projekty, ze kterých firma Google vybere ty nejzajímavější. Na těch je potom možné (po domluvě s mentorem projektu – jakýmsi dohledem nad prací studenta) začít pracovat. Více informací lze najít na oficiálních stránkách.
Nástroje
Vývojářské nástroje samozřejmě nejsou pevně dané; každý může používat to, s čím umí pracovat a co mu nejvíce vyhovuje. Na následujících řádích jsou vypsány pouze doporučené technologie.
Nejvhodnějším integrovaným vývojovým prostředím je aplikace Anjuta. Jedná se o opravdu vyspělý nástroj, který poskytuje spoustu funkcí přímo pro vývoj GNOME.
Jinou zajímavou aplikací je Glade. Ta je určrna k návrhu uživatelských rozhraní. Lze ji použít samostatně, nebo integrovanou v Anjutě.
Další užitečné nástroje jsou vypsány v již zmíněné GNOME Documentation Library.