Hlavní navigace

Co přináší rorýs

5. 6. 2014 11:19 (aktualizováno) | zboj

Swift. Tak se jmenuje nový, včera představený jazyk od Applu. Nová je vlastně jen syntax, tedy frontend pro LLVM, protože se využívá již existující překladač a jako API Cocoa. Ale právě ta syntax je zajímavá.

Na první pohled Swift vypadá jako skriptovací jazyk, něco mezi Javascriptem a Pythonem. Nemá například funkci “main”, žádné include atd. Funkčně je to jakési (méně čitelné) ObjC bez nízkoúrovňových věcí. Stručně shrnuto žádná revoluce, ale mírná evoluce. Nicméně kouzlo se skrývá v detailech.

Nejhezčí jsou jednoznačně generika a přetěžování operátorů. To první zvýší bezpečnost programů, to druhé zpřehlední kód. Pěkně jsou také řešeny uzávěry, narozdíl od všech rozšířených jazyků překladač automaticky určí, jaký parametr bude zkopírován nebo přenesen na haldu. Tím odpadá kód typu

__block __typeof(self) me = self;

a podobné divnosti. Celkově se jazyk tváří značně funkcionálně a dá se říct, že role tříd (resp. OO jako takového) poklesne, případně zůstane omezena na API, jež stejně většina používá jako blackbox.

Většinou protáčím oči vždy, když čtu o novém jazyce. V případě Swiftu se jedná o opravdu inovativní počin, byť na zhodnocení je ještě brzy. Pokud jej bude Apple tlačit jako Microsoft své C#, bezpochyby se uchytí. Minimálně by mohl být snazší na naučení pro začátečníky než ObjC, i když pokročilí beztak sáhnou spíše po ObjC.

Zajímavým postřehem je, že ObjC se s příchodem Swiftu dostává do pozice C++/CLI, tedy jazyka pro psaní wrapperů nativních knihoven. Toto srovnání sice trochu pokulhává, protože Swift se překládá přímo do nativního kódu, ale na úrovni API se to nabízí (pokud neexistuje nějaká přímější metoda à la JNA, informací je zatím málo).

Teď už jen doufat, že Swift bude použitelný i na Windows (třeba jako frontend pro .NET) a *nixech. To ale zcela jistě prioritou Applu nebude.

Update: Swift podruhé