“Sledeći veliki programski jezik” — šta novi, open source Swift donosi iOS (i drugim) developerima?

Apple je najavio drugu verziju svog programskog jezika za iOS uređaje, Swifta koja postaje open-source, ali sa sobom nosi i mnoge druge značajne novitete. Deluje da bi ovaj, do sada najvoljeniji programski jezik, mogao uskoro da postane i jedan od vodećih.

Zoja Kukić - 9. Jun, 2015.

Na jučerašnjem najvećem Apple događaju WWDCu najavljena je nova verzija njihovog programskog jezika Swifta koja će biti open-source. Od kako je prošle godine Swift objavljen, postao je najvoljeniji programski jezik ikada, ali za programiranje za iOS i dalje iza, sada već 18 godina starog, Objective-C. Kreg Federigi, glavni softverski inženjer kompanije iz Kupertina je rekao da veruju da će biti “sledeći veliki programski jezik, sa kojim ćemo praviti aplikacije i za 20 godina.”

Ovo je značajna vest za programersku zajednicu i trebalo bi da poveća prihvatanje ovog jezika, a mi smo analizirali da li je stvarno tako i šta je još važno imati na umu prilikom ove promene.

Apple nije specificirao pod kojom licencom planira da objavi Swift izvorni kod, osim da će biti “OSI-approved permissive”, tako da očekujemo pre nešto poput Apache, BSD ili Mozillinih licenci, nego Gnu GPL.

Open source nije baš potpuna novina za Apple — deo OS X-a, WebKit i LLVM kompajler su slobodni softveri. Više ljudi koji lakše razvijaju kvalitetne proizvode za Appleove platforme je dobro za Apple, sve dok su te platforme na prvom mestu.

Zajedno sa tim Apple planira da objavi i izvore koda Swift kompajlera i standardnu biblioteku, kao i verziju alata dostupnu za Linux (uz, naravno, OS X i iOS). Posebno jaku vest za ovo vidi Mlađan Antić, iOS developer i direktor programa iOS Akademije:

mladjan-anticOno što je najbolja stvar ovde jeste direktna podrška za iOS, OSX i Linux. Znamo da se najveći broj web servera izvršava na Linuxu, tako da možemo vrlo brzo da očekujemo nešto poput Node.js za Swift.

Aleksandar Vacić, najobjavljivaniji iOS solo-izdavač u Srbiji, vidi veliki potencijal u ovome:

vacicApple će napraviti Linux compiler od starta, a nije daleko od pameti da će Microsoft napraviti svoj i ugraditi ga u Visual Studio. Ako to oni ne urade, uradiće verovatno sam Apple.

Gledete vesti za Linux – ne bih se iznenadio da u nekom momentu Swift počne ozbiljno da se koristi kao server-side jezik, za pisanje web servisa što neki developeri već (polušaljivo) najavljuju.

Apple je na WWDC 2015 objavio i CloudKit JS library za pisanje CloudKit web apps – ne bi bilo iznenađenje da za godinu dana bude moguće pisati CloudKit server-side apps u Swiftu 3.0.

Ova promena obezbediće developerima pun pristup Swiftu i time bi mogla da privuče one koji su zabrinuti oko prihvatanja Appleovog jezika.

Ivan Jelić, takođe vidi u ovome tek početak velikih stvari:

Ivan JelicRekao bih da Apple želi da pruži što više argumenata za Swift i otrgne ga od shvatanja jezika koji se koristi samo za Apple platforme na Apple platformama. Ovo je samo deo priče, bilo bi zanimljivo omogućiti razvoj aplikacija u Swiftu za Android i slobodno razvojno okruženje, ne samo standardne biblioteke i kompajler.

Čak i kada bi Swiftom mogli razvijati Android aplikacije, to bi bile aplikacije ili delovi aplikacija prvenstveno napravljene za iOS, što je opet, dobro za Apple. Ovo je potez koji bi dugoročno mogao ojačati Appleovu poziciju.

Appleova SDK platforma je takođe sređena da radi bolje sa Swiftom 2, tako da interakcija sa SDKovima u Swiftu se oseća više prirodno.

Objective-C polako odlazi

Objective C je trenutno među top 20 najkorištenijih jezika, a moguće da će ova nova strategija Applea za Swift da doprinese njegovom odlasku sa scene. Ali, ne brzom.

vacicNišta posebno se neće u međuvremenu dešavati sa Objective C-om. Razvija se i održava i dalje i biće prisutan još barem par decenija. ObjC neće nestati.

Ivan JelicObjC će biti tu još neko vreme, ali će lagano zastariti. Apple ima znanje i iskustvo kada su tranzicije u pitanju, vrlo verovatno će biti podržan dok bude bilo neophodno, ali će sve više puteva voditi ka Swiftu.

mladjan-anticObjective-C će i dalje živeti, ali s obzirom na tempo kojim Apple gura swift, Swift će jako brzo prešišati ObjC. Kada kažem jako brzo, mislim godinu-dve.

Vreme je za Swift

Za sada je Swift mnogo više korišten od onih koji tek počinju sa kreiranjem aplikacija za iOS, ali deluje da je Apple prilično ozbiljan u svojoj nameri da se to promeni.

Kod nas je situacija slična — mnogi domaći developeri do sada su se samo igrali sa Swiftom, a ozbiljne stvari radili u Objective C-u, ali to se menja. Aleksandar, recimo, planira da tokom leta uči Swift i da svoju narednu aplikaciju piše u njemu.

Ivan JelicDobro je što migracija na Swift može teći u fazama i što će podrška za ObjC trajati dovoljno dugo. Pravo je vreme za to. Početnici će neko vreme biti u komplikovanoj situaciji jer ćemo imati dve načina razvoja paralelno, no Swift je tu da ostane, zaobići ga nema smisla, naročito zato što je lakši za početak od ObjC-a.

Što se tiče početnika, savet je jednostavan — krenite sa Swiftom.

mladjan-anticNije teško naučiti Swift i prešaltati se sa bilo kog jezika. U iOS developmentu je potrebno dosta vremena nauciti SDK i mobile development uopšte, jezik kao jezik se lako nauči i prešalta na njega. U ovom trenutku ne postoji dovoljan broj 3rd party frameworks koji su napisani i za Swift, ali me svakim danom iznenađuje broj novih. Nikada nije bilo bolje vreme za učenje Swifta.

vacicJa sam (iOS) početnicima još prošle godine savetovao da odmah uče Swift jer je to jedinstvena prilika da od početka učestvuju u stvaranju novog jezika i samim tim nauče mnogo toga značajnog. Pre svega je tu značajno da isprate kako se i zašto Swift menja, jer se time uče značajni filozofski aspekti modernih programskih jezika.