Proč ne Java?
Svět programování se neustále vyvíjí, stejně tak se vyvíjí i programovací jazyky. Zastarávají a často nejsou schopné soupeřit s moderními jazyky, které jsou vhodnější pro průmysl. Java se celkem tvrdě snaží představit několik moderních rysů ve verzi Java 8, ale bohužel se zdá, že androidí vývojáři nebudou mít tu možnost je využít v blízké budoucnosti (nativně).
Existují jiné alternativy?
Existují jazyky, které mají bezpečnější a čitelnější kód, drasticky redukující nadbytečný a opakující se kód a umí na rozdíl od Javy naprosté zázraky. Pokud sledujete trendy v Android vývoji, pravděpodobně jste slyšeli o jazycích Kotlin, Scala, Groovy a jiných moderních jazycích používaných k vývoji aplikací. V komunitě kolují zvěsti o tom, že Google se zajímá o Swift (ačkoli jsou to jen zvěsti). Tak jako tak, poté, co Apple představil Swift jako oficiální jazyk platformy, bude jen otázkou času, kdy Google udělá něco podobného.
Nejpravděpodobnější nástupce?
Před rokem to ještě vypadalo, že žádný jazyk nesplňuje takové požadavky, aby byl uznán oficiálním androidím jazykem. Některé z jazyků byly příliš primitivní, některé příliš komplikované, některé neumožňovaly použití Java runtime nebo jednoduché přepnutí z Javy, některé jazyky měly špatně vyřešenou interoperabilitu. Kotlin, o kterém budu mluvit, byl také primitivní a plný chyb. Avšak za poslední rok ušel velký kus cesty. Jestli Google opravdu chystá v blízké době jmenovat další oficiální jazyk pro Android platformu, řekl bych, že Kotlin je nejsilněj ší kandidát.
Kotlin - výhody
- Kotlin je vyvíjen týmem JetBrains (tým, který vyvíjí IntelliJ). To samo o sobě má řadu výhod. Za prvé podpora Kotlinu v Android Studiu (které je založeno na IntelliJ) je skvělá a neustále se zlepšuje. Dále je Kotlin spíš průmyslový než akademický jazyk, takže se zaměřuje na uspokojení potřeb vývojářů. A nakonec je Kotlin opensource a je podporován velkou a neustále se rozšiřující komunitou vývojářů.
- Kotlin je plně interoperabilní s Javou. To znamená, že nejen třídy napsané v Kotlinu budou fungovat s třídami napsanými v Javě a budou moci využívat Java knihovny (vývojář může jednoduše integrovat Kotlin v existujícím Java projektu), ale dokonce existuje i plugin pro konverzi Javy do Kotlinu. Tato konverze není vždy úplně přesná, ale výsledky jsou běžně velice kvalitní.
- Kotlin je mnohem jednodušší se naučit pro Java vývojáře (v porovnání například s jazykem Scala) a je čitelný. Byl jsem schopný udělat code review, aniž bych měl v jazyce již hluboké znalosti.
- V porovnání s jinými Java knihovnami, Kotlin není tak objemný (má "pouze" 7000 metod).
- Má skvělé moderní rysy: lambdy, ošetření null, extensions, datové třídy, volitelné argumenty, atd. Antonio Leiva píše řadu článků o Kotlinu a dokonce i knihu, kde jsou tyto rysy popsány do detailu. Na druhou stranu je Kotlin produktivní jazyk: nemá nadbytečné rysy, které by zbytečně komplikovaly učení se a obratnost v jazyce.
Zde je hezké porovnání Kotlinu a JVM alternativ. V odkazu je vidět, jak je Kotlin relativně neobjemný, rychlý a nejstručnější.
Proč tedy není Kotlin populární?
No, za prvé to není ještě plně vyspělý jazyk. První vydání (v1.0) bylo teprve letos v únoru a jazyk je neustále aktivně vyvíjen. Za druhé je Swift populární, protože Apple jej představil jako oficiální jazyk. Co se týká Kotlinu, ten je prozatím pouze nástroj třetí strany. Podle určitých zvěstí jej Google prozatím nepovažuje za oficiální jazyk kvůli jeho nevýhodám (doba buildu především). Komunita však jazyk vnímá velice dobře. Existuje velké množství pozitivních blogpostů a článků o Kotlinu napsaných známými Android vývojáři a velice málo jich je negativních. Například zde je jeden z března. V květnu (po vydání nové verze v1.0.2) vydává autor aktualizovaný článek se změnou názoru k lepšímu, ačkoliv upozorňuje na další nevýhody. Osobně si myslím, že Kotlin jen potřebuje ještě trochu času, aby dospěl. A pokud se směr, kterým se doteď tým jeho vývojářů vydával, nezmění, Kotlin má velikou šanci stát se populárním a oblíbeným jazykem.
“Swift” pro Android?
Tím si nemůžeme být jistí… Má tolik podobných rysů. Je moderní, průmyslově mocný, objektově orientovaný jazyk s funkcionální silou. Je kompatibilní s předchozím jazykem platformy (s Javou, stejně jako je Swift kompatibilní s Objective-C) a funguje velmi dobře s nejpopulárnějším IDE a build systémem. Je opěvován komunitou a podporován jeho stvořiteli. Dokonce i syntaxe Kotlinu a Swiftu jsou jaksi podobné (což je také obrovská výhoda, jelikož iOS vývojáři jsou schopni jednoduše číst Android kód a opačně, o to větší výhoda je to pro lead vývojáře při řízení multiplatformních projektů). Kotlin ale nezíská slávu Swiftu, dokud jej Google neuzná. Je to vůbec možné v blízké budoucnosti? Myslím si, že ano. Pokrok, který jazyk udělal za poslední rok je vskutku impozantní. Náš tým začíná psát dva nové projekty plně v Kotlinu. Jsme z toho nadšení, ale uvědomujeme si nedostatky jazyka. Rádi bychom se podělili o naši zkušenost s komunitou, ale stejně jako je tomu u Kotlinu, pouze čas ukáže.