Funkcionalno programiranje je deklarativna programska paradigma zasnovana na lambda računu, u kojoj se programi tretiraju kao niz matematičkih funkcija. Iako poseduje nekoliko važnih praktičnih prednosti u odnosu na proceduralno programiranje, paradigma je do nedavno bila slabo prisutna u jezicima koji su najzastupljeniji u industriji, najverovatnije zbog svojih akademskih korena i stroge matematičke terminologije. Ovo se poslednjih godina polako menja sa pojavom modernih funkcionalnih jezika kao što su Scala i Clojure (koji mogu da se koriste na Java platformi), F# (.NET platforma) itd.
Swift je novi programski jezik razvijen u kompaniji Apple. Razvoj Swift-a je započet 2010. godine, a prva verzija je objavljena u junu 2014. godine. Dugoročni cilj njegovih autora je da zamene vremešni Objective-C jezik za razvoj iOS i OS X aplikacija. Nakoliko osobina Swift jezika, kao što su funkcije prvog reda, sofisticirani sistem tipizacije, lambda izrazi, korišćenje Karijevih funkcija i parcijalna aplikacija, algebarski tipovi podataka itd, čine jezik posebno pogodnim za pisanje funkcionalnih programa. U ovom radu su analizirane prednosti i mane primene funcionalnih svojstava Swift jezika za razvoj iOS i OS X aplikacija.
Pomenuta svojstva su upoređena sa ekvivalentnim svojstvima programskih jezika Haskell i F#. U radi je pokazano da se Swift, u praksi koristi za pisanje kraćih, elegantnijih i sigurnijih programa, koji su lakši za održavanje, nadgradnju i testiranje. Međutim, takođe se pokazuje da funkcionalni stil u pojedinim slučajevima dovodi do smanjenih performansi u odnosu na ekvivalentni imperativni kôd, te se o tome mora voditi računa. Često postoji više načina da se odgovarajuća funkcionalna apstrakcija implementira (npr. korišćenjem operatora, globalnih funkcija ili metoda). U radu su analizirani, različiti mogući pristupi radi odabira onih koji su prirodniji za Swift jezik sa tehničke i praktične strane.
Autor: Ivica Milovanović
Mentor: prof. dr Dušan Tošić
Ovde možete pročitati rad u celosti