Co očekáváme?
Programování má mnoho možností a záleží na nás, co od programovacího jazyka očekáváme. Dnešní článek je zaměřen na jazyky skriptovací. Ty zpravidla byly vhodné na zpracování textu, pro psaní systémových skriptů, tvorbu webů a podobně, doba však pokročila a s dnešními skriptovacími jazyky již můžeme plnohodnotně psát i GUI, tedy grafické uživatelské rozhraní, lidově řečeno „okýnka”, stejně dobře jako větší programy a aplikace.
Jaký je rozdíl mezi skriptovacími a kompilovanými jazyky?
Kromě jazyků skriptovacích existují ještě evolučně původnější jazyky kompilované. Mezi ně patří například assembler, C nebo Fortran. Kdežto skript slouží jak jako zdrojový kód, který editujeme, tak jako vlastní program, u kompilovaných jazyků musíme zdrojový kód zkompilovat, čímž vznikne binárka, což je vlastní výkonný program.
Skriptovací jazyky jsou obecně vysokoúrovňové jazyky s velkou dávkou abstrakce, díky níž jsou mnohem intuitivnější a zároveň úspornější ve vyjadřování. Vývoj v nich je mnohem rychlejší, ale jsou zase pomalejší než jazyky kompilované. Velmi dobře se hodí jak na vlastní programování, tak třeba také na prototypování. Až na některé shelly jsou snad všechny multiplatformní.
Z jakých jazyků máme na výběr?
Shell
Narozdíl od humorné parodie na shell ve Windows jsou unixové shelly plnohodnotými programovacími nástroji, které nelze jen tak ignorovat. S ostatními skriptovacími jazyky si příliš nekonkuruje, spíše se vhodně doplňují, protože ne na všechno se shell hodí a ne na všechno je nutné použít klasický skriptovací jazyk.
Shell lze použít na zpracování textu či nejrůznější systémové skripty, zde je opravdu k nezaplacení, na weby se však nehodí a grafické rozhraní zde také nevykouzlíte, budete-li potřebovat něco více než nabízí zenity, xdialog a podobné programy.
Na Linuxu bezpochyby nejčastější je BASH, nástupce prapůvodního SH, není však zdaleka jediný. Skvělým shellem je například také CSH či jeho novější alternativa TCSH, KSH nebo třeba také ZSH, který je bez debat mezi shelly jeden z nejlepších.
Perl
Nejstarší klasický skriptovací jazyk je patrně Perl. Zřetelně jsou na něm vidět rysy jazyku C, z kterého vychází. Za jeho výhody jsou považovány velké možnosti při zpracování textu, což je sice pravda, na druhou stranu jimi dnes disponují přinejmenším některé další skriptovací jazyky také. Co se však Perlu rozhodně upřít nedá, je úžasná úspornost, s níž lze kód vyjádřit – bohužel však na úkor čitelnosti. Vůbec syntaxe Perlu je zvláštní, velmi volná a začátečníky může svádět ke špatným programátorským návykům.
Co se dokumentace týče, nelze si díky jeho zavedenosti stěžovat – ať již sháníte dokumentaci v angličtině, češtině či třeba eskymáčtině, jistě ji najdete.
Ačkoliv moderní trend dneška volá spíše po Pythonu, Ruby, Javě a dalších jazycích, i dnes má Perl na webech své významné místo – využívá jej například i redakční systém vašeho oblíbeného serveru.
Krom již zmíněné podivné syntaxe má Perl ještě jednu velkou nevýhodu – je starý a nejsou v něm v adekvátní míře reflektovány novější trendy, jako je například tzv. objektově orientované programování. Ačkoliv se jedná o mocný jazyk, začátečníkům o programování bych spíše doporučil níže uvedený Python nebo Ruby.
Blaničtí rytíři, Hurd a Perl 6
Dávná pověst praví, že až bude zemi s velbloudem ve znaku nejhůře a nepřátelé se na ni pohrnou ze všech čtyř světových stran, příjde Perl 6, mocný a neporazitelný, všechny je tam rozpráší a nepřátele zažene.
Fakticky se situace má tak, že ačkoliv se Perl stává spíše minulostí než budoucností, pythonisté, rubyisté a další -isté dotírají víc a víc, již přes deset let slibovaný Perl 6 zatím stále uvolněn není. Ale všichni stále tvrdí, že už bude co nevidět…
Python
Poslední dobou se ve velké míře prosazuje skriptovací jazyk Python, který je jednoduchý a intuitivní, přitom však velmi mocný a poměrně slušně rychlý. Dokumentace k němu je dost a docela i té české, a v Pythonu se dá bez problémů programovat i GUI, důkazem čehož může být například populární IM klient Gajim a mnohé další programy. Schválně dejte zkusmo odinstalovat Python ze systému, uvidíte, kolik programů na něm závisí.
Pythonu patří nemalé místo také na webových stránkách, ostatně bylo v něm napsáno spoustu webových frameworků – za všechny jmenujme třeba Django a CherryPy. Mají mnoho do sebe a pokud děláte weby, určitě stojí alespoň za vyzkoušení.
Ruby
Téměř všechny atributy Pythonu, které jsem jmenoval, by se daly použít i na jeho mladšího japonského bratříčka Ruby. Ruby je striktně objektově orientovaný jazyk se skvělou podporou všech důležitých objektových technik. Osobně Ruby považuji za nejintuitivnější jazyk vůbec, což jej předurčuje jako ideální jazyk na učení se programování.
Na webech je Ruby jako doma – dá se buď použít přímo nebo lze využít webový framework Ruby on Rails.
A nevýhody? Našly by se – v prvé řadě je to nepodpora unicode, ale řekněme si na rovinu, že Ruby není zdaleka jediný jazyk, který si s unicode tak docela nerozumí, ostatně ani pythonní rozlišování řetězců a řetězců v unicode není příliš velká výhra.
Pokud je pro vás angličtina denním chlebem, nemá smysl řešit dostupnost dokumentace pro Ruby – je ji spoustu a to velmi kvalitní. To se však již nedá říct o dokumentaci české, které je méně.
Další skriptovací jazyky
Z dalších populárních jazyků jsem nejmenoval PHP, které patří na weby a na systémové skriptování se příliš nehodí, o programování složitějších aplikací ani nemluvě. Kdybyste však po tom tak mermomocí toužili, PHP má vazbu například i na GTK a lze v něm tedy teoreticky psát i grafické rozhraní.
Velmi pěkným jazykem je také Lua, velmi minimalistický a hlavně dokonale rozšiřitelný jazyk. V systému jej moc nenajdete, i když výjimky také existují – využívá ji například správce oken ION.
Dalším drobným skriptovacím jazykem je JavaScript, který se těší velké oblibě na webech zejména v souvislosti s populární technologií Ajax. Používá se jako vestavěný jazyk například ve webových prohlížečích nebo prohlížečích PDF.
Závěr
Dnes jsme se věnovali jednotlivým skriptovacím jazykům, příště si řekneme, v čem se zdrojový kód edituje a hlavně jak se spouští. V článku jsem se dopustil několika zjednodušení, zkušenější nechť prominou, ale článek je určen začínajícím.