Swift je programovacím jazykem od společnosti Apple, který je určený pro vývoj na platformách MacOS a iOS. Je multi-paradigmatický, kompilovaný a open source. Byl zamýšlen jako alternativa k jazyku Objective-C, na rozdíl od kterého neměl dovolit tolik chyb programátora. Dokáže spolupracovat s existujícími frameworky Cocoa Touch a Cocoa. Je kompilován za pomoci LLVM a v tomtéž programu je možné jej kombinovat s jazyky C, Objective-C a Objective-C++.

Objective-C

Objective-C je často nazývaný ObjC a jedná se o objektově orientovaný programovací jazyk, který je implementovaný, jako rozšíření jazyka C. Do toho byl přidán systém zasílání zpráv z jazyka Smalltalk. Používá se pro operační systémy Mac OS X, iOS a GNU projekt GNUstep. Prostředí je založené na standardu OpenStep.

Historie

Chris Lattner začal vývoj Swiftu v roce 2010. Postupně se k němu připojili i další vývojáři. Vývoj jazyka Swift se inspiroval jazyky od Objective-C po Rust, Haskell, Ruby, Python, C#, CLU a mnoha dalšími.

Swift byl zveřejněn na světové konferenci vývojářů Apple WWDC 2. června 2014 včetně dokumentace, která je dostupná na vývojářských stránkách Apple a v iBooks store. Registrovaným Apple developerům byla na konferenci představena beta verze programovacího jazyka, ale společnost nepřislíbila finální verzi Swiftu, která by byla z hlediska zdrojového kódu s touto beta verzí kompatibilní. Apple plánoval zpřístupnit převodníky zdrojového kódu, pokud by pro plný release byly potřeba.

Na konferenci byl také vydán pětisetstránkový manuál The Swift Programming Language.

Swift dosáhl zásadního milníku 9. září 2014 s Gold Master Xcode 6.0 pro iOS. Swift 1.1 byl vydán 22. října 2014 dohromady se spuštěním Xcode 6.1. Swift 1.2 byl vydán 8. dubna 2015 spolu s Xcode 6.3. Swift 2.0 byl následně oznámen na WWDC konferenci v roce 2015 a byl zpřístupněn pro vydávání aplikací v App Sotre 21. září 2015. Swift 3.0 byl pak vydán 13. září 2016. Swift 4.0 byl vydán o rok později 19. září 2017. Swift 4.1 byl pak vydán po půl roce 29. března 2018.

Swift vyhrál první místo v anketě Most Loved Programming Language mezi vývojáři na Stack Overflow v roce 2015 a následně druhé místo v téže anketě o rok později.

IBM spustila v prosinci roku 2015 svoje webové stránky Swift Sandbox, které umožňují vývojářům psát kód ve Swiftu na jedné straně obrazovky a zobrazovat ihned výstupy na straně druhé.

Během konference WWDC 2016 Apple oznámil, že vydá exkluzivní aplikaci na iPad, která se bude jmenovat Swift Playgrounds a bude mít za cíl učit programátory pracovat ve Swiftu. Aplikace byla představena v interface připomínajícím trojrozměrné videohry, kde se zobrazuje zpětná vazba, pokud jsou řádky kódu zadány v daném pořadí a spuštěny.

V lednu 2017 ohlásil Chris Lattner svůj odchod z Apple na novou pozici v Tesla Motors, a svou pozici vedoucího vývojáře Swiftu předal týmovému veteránovi Tedovi Kremenekovi.

Specifika Swiftu

Swift do značné míry využívá za svůj základ jazyk Objective-C, který modernizuje novými koncepty a syntaxí. Při své původní prezentaci byl uváděn jako „Objective-C bez C“, jelikož Swift na rozdíl od Objective-C nepoužívá pointery. Pointery je ale přesto v případě potřeby možné využít.

Dalším rozdílem je nahrazení Smalltalkového způsobu volání metod tečkovou notací a jmennými prostory. To je běžné v jiných jazycích podobných C, jako je například Java nebo C#. Swift přináší oproti Objective-C nově pojmenované parametry, přitom však zachovává klíčové vlastnosti Objective-C, u kterých se ve Swiftu často daří zjednodušení syntaxe.

Typy a proměnné ve Swiftu

Cocoa Toucha Cocoa obsahují mnoho tříd, které patřily do knihovny Foundation Kit. Mezi ty patří například NSString, který slouží pro práci s Unicode řetěžci, nebo kolekce NSArray a NSDictoionary. Za pomoci syntaktického cukru umožňuje Objective-C jednoduché vytváření těchto objektů, ale poté, co jsou vytvořeny, je nutné s nimi manipulovat za použití volání objektových metod. Ve Swiftu je možnost s mnoha z těchto základních typů přímo manipulovat a jsou součástí jazyka. Například řetězce jsou na NSString, pokud je Foundation importována, neviditelně mapovány.

Foundation Kit v sobě obsahuje pro velkou část tříd dvě verze, měnnou, která může být během běhu programu modifikována a neměnnou, kterou lze v průběhu programu pouze číst. Swift na to navazuje a tuto vlastnost rozšiřuje na všechny typy.

Další vlastnosti Swiftu

Swift lze spouštět na více existujících platformách. Jeden program může zároveň být programován ve Swiftu, Objective-C i C nebo C++. V rámci zjednodušení vývoje aplikací nabízí Xcode poloautomazický systém, který pomáhá s tvorbou a správou přemosťujících souborů, které zpřístupňují Objective-C kód pro Swift.