Odpověď je jednoduchá: Libovolnou obecnou distribuci. Pro programátory jsou vhodné všechny běžně používané distribuce. Distribucí linuxu existuje velké množství. Každá se snaží zístat uživatele něčím jiným. Některé nabízí uživatelsky přívětivý systém pro správu systému, jiné spolehlivost potřebnou pro provozování síťových serverů a některé jsou třeba specializované na práci s multimédii. Distribuce specializované pro nějakou konkrétní úlohu, jako jsou třeba multimédia nebo herní konzole se však pro běžné programování příliš nehodí.
Pokud s Linuxem teprve začínáte, doporučuji nejprve vyzkoušet tzv. live-distribuce. To jsou distribuce Linuxu, které se vejdou na jedno bootovatelné CD nebo DVD, nic neinstalují a všechny programy běží přímo z média. Start programů je samozřejmě pomalejší (záleží na rychlosti CD/DVD mechaniky), ale na prohlédnutí a vyzkoušení to stačí. Většina rozšířených distribucí takové médium nabízí. Zejména je dobré si takto před vlastní instalací ověřit, zda váš počítač neobsahuje nějaký exotický hardware, pro nějž nejsou dostupné Linuxové ovladače.
Ačkoli na Linuxu existuje nespočet pokusů o vývojová prostředí, která jsou více či méně propracovaná, žádné z nich se nikdy nijak masově neuchytilo. Důvodem může být unixová filozofie - v jednoduchosti je síla, nebo také - dělat věci jednoduché, ale maximálně kvalitní. Linux obsahuje množství jednoduchých a mocných nástrojů, jejichž kombinováním je možné dosáhnout takové efektivity práce, jakou žádné složité prostředí poskytnout nemůže. Dalo by se říct, že v Linuxu programátor žádné rozsáhlé vývojové prostředí nepotřebuje (ne, že by zde taková neexistovala). Všechny potřebné nástroje jsou (po instalaci potřebných balíčků) integrovány přímo do prostřední operačního systému.
Pokud chcete pracovat v prostředí Linuxu, vystačíte s textovým editorem podle vlastního vkusu, textovou konzolí (také podle vlastního vkusu) ze které budete spouštět překladač a s debuggerem (podle vlastního vkusu, jak jinak). Pro inspiraci nabízím návod pro psaní projektů v Linuxu, který obsahuje ukázky práce s několika vybranými programy, se kterými byste mohli začít.
Dobrý editor je pro programátora tím nejdůležitějším nástrojem. Měl by umět zvýrazňovat syntaxi a hlavně spouštět další nástroje. Je dobré, pokud je možné jeho chování rozšířit pomocí vlastních skriptů.
Kate - Jeden z nejlepších editorů pro prostředí KDE (viz ukázky). Dobře se ovládá, je konfigurovatelný a je možné jej rozšířit pomocí pluginů. Samozřejmostí je podpora zvýrazňování syntaxe, práce s více soubory i kontrola pravopisu. Obsahuje zabudovaný terminál, takže se v něm dobře spouštějí další unixové nástroje. Je to docela dobrý kompromis mezi sílou Linuxu a okenním ovládáním. Je to vhodný editor pro začátečníky i pokročilé, poměrně bezbolestný, pokud jste zvyklí na editory z prostředí Windows. Je rozšiřitelný pomocí přídavných modulů, využívá propracované nástroje KDE pro vyhledávání a textové náhrady, který umožňuje použití regulárních výrazů, zvládá šablony dokumentů i doplňování kódu, dokonce umožňuje přepínat mezi běžným editačním módem a módem Vimu.
Editor Kate má pro začátečníky jednoduché intuitivní ovládání vycházející z prostředí KDE. S tím jak budete postupně pronikat do možností Linuxu a KDE, budete stále více oceňovat symbiotickou provázanost editoru s prostředím KDE.
Gedit - je výchozím textovým editorem v prostředí GNOME. Zastává zde podobnou úlohu jako Kate v KDE a má podobné schopnosti.
Vim, GVim - jeho historie, respektive historie jeho předka Vi, sahá až někde do roku 1976. Přesto má dodnes velmi mnoho příznivců. Pro začátečníky je možná zpočátku trochu nestravitelný, ale kdo se jej rozhodne používat, časem ocení jeho sílu (na ukázkách to bohužel není příliš vidět, protože těžiště jeho předností leží v konfiguračním souboru a v ovládání). Čistý Vim funguje přímo v terminálu, jeho verze GVim funguje v grafickém prostředí. Je určen pro ovládání všemi deseti prsty, při psaní není potřeba sundat ruce z klávesnice. Ovládání tohoto programu je na první pohled složité, ale má hlubokou vnitřní strukturu. Je velmi konfigurovatelný a rozšiřitelný. Na domovské stránce jsou odkazy na množství hotových utilit. Pro naučení základního ovládání si rezervujte tak jeden den. Rozhodně to nebude ztracený čas.
Vim je dalším ukázkovým příkladem symbiózy editoru a okolního prostředí -- v tomto případě příkazového unixového terminálu.
Návod k ovládání Vimu od Pavla Satrapy.
Jak si přizpůsobit Vim - článek na Root.cz (+ odkazy na další články)
Editor Vim prakticky - článek na AbcLinuxu
vimrc.tar.gz - zde nabízím svoje konfigurační soubory (obsahují šablony souborů a šablony kódu)
Nedit - Dobře konfigurovatelný editor (lépe než kate - viz ukázky). Je velmi rychlý a nenáročný na zdroje. Obsahuje vlastní jazyk pro psaní maker, což mu dává velkou sílu. Umožňuje také spouštět jiné programy (např. make). Psaní v něm je velice intuitivní (v podstatě jako v editorech, na které jste zvyklí z Windows). Na jeho domovské stránce najdete nepřeberné množství hotových maker.
Emacs - Je zhruba stejně rozšířený jako Vim. Je velmi mocný, ale na můj vkus příliš složitý (takový OS sám pro sebe). Ovšem uznávám, že pokud někdo překoná počáteční odpor, získá pravděpodobně nejmocnější unixový nástroj vůbec.
Kvalitní debugger je pro programátora velice důležitým nástrojem. Neměli byste se na něj ovšem vždy spoléhat. Existují programátorské problémy, které sebelepším debuggerem neodhalíte. Lepší je programovat s rozmyslem.
Papír a tužka, nebo tabule a fix - Nestyďte se je používat! Zvláště když pracujete se složitějšími datovými strukturami a s ukazateli, jsou papír a tužka těmi nejlepšími pomůckami. (To platí pro všechny programovací jazyky bez výjimky.)
DDD - Data Display Debugger - Asi nejlepší debugger v Linuxu (viz ukázky a návod). Je to vlastně grafická nadstavba nad GDB (a jiné debuggery). Kromě běžných funkcí, jako je krokování, zastavení na zarážce, sledování hodnot proměnných aj., dokáže názorně graficky zobrazit datové struktury a provádět nad kódem statistické analýzy. Ostatní debuggery, které znám, mu nesahají ani po kotníky.
GDB - The GNU Project Debugger - Na Linuxu naprostá klasika, základ. Jde o debugger ovládaný z příkazové řádky, takže není nejvhodnější pro začátečníky. O jeho síle svědčí to, že většina grafických debuggerů je postavena jako nadstavba nad tímto programem.
Na Linuxu existuje bezpočet nástrojů, které ulehčují programátorovi život. Není v mých silách je zde všechny vyjmenovat. Následující nástroje jsou podle mého názoru v počátcích nejužitečnější:
GNU Indent - Tento program slouží pro přehledné formátování zdrojového kódu. Funguje jednoduše z příkazového řádku - zdrojový soubor se mu předává jako parametr příkazového řádku a program jej vypíše na výstup zformátovaný podle zásad nastavených v konfiguračním souboru. Velmi užitečné!
.indent.pro - Zde nabízím svůj konfigurační soubor. Zkopírujte si jej do svého domovského adresáře.
Doxygen - Program pro generování programátorské dokumentace z komentářů ve vašich zdrojových souborech. Funguje podobně jako program Javadoc v Javě (dokonce je s ním kompatibilní). Umí vygenerovat dokumentaci ve formátech HTML, LaTeX, RTF, PS, PDF, ale také jako manuálové stránky. Pokud to myslíte vážně s vytvářením větších projektů, měli byste se s tímto programem seznámit. Pokud se chcete podívat, jak vypadá projekt používající doxygen, podívejte se na projekt C-Quest.
man, info - Programy pro čtení manuálových a info stránek. Základní zdroj důležitých informací v systému Linux.
CVS - Concurrent Version System - Systém pro správu verzí. Bez podobného systému se neobejde správa žádného většího projektu. Je užitečné jej používat i na menší projekty - uchovává totiž všechny změny v souboru a umožňuje se vrátit zpět. Když zjistíte, že vinou posledních úprav váš projekt přestal fungovat, není problém se vrátit k funkční verzi, kterou jste vytvořili před týdnem.
Správa projektů pomocí CVS - návod k CVS od M. Ponkráce.
CVS pro každého - seriál na Root.cz
Cervisia - pokud používáte KDE, zkuste tento program. Umožňuje ovládat CVS pomocí grafického rozhraní, takže si nemusíte pamatovat přesnou syntaxi příkazů (ale musíte chápat principy systému CVS).
FSF/UNESCO Free Software Directory - kolekce programů z projektu GNU, určená pro vývoj softwaru.
Jak bylo řečeno výše, na Linuxu existuje množství vývojových prostředí, ale nijak masově se nepoužívají. Uplatnění nacházejí většinou při tvorbě okenních aplikací pro některé z okenních prostředí (KDE, Gnome, ...). Dejte na mou radu a nepoužívejte je, dokud nebudete umět dobře programovat! Programování v takových prostředích může nezkušeného "zavést na scestí" a vytvořit nežádoucí programátorské zlozvyky.
Code::Blocks je rozumně jednoduché IDE pro vývoj v jazycích C a C++. Lze jej rozšířit pomocí pluginů (a rozumí i pluginům z Dev-C++). Jeho výhodou je, že je multiplatformní a funguje a vypadá prakticky stejně v Linuxu i ve Windows. Obsahuje plnohodnotný debugger, zvýrazňování syntaxe, šablony pro generování elementárních kousků kódu a mnoho dalšího. Pro toto prostředí nabízím stručný návod k používání. Přesto radím, abyste se nejprve naučili ovládat překladač z příkazové řádky.
Prostředí ponechává programátorovi velkou volnost při nastavení překladače - buďto si můžete sami napsat svůj Makefile nebo můžete nechat vše na samotném prostředí. V obou případech ovšem musíte mít určité základní znalosti o programu make a o nastavování překladače.
Eclipse je prostředí napsané v Javě a je primárně určeno pro vývoj v Javě. Je velmi dobře rozšiřitelné, takže byl vytvořen plugin CDT, tedy C, C++ Development Tools. V současné době je to pro vývoj programů v jazyce C poměrně dobře použitelné. Nevýhodou tohoto prostředí mohou být nároky na paměť počítače, které jsou srovnatelné s Delphi. Na většině dnešních počítačů (od 256MB RAM) ovšem běží zcela bez problémů.
Největší výhodou Eclipse je to, že je díky Javě multiplatformní - tedy funguje stejně dobře na Linuxu i ve Windows. Stejné je to i s pluginem CDT. Mezi další přednosti patří skvělý debugger a podpora CVS. Pokud programujete zároveň v Javě a v C nebo C++, určitě toto prostředí oceníte.
Prostředí ponechává programátorovi velkou volnost při nastavení překladače - buďto si můžete sami napsat svůj Makefile nebo si jej můžete nechat poloautomaticky vygenerovat. V obou případech ovšem musíte mít určité základní znalosti o programu make a o nastavování překladače.
KDevelop - Vývojové prostředí pro KDE. Umí toho hodně, ale je potřeba programování dobře rozumět, jinak vám bude dělat problémy pouhé ovládání.
Anjuta - Totéž co KDevelop, ale pro prostředí Gnome.
Autor: David Martinek. Poslední modifikace: 30. September 2012. Pokud znáte nějaký volně šiřitelný software, o kterém si myslíte, že sem patří nebo pokud v tomto dokumentu narazíte na chybu, dejte mi prosím vědět.
Od 15. července 2004 sem bylo kliknuto už krát.