Új programozási nyelv és grafikus API az Apple-től
Az Objective-C trónörökösét írta meg az Apple a Swift formájában. Az OS X-et és iOS-t célzó új nyelv nem felejti el a gyökereit, de minden ízében modern, támogatja a ma elvárható új funkciókat, egyszerűen írható, gyorsan programozható. Az Apple szerint gyors is lett.
Új programozási nyelvvel lepte meg a WWDC közönségét az Apple tegnap. A Swift az Objective-C-hez hasonló, annál azonban lényegesen egyszerűbb szintaktikát használ, amely könnyebben tanulható és hibatűrőbb mint elődje. A Swift erősen típusos (ám type inference-et használó) objektumorientált nyelv, amely támogatja az olyan modern képességeket, mint a closure-ök, tuple-ek, generikus kód, struct-ok és bizonyos funkcionális programozási mintákat (map és filter) és a hagyományos fordított nyelvek sebességét és hatékonyságát igyekszik kombinálni a scriptnyelvek egyszerűségével és gyors programozhatóságával.
Most játszótérrel
A Swiftből természetesen minden probléma nélkül hívható az Apple-platformok hivatalos API-készlete, a Cocoa és a Cocoa Touch, valamint teljes Xcode-támogatásban is részesül. A Swift azonos futtatókörnyezetet használ iOS-en mint az Objective-C és a C, így akár egy appon belül is keverhetően a különböző nyelvek, tetszőlegesen. Az új nyelv az iOS 5-tel bevezetett automatizált memóriamenedzsmentet (automatic reference counting, ARC) is átveszi az elődöktől.
A független szakemberek szerint a Swift bőséggel adoptált modern képességeket a C#-ból a Mozilla-féle Rustból is, de van Ruby, Lisp, C++ befolyás is, és az Objective-C gyökerekből is tartott meg hasznos és értékes elemeket - a C-től azonban kimondottan távolodik, azzal már nem is kompatibilis. A bejelentésre adott részletesebb, fejlesztői szempontú elemzés például itt olvasható, itt pedig egy egész érdekes Reddit-beszélgetést találtunk. A szakemberek reakciója egységesen pozitívnak tűnik, a Swift kiváló alapja lehet a hatékony fejlesztésnek, a készítők jó érzékkel kötöttek kompromisszumokat és vettek át sikeres megoldásokat.
Az Apple elmondása szerint a fejlesztésben főszerepet kapott az interaktivitás, a Swift mellé kínált fejlesztői eszközökkel a kód írása közben követhetjük az alkalmazás változását, külön fordítási parancs kiadása nélkül. Ilyen funkciók korábban már nyelvekben, IDE-kben is elérhetőek voltak, ebbe az irányba indult el tavaly például a Google az Android Studióval, iOS-en azonban ez valódi újdonság. A Playground funkció a kezdő programozók mellett a haladóknak is sokat tud segíteni azzal például, hogy a fejlesztői felület igyekszik a releváns megjegyzéseket automatikusan kiírni a sor végére, így azokat nem kell fejben tartani.
De gyors?
Az új generációs nyelvek nem a sebességükről híresek. Az Apple nagy ígérete, hogy a Swift nem csak kényelmes nyelv, de nagyon gyors is, a cég saját metrikája szerint mintegy 40 százalékkal is gyorsabb lehet, mint az Objective-C egyes komplex objektumrendezési feladatok alatt. Ez valószínűleg az egyik ideális esete a két nyelv összehasonlításának, de ha a Swift nem sokkal lassabb, mint az Objective-C, már akkor is nyert ügye lehet az Apple-nek.
A Gitlab mint DevSecOps platform (x) Gyere el Radovan Baćović (Gitlab, Data Engineer) előadására a november 7-i DevOps Natives meetupon.
A Swift kód futtatásáért az LLVM fordítóinfrasrtuktúra felel, ez készít optimalizált gépi kódot a programból. Az alkalmazások az Apple ígérete szerint maximálisan kihasználják a modern Mac, iPhone és iPad hardverek minden képességét, ennek érdekében az alap könyvtárakat is a sebességre optimalizálva írta újra az Apple.
Az Apple nem titkolja, hogy a Swifttel hatalmas tervei vannak, egyértelmű, hogy hosszabb távon a Swift jelenti az iOS és az OS X platformokat célzó alkalmazások jövőjét. Az Objective-C és a C persze nem megy sehová, nem kell nekifogni portolni a megírt alkalmazásokat, sőt, a visszafelé kompatibilitás érdekében még az új projekteket is érdemes a "régi" nyelvben írni, egy-két éven belül azonban már minden bizonnyal a Swift lesz az Apple-ökoszisztéma elsődleges nyelve. A Swiftet már most el lehet kezdeni tanulni, az Apple közzétette az 500 oldalas, a nyelvet az alapoktól bemutató kézikönyvét, amely ingyenesen elérhető ebook formátumban.
Az iparági trendeknek megfelelően az Apple is előállt saját alacsony szintű grafikus programozási interfészével, a Metallal, amely ezen a területen az OpenGL helyett-mellett kap helyet. Az ilyen API-k sokkal hatékonyabban tudják kihasználni az egyes grafikus processzorok teljesítményét, hátrányuk azonban a rugalmatlanság, nem képesek különböző GPU-architektúrák közötti különbségeket eltüntetni olyan hatékonyan, mint a magas szintű API-k. Az Apple esetében ez nem hátrány, az iOS-es tabletek és telefonok szinte konzolszerűen szabványos hardverre épülnek, adja magát, hogy a cég alacsony szintű grafikus API-t használjon. A Metal használatához Apple A7 processzor szükséges, az ebben lévő PowerVR Series6 (Rogue) GPU-t célozza az új API.
Mobil backend az iCloudban
Az Apple jellemzően jó fejlesztői eszközöket készít, egy területen azonban látványosan lemaradt az elmúlt években, a mobilalkalmazások mögött álló backend területén. Az űrt számos szolgáltatás igyekezett kielégíteni a Parse-tól a Microsoft-féle az Azure Mobile Services-en át az Amazon saját mobile-backend-as-service (MBaaS) kínálatáig. Ezek a szolgáltatások egységesen nagyon olcsó szerveres adattárolást és feldolgozást kínálnak a mobilappok mögé, skálázódó, gyors architektúrával - minden platformra.
A kaliforniai gyártó most elégelte meg a tétlenséget és mutatta be CloudKit elnevezésű saját megoldását. A rendszer méltatlanul keveset, mintegy másfél percet kapott a tegnapi bemutatón, emiatt viszonylag keveset tudni róla. Az biztosra vehető, hogy a CloudKit API-k használata szorosan kötődik majd az iOS-hez és valószínűleg valamilyen optimalizált, rendszerszintű támogatást is kap az Apple saját MBaaS-a. A fontosabb elvárt képességeket, az értesítésküldést, adattárolást, autentikációt és keresést a CloudKit kipipálja, egy egyszerű MBaaS-tól a fejlesztők nem is várnak többet. A döntő tényező az árazás lesz, az Apple a CloudKit backendet "gyakorlatilag ingyen" kínálja, a felső limit egy petabájt objektumtárolás, 10 petabájt adatbázis és napi 5 terabájt adatforgalom - akinek ennél többre van szüksége, annak ad egyéni ajánlatot az Apple.