En ny era med Apples programmeringsspråk Swift
Årets WWDC-konferens kretsade så intensivt kring iOS 8 och OS X Yosemite att en av de största nyheterna, lanseringen av programmeringsspråket Swift, nästan hamnade i skymundan. För den vanliga användaren är detta kanske inte en stor händelse, men för utvecklarna kan det innebära en total omvälvning. Vissa programmeringsspråk har tydliga fördelar gentemot andra; vissa är snabbare, andra mer effektiva, och vissa utmärker sig genom sin tydlighet och användarvänlighet. Apple är det senaste i raden av företag som skapat sitt eget programmeringsspråk, efter Googles Go (Golang) och Microsofts .Net Framework. Swift sägs ha lärt av dessa språk, samtidigt som det är troget sin föregångare, Objective-C. Apple hävdar att de har utvecklat det snabbaste och mest robusta programmeringsspråket på hög nivå. Låt oss utforska detta närmare.
Varför programmeringsspråk är nödvändiga
Det finns många sätt att få en enhet att utföra ”uppgifter”. Oavsett om det är en modern mobil enhet eller en traditionell dator, kan de programmeras antingen på det gamla viset med maskinkod eller assemblerspråk, där varje instruktion skrivs för hand, eller genom att använda språk på högre nivå som förenklar processen avsevärt. Utvecklingen går ständigt mot att göra utvecklarspråken mer likt vanligt språk. Även om namnet Swift främst lockar utvecklare, ska vi försöka förklara tekniken på ett enkelt sätt, så att du förstår hur den kommer att påverka framtida generationer av Apple-produkter.
En grundläggande förklaring: Elektroniska enheter är i princip de mest okunniga skapelserna som människan har konstruerat. Utan programmering skulle de inte ha någon funktion alls. Det är programmeringen som ger dem mening. På en basal nivå behöver elektroniken få detaljerade instruktioner för varje handling. Det var så det fungerade med hålkort och tidiga maskinspråk. Sedan utvecklade vi språk som gjorde det möjligt att kommunicera med maskiner på ett mer naturligt sätt (kod är i själva verket en förenklad form). Vi skriver kod som sedan kompileras till något datorn kan förstå och därefter köras. Så sammanfattningsvis, kod – kompilera – kör.
Varför Swift?
Den mest relevanta frågan är naturligtvis ”Varför?”. C, språket från 1970-talet, var banbrytande på sin tid. Senare kom dess avknoppning, Objective-C, på 1980-talet. Apple har använt den plattformen för utveckling sedan dess. Det gamla ordspråket säger ”om det inte är trasigt, laga det inte”. Om något har fungerat i 30 år, vad är då problemet? Jo, just det. Apple har använt Objective-C i decennier nu. Det är dags för något snabbare, kraftfullare och enklare. Där kommer Swift in i bilden.
Enligt den officiella e-boken om Swift (tillgänglig gratis på iTunes) är ”Swift ett nytt programmeringsspråk för iOS- och OS X-appar som bygger på det bästa från C och Objective-C, utan begränsningarna med C-kompatibilitet. Swift anammar säkra programmeringsmönster och lägger till moderna funktioner för att göra programmeringen enklare, mer flexibel och roligare. Swifts nya utgångspunkt, i kombination med de etablerade och populära ramverken Cocoa och Cocoa Touch, erbjuder en möjlighet att omvärdera hur mjukvaruutveckling fungerar.”
Varför är Swift viktigt?
Trots Apples påståenden om fullständig innovation finns det en koppling till konceptet ”skriptspråk”. De traditionella stegen kod-kompilera-kör innebär att koden först kan testas efter kompilering. Kompileringen avslöjar exakt vad koden kan göra. Om koden innehåller fel resulterar kompileringen i oregelbundet beteende eller krascher. Utvecklarens uppgift blir sedan att spåra var felet ligger, åtgärda det och börja om. Denna process är både mödosam och tidskrävande, men det har varit en del av programmeringsvärlden under lång tid. Skriptspråk körs däremot steg för steg, vilket gör att du kan se resultatet medan du skriver och eliminerar behovet av felkorrigering i ett senare skede. Detta gör processen både snabbare och enklare.
Hittills har skriptspråk varit begränsade i sina kapaciteter. Ta till exempel Python, som är snabbt, men begränsas av sina möjligheter. Det är som en Formel 1-bil, perfekt för racing, men inte så praktiskt för att köpa mat.
Om du vill utveckla ett spel är inte Python det bästa alternativet, men det är Objective-C (eller C++ om du använder Windows). Swift lovar nu det bästa av flera världar, med inspiration från Objective-C, Rust, Haskell, Ruby, Python, C#, CLU och många andra (enligt Chris Lattner, en Swift-utvecklare). Swift säger sig behålla de goda egenskaperna och eliminera de dåliga från de tidigare språken. I viktiga jämförelser är Swifts prestanda snabbare än Python och betydligt snabbare än Objective-C.
Vad mer kan det göra?
Swift introducerar även en visuell realtidsmiljö, kallad ”lekplats”, där du kan se resultatet av din kod kompileras i realtid, ungefär som med ett skriptspråk. Detta kan avsevärt förkorta utvecklingstiden eftersom fel kan åtgärdas direkt. Det är som att korrigera ett misstag i en utskrift jämfört med att ändra ett rödmarkerat ord medan du skriver. Detta gör det möjligt att skapa komplexa applikationer snabbare.
Det går lite djupare. För språk på högre nivå behövde man deklarera och komma åt klasser och bibliotek för att använda funktioner, även de mest grundläggande. I C++ behövde du <iostream.h> och <conio.> för att använda grundläggande inmatning, utmatning och datatyper. I Swift är inget av detta nödvändigt. Du behöver inte deklarera bibliotek, eftersom Swift hanterar datatyper och in-/utmatningsfunktioner. Att skriva ut ”Hello world” går från:
#include<stdio.h> int main(void) { printf("Hello Worldn"); return0; }
till en enkel:
println("Hello, world")
Det är all kod som behövs. Du kommer också märka att koden inte använder det fruktade ”;”, som vanligtvis markerar slutet på en sats.
Finns det några nackdelar?
Introduktionen av Swift innebär inte slutet för Objective-C. Appar kan fortfarande utvecklas med Objective-C, och användare av Objective-C kommer att känna igen en del likheter. Men eftersom Apple har lagt ner fyra år på att utveckla ett nytt programmeringsspråk kommer de att satsa på och stödja Swift framöver. Kanske kommer Objective-C en dag att försvinna från Apples programmeringsspråk, men det är inte aktuellt i dag. Men om det finns ett nytt språk som är så lätt att lära sig och så mycket snabbare, varför skulle någon då använda Objective-C?
Det finns naturligtvis en del utmaningar. Den mest omedelbara är den omvälvning som sker inom branschen. Hela karriärer har byggts på att lära ut hur man skapar iPhone-appar. Dessa karriärer och deras elever blir direkt föråldrade. Vi kommer också se en ny våg av tidiga användare av Swift (Flappy Birds har redan skapats med Swift), vilket är både bra och dåligt. Det är bra att nytt blod tillförs, men nackdelen är att dessa nya användare kan vara oerfarna och leda till att marknaden översvämmas av dåligt gjorda appar.
Vi kommer snart att diskutera Apples ramverk för metall och dess för- och nackdelar, särskilt inom iOS-spel.
Slutsats
Om du undrar varför ingen ny hårdvara presenterades på WWDC-konferensen, så vill vi påpeka att hårdvara inte fungerar utan mjukvara. Därför var detta den största nyheten av alla. Vi får ett nytt grepp om mjukvara som kommer att förändra all framtida hårdvara. För att börja använda Swift behöver du Xcode 6 beta och ett utvecklar-ID.