Malý ostrov v Baltském moři (I.)
7. 11. 2018
Malý ostrov v Baltském moři (I.)

Programování je komunikace. Z jedné strany se snažíte vysvětlit rychlému, ale poměrně hloupému stroji, co má dělat (to je ta lehčí část), z druhé strany ten samý program slouží jako popis řešení nějakého problému pro ostatní lidi (to je nesrovnatelně těžší). Tyhle dost odlišné cíle navíc musíte realizovat pomocí jediné věci - programovacího jazyka, který má tím pádem naprosto zásadní vliv na to, jak budete úspěšní.

Programovací jazyky totiž mají osobnosti a jako v každém dlouhodobém vztahu, i tady se časem můžou vyskytnout problémy. Třeba se máte léta rádi s C++, ale už se prostě nedokážete dál dívat na znetvoření způsobená desítkami nepovedených plastických operací. Nebo už vás nebaví soužití, ve kterém vám ten druhý neustále dává najevo, že jste hloupější, i když máte dva doktoráty (Haskell). Poměr s PHP se taky nedá utajit navěky, takže je lepší ukončit ho dřív, než se provalí veřejně, a večírky s JavaScriptem a harémem jeho webových frameworků jsou sice strhující, ale ranní kocovina je strašlivá.

Naštěstí pro nás je v těchto případech úplně v pořádku říct „není to mnou, je to tebou“ a najít si lepší programovací jazyk. Těch se sice ročně zase tolik neurodí, ale je tu jeden, který navzdory svému mládí už dokázal způsobit značný rozruch: Kotlin. Pojďme se blíž podívat na to, jak se mu to povedlo, a zjistit, jak nám může pomoci.

Tryskové mozky útočí

Za vznik Kotlinu je zodpovědná firma JetBrains s. r. o. Pocit národní hrdosti trochu kazí fakt, že drtivá většina vývojářů pracuje v Petrohradě a oficiální pražské sídlo bylo údajně zvoleno pouze proto, že v Česku se stále ještě podniká lépe než v Rusku (takže můžeme být pyšní aspoň na něco).

JetBrains vyrábějí špičkové nástroje pro vývojáře, a tak je vlastně docela logické, že se rozhodli k nim přidat i „nástroj“ ultimativní, vlastní programovací jazyk, a to s poměrně ambiciózními cíli. Takový úkol je běh na velmi dlouhou trať (vývoj začal v roce 2010, první stabilní verze vyšla v únoru 2016) a vyžaduje expertní znalosti i jistou dávku štěstí. Víceméně napoprvé musíte trefit mnoho vzájemně propojených věcí a ještě musí být výsledný produkt dostatečně atraktivní na to, aby dokázal přetáhnout nebožáky z nešťastných, ale zajetých vztahů se staršími jazyky, které navíc často komplikuje přítomnost tchýně (v této analogii manažer programátora).

Komu tím prospějete?

Když už se rozhodnete investovat nemalé množství peněz a času do tak nejistého projektu, jako je vývoj nového programovacího jazyka, je dobré od začátku mít jasno o jedné důležité věci: kdo je vaše publikum. Kotlin je koncipován jako pragmatický, obecně použitelný průmyslový jazyk, ale ještě před pár lety existovala jedna skupina, jejíž zoufalství převyšovalo běžný průměr našeho odvětví. Touto snadnou kořistí byli Android vývojáři.

Kvůli souběhu několika nešťastných jevů se stalo, že stará dobrá Java používaná na Androidu začala výrazně zaostávat - ještě v roce 2013 Android oficiálně podporoval maximálně Javu ve verzi 6. Java 6 je z roku 2006. Android roku 2013 bylo opuštěné městečko z rozpadajících se bytekódů uprostřed vyprahlé pustiny starých API, které pomalu pohlcuje poušť nekompatibility a kde se poslední zapomenutá skupinka omšelých prospektorů snaží vykutat svými tupými krumpáči nuggety z dávno vytěžené zlaté žíly, zatímco nad jejich hlavami se slétají supi headhunteři.

kotlin-i-vnitrek.jpg

I bylo světlo

Autoři Kotlinu naprosto správně pochopili, že pokud tuto smutnou situaci vyřeší, může být Kotlin na Androidu onou bájnou a zásadní „killer app” pro jejich nový programovací jazyk. A přesně to se také stalo v únoru 2016, kdy vyšel Kotlin 1.0 s podporou Androidu a JVM.

Nejenom že najednou všichni Android vývojáři měli k dispozici moderní, elegantní a efektivní jazyk, který byl už tehdy pár let napřed před aktuální Javou (o prehistorické Javě 6 nemluvě), ale hlavně od té doby verze jazyka, kterou používáme k vývoji Android aplikací, už není závislá na verzi systému, kde tyto aplikace běží - což je vzhledem ke stále nevyřešené fragmentaci androidího ekosystému obrovský pokrok.

Spokojené pomlaskávání a nadšené mručení Android programátorů bylo tak hlasité, že dolehlo až do Mountain View v Kalifornii, kde se pak o rok a pár měsíců později stala bezprecedentní událost: Peklo zamrzlo a Google v květnu 2017 ustanovil Kotlin (po Javě a C++) dalším oficiálním jazykem Androidu.

Jak se ukázalo později, byl tohle jenom začátek - dnes je Kotlin použitelný na telefonech (Android, iOS), počítačích (Windows, Linux, macOS…), serverech (všude, kde běží Java), v prohlížečích (díky transpilaci do JavaScriptu) a dokonce díky přímé kompilaci do nativního kódu i v různých IoT nebo embedded zařízeních. Všechny tyto platformy přitom samozřejmě můžou sdílet společnou část kódu napsanou v Kotlinu!

Cynické intermezzo

Ostřílení a ostražití IT harcovníci v tuto chvíli namítnou: „Tohle všechno je bezvadný, ale Kotlin vyvinuli ,JetBrains s. r. o.', ne ,Nadace pro nezištné zlepšování života vývojářům na deprivovaných platformách o. p. s.', co z toho jako mají? O co jim ve skutečnosti jde? Je bezpečné do Kotlinu investovat?“. Velmi správné otázky!

Když už se rozhodnete věnovat nemalé množství peněz a času tak nejistému projektu, jako je vývoj nového programovacího jazyka, je dobré od začátku mít jasno i o další důležité věci (zvlášť pokud jste komerční firma): jak na tom vyděláte. JetBrains otevřeně přiznávají, že jedním z účelů Kotlinu je podpora prodeje jejich komerčních IDE (a to je fér, protože spoustu svých produktů dávají k dispozici zdarma) a souvisejících věcí (literatura, školení), dalším důvodem pak to, že při vývoji těchto IDE jim přestaly vyhovovat stávající programovací jazyky, a tak si prostě udělali vlastní. Očividně ne všechny projekty typu „udělej si sám“ musí skončit katastrofou (Přemek Podlaha likes this).

Kotlin si jako každá nová věc žádá určitou počáteční investici - zejména čas vývojářů a důvěru manažerů i zákazníků. Rychlá návratnost je prakticky zaručená díky efektivnějšímu vývoji a vyšší kvalitě dodávaných projektů a co se týče bezpečnosti této investice do budoucna, je to docela jednoduché: Kotlin včetně překladače, standardních knihoven, nástrojů, IDE pluginů a podobně je přirozeně kompletně open source. Taktéž hlavní IDE, které Kotlin podporují (IntelliJ Idea Community a Android Studio) jsou open source, a JetBrains s Googlem společně založili nadaci, které patří ochranné známky, volí hlavního designéra jazyka a komisi, která rozhoduje o zpětně nekompatibilních změnách v jazyce. Nemůže se tak stát, že by si Kotlin nebo jeho ekosystém začal někdo pro sebe uzurpovat za účelem zisku (příjemná změna, pokud máte ještě v paměti vleklé patentové spory Oracle vs. Google ohledně Javy na Androidu).

// TODO

Příště se podíváme, čím Kotlin až trestuhodně rozmazluje své uživatele, kterým vlastnostem vděčí za svoji raketově vzrůstající oblibu a jakými zbraněmi dobývá donedávna ještě výsostná území zavedených technologií. A pokud by vás zajímalo, proč se Kotlin jmenuje tak, jak se jmenuje, odpověď je v titulku…

Jiří Hutárek

Foto v záhlaví: Google Maps