Index Vakbarát Hírportál

Az Apple forradalmasítja a programozást?

2014. június 11., szerda 17:58 | aznap frissítve

Itt a Swift, az Apple 2010 óta fejlesztett, nemrég nyilvánosságra hozott programnyelve, ami átalakíthatja a programozást, mert tettek bele egy kis grafikát. Kritika is éri bőven, mivel csak az Apple eszközeire lehet majd használni, de elvileg mégis könnyen átalakítható lesz. Nem biztos, hogy megváltja a programozók világát, de a hatása már most is érzékelhető. A Flappy Bird 9 óra alatt elkészült vele, és oktatásra is jó lehet.

Az Apple szokásos, általában nagy bejelentésektől hangos WWDC-konferenciáján idén volt olyan is, ami nem váltott ki hatalmas visszhangot az átlagfelhasználók között. Nem úgy a programozóknál: a cég bejelentett egy új programozási nyelvet Apple-hardverekre, a Swiftet.

A Swift fő tervezője Chris Lattner, az LLVM megalkotója (Low Level Virtual Machine – alacsony szintű virtuális gép), ami képes nyelvfüggetlen kódot generálni, ezzel megkönnyítheti a Swift nyelven írt programok átültetését más környezetekre. Lattner még a Microsoft gyakornokaként kezdett dolgozni az LLVM-en. Apple-ös levelezőlistákra küldött emailjei keltették fel a cég érdeklődését, így először besegítettek a projektbe, aztán 2005-ben felvették a céghez, innentől az LLVM az Apple fejlesztéseinek egyik alapja lett. A Swiftet 2010-ben kezdték fejleszteni OS X-re és iOS-re, és lényegében új nyelv, kifejezetten Lattner megoldásához. Az Apple 400 oldalas könyvben el magyarázza a működését.

A nyelv gyorsan népszerű lett: rengetegen beszélnek róla, egy fejlesztő pedig nem sokkal a bemutatása után, mindössze kilenc óra alatt lemásolta vele a Flappy Birdöt, az elmúlt pár hónap legnépszerűbb – igaz, nem túl összetett – okostelefonos játékát. A programozó, Nate Murray négy óra ismerkedés után pakolta össze a játékot. Murray korábban a webes összekötőnél, az IFTTT-nél dolgozott, most pedig az online oktatási portálnál foglalkoztatják, ahol nemsokára tanítják majd az Apple új nyelvét is. A programban a vizuális megjelenítés ráadásul könnyen taníthatóvá teszi a nyelvet: a tanulók tényleg láthatják, mit rontottak el.

Játszótér a nagy dobás

Az Apple legtöbb szoftvere Objective-C programozási nyelven készült, ennél a Swift elvileg sokkal gyorsabb és hatékonyabb. A cél, hogy jó ideig egymás mellett létezzen a kettő. A C-alapú nyelvet még a nyolcvanas években tervezték, sok tekintetben egyáltalán nem olyan egyszerű használni, mint más modern nyelveket, például a Rubyt és a Pythont, amelyek rengeteg dolgot elvégeznek a programozó helyett (legalábbis vannak rá kész eszközök). 

A nyílt forrású Lift-keretrendszert létrehozó programozó, David Pollak szerint a nyelv egyik legnagyobb előnye az automatikus szemétgyűjtés: a nyelv elboldogul a memóriában lévő felesleges információ kiszórásával, így a fejlesztőnek nem kell ezzel foglalkoznia.

A Swift automatikusan elboldogul (fordítási időben) a változók típusaival (type inference), ami szintén gyorsítja a munkát. Egyes kódrészleteket pedig könnyebben újra lehet hasznosítani. Összességében könnyebb újrahasznosítható kódot készíteni.

Mindennek a tetején pedig ott csücsül az interaktív játszótér, amellyel már gépelés közben meg lehet nézni a kód eredményét. Ebben a Wolfram programozási nyelvhez hasonlít: az Apple bevallása szerint Bret Victor gondolatai inspirálták, ugyanúgy, mint a Khan Academy online tanulási felületet. Ez az újítás az, ami az egész programozásra rányomhatja bélyegét. Pollak szerint attól függően, hogy mennyire jól működik majd a gyakorlatban az eszköz, új irányba fordíthatja a programozást: sokkal intuitívabban lehet majd kódolni.

Bezár?

Caylan Larson programozó szerint az új nyelv sokkal könnyebben elsajátítható, „sok embernek sok új ajtót nyithat”. Ehhez persze teljesen újfajta gondolkodást kell elsajátítani, ami egyelőre a hátránya is a Swiftnek: a programnyelv inkább a jövő, mint a jelen, a váltás pedig nem lesz könnyű. 

A másik kritika a nyelvvel szemben, hogy kizárólag az Apple eszközein működik. Pollak szerint a Tim Cook által kijelölt irány nem jó: rengeteg problémát megold, de elválasztja az Apple rendszerének programozóit mindenki mástól.

Valószínűleg ennek hátrányait nem hamar fogja érezni az Apple. Alapvetően a cég jobban szereti így intézni a dolgokat: meghatározzák saját szabályaikat, rengeteg, széles körben használt eszközük van, így sok fejlesztő boldogan ír majd programokat ezekre, függetlenül attól, milyen nyelv szükséges hozzá. Sokkal könnyebb lenne a programozók élete, ha úgy fejleszthetnének, hogy a végtermék egyből működjön más eszközökön is, az androidos telefonoktól a Windowsokig. Sokan régóta várnak erre. Pollak szerint most egy lépéssel még távolabb kerültünk a megoldástól.

Viszont Pollaknak csak részben van igaza: a fent említett LLVM-t beépítettek a Swiftbe, ezért tényleg könnyen készíthető vele más rendszerekre is átültethető kód. Azonban először egy átmeneti formátumot (binárist) kell készíteni, a Swifttel készült kód nem egy az egyben használható más rendszereken: valószínűleg ennek szól a programozó Wiredben megfogalmazott kritikája.  

Ahogy az Apple csinálja

Az interaktivitást leszámítva viszont a nyelv nem igazán különbözik a többi modern nyelvtől, például a Rubytól. Emiatt Pollak szerint az Apple-nek nem a Swiftet kellett volna kifejlesztenie, hanem felkarolhatott volna egy olyan nyelvet, aminek már megvannak ugyanezek az előnyei.  

Az Apple viszont nem ebben hisz, mindent maguknak csinálnak – néha bejön, néha nem. Egyelőre úgy tűnik, a Swifttel kapcsolatban igen: az érdeklődés hatalmas, és egyetlen médiabarát újítás is elég ahhoz, hogy erről beszéljen a programozótársadalom. Már magyar meetup is van a témában.

Rovatok