En introduktion till Apples nya programmeringsspråk: Swift

I år på WWDC var fokus så hårt på iOS 8 och OS X Yosemite, att det som borde ha varit den största nyheten om evenemanget blev ganska underskattat. Apple introducerade programmeringsspråket Swift för världen. Detta, för slutanvändaren, är knappt någon nyhet. Men för utvecklargemenskapen kan det lika gärna vara en game changer. Vissa programmeringsspråk har klara fördelar gentemot andra programmeringsspråk, vissa är snabbare, vissa mer effektiva, vissa är bara renare, vissa otroligt enkla. Apple är det senaste företaget som skapat sitt eget programmeringsspråk efter Googles Go (Golang) och Microsofts .Net Framework. Swift Programming Language hävdar att de har lärt sig av dessa språk, samtidigt som de hållit sig trogen mot sin Objective C-föregångare. Apple hävdar att de har skapat det snabbaste och mest robusta programmeringsspråket på hög nivå. Låt oss förklara.

Varför behöver vi programmeringsspråk?

Det finns en hel del sätt att få en enhet att göra ”saker”. Vilken enhet som helst, från moderna bärbara prylar till traditionella datorer, kan göras för att göra saker med antingen det gammalmodiga sättet med maskinspråk, att skriva i råbytekod/sammansättningsspråk, skapa varje instruktion för hand; eller så kan du lita på språk på hög nivå som hjälper till att minska en del av tröttheten. Det är därför det är mer fokus på att föra utvecklarspråk så nära normalt språk som möjligt. Vi förstår att namnet Swift lockar fler utvecklare än åskådare, men vi kommer ändå att förenkla förklaringen för att hjälpa dig förstå tekniken som kommer att styra framtida generationer av Apple-produkter.

En snabb primer: Elektroniska enheter är bokstavligen de dummaste saker som mänskligheten känner till, utan all programmering skulle de reduceras till bara prydnadsföremål. Det som ger dem någon verklig funktion är programmeringen. På en väldigt grundläggande nivå behöver elektroniken berättas, handling för handling, vad den behöver göra, det var vad vi brukade göra med hålkort och senare med maskinspråk. Sedan gick vi framåt i tiden för att utveckla språk som låter oss kommunicera med maskiner på ett relativt mer naturligt sätt (ja, kod är faktiskt en enklare version av vad det kan vara). Vi skulle skriva kod, den skulle kompileras till något som datorn förstår och sedan exekveras. Så, för att sammanfatta, kod-kompilera-kör.

Varför Swift?

Nu kan du föreställa dig att den mest relevanta frågan är ”Varför?”. C, språket är från 70-talet, bröt betydande ny mark vid den tiden, sedan kom dess off-shoot, Mål C på 80-talet. Apple har använt den plattformen för utveckling sedan dess. Logiken dikterar, ”om det inte är trasigt, fixa det inte”, och om det har fungerat i 30 år i rad, vad kan problemet vara? Jo det. Apple har använt Objective C i decennier nu. Dags för något snabbare, kraftfullare, enklare. Ange Swift.

Enligt officiella e-bok på Swift (tillgängligt gratis på iTunes) ”Swift är 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 för C-kompatibilitet. Swift antar säkra programmeringsmönster och lägger till moderna funktioner för att göra programmeringen enklare, mer flexibel och roligare. Swifts rena blad, uppbackad av de mogna och omtyckta ramverken Cocoa och Cocoa Touch, är en möjlighet att ompröva hur mjukvaruutveckling fungerar.”

Varför är Swift viktig?

Så mycket som Apple vill att du ska tro på deras helhjärtade innovation, har det funnits en idé om ”skriptspråk”. De traditionella code-compile-execute-parametrarna kräver att du kan se din kod i aktion först efter att den har kompilerats. Kompileringen visar dig exakt vad din kod kan. Om din kod har fel kommer kompileringen att resultera i oregelbundet beteende eller kraschar. Sedan blir kodarens uppgift att spåra var felet ligger, att åtgärda det och sedan börja om på nytt. Denna process är både mödosam och tidskrävande, men det är något som programmeringsvärlden alltid har levt med; det är så det alltid har varit. Skriptspråk körs rad för rad så att du kan se resultat medan du skriver, vilket eliminerar behovet av att granska din kod för fel vid ett senare tillfälle. Gör processen snabbare och så mycket enklare.

Hittills har skriptspråken varit begränsade i sina förmågor. Ta Python till exempel, den är blixtsnabb, men den är också begränsad till enklare saker med begränsade möjligheter. Som en Forumla1-bil, perfekt för racing, inte så mycket för att få matvarorna.

Om du vill göra ett spel, så är Python inte din favoritmiljö. Men Objective-C är (eller C++ om du använder Windows). Nu lovar Swift det bästa av båda (faktiskt många) världar, med inspiration från Objective-C, Rust, Haskell, Ruby, Python, C#, CLU och alldeles för många andra för att lista (referens: Swift-utvecklare/expert) Chris Lattner). Swift påstår sig behålla de goda sakerna och förlora de dåliga sakerna från ovanstående. I viktiga benchmarks är dess exekvering snabbare än Python och mycket snabbare än Objective-C, så det har kommit igång bra.

Vad gör det mer?

Swift tar också med en visuell realtidsmiljö som kallas ”lekplats” där du kan se ditt resultat kompileras i realtid, ungefär som ett skriptspråk. Detta, baserat på designen av appen, kan få ner hela processer till några minuter, för om något går fel kommer du genast att veta vad som orsakade det och kan åtgärda det direkt där. Det är programmeringsmotsvarigheten att fixa ett misstag på en utskrift kontra att fixa ett rött understruket ord när du går vidare. Så att du kan skapa komplexa appar snabbare.

Det går lite djupare. För språk på hög nivå var du tvungen att deklarera och komma åt klasser och bibliotek för att engagera funktioner, oavsett hur grundläggande. i C++ Du skulle behöva och för att kunna använda grundläggande input, output och datatyper i din kod. I Swift är dock inget av det nödvändigt. Du skulle inte behöva deklarera några bibliotek, eftersom Swift kommer att hantera vad varje datatyp och io (input/output) funktion behöver och kommer att engagera biblioteket själv. Så att skriva ut något så enkelt som ”Hello world”, går från

#include<stdio.h>
int main(void)
{
  printf("Hello Worldn");
  return0;
}

till en enkel:

println("Hello, world")

Det är hela koden som måste kompileras. Du kommer också att märka att koden inte använder det fruktade ”;” som ett universellt tecken på en slutsats.

Vilka är nackdelarna?

Nu betyder existensen av Swift inte den omedelbara döden av Objective-C och alla dess sätt. Appar kan fortfarande skapas med Objective-C och infödda Objective C-användare kommer inte att känna sig helt främmande eftersom det finns likheter i dessa miljöer. Naturligtvis, eftersom Apple precis tillbringade fyra år med att arbeta på ett nytt programmeringsspråk, kommer de att fokusera på att driva och stödja Swift, nu och i framtiden. Kanske kommer de en dag att radera Objective-C från annalerna över Apples programmeringsspråk, men den dagen är inte idag. Men om ett nytt språk är ute, ett som är så lätt att lära sig och är så mycket snabbare, varför skulle någon då hålla ut det med Objective-C?

Det finns naturligtvis några bekymmer, den omedelbara är omvälvningen i branschen. Hela karriärer har skapats kring att lära människor hur man gör iPhone-appar, de karriärerna och deras elever har omedelbart blivit föråldrade, det kommer att bli massor av omstruktureringar på den fronten. Vi kommer också att få en ny skörd av tidiga adaptrar till Swift (Flappy Birds har redan skapats med Swift), vilket är både bra och dåligt. Bra att nytt blod kommer att injiceras i organismen, det dåliga är att detta nya blod kommer att vara oerfaret och kommer att översvämma marknaden med dåligt gjorda appar.

Vi kommer snart att diskutera Apples metallramverk, diskutera dess fördelar och nackdelar, särskilt inom iOS-spel.

Slutsats

Om du undrar varför det inte tillkännagavs någon ny hårdvara vid WWDC-konferensen, så hänvisar vi dig igen till vårt tidigare uttalande att hårdvara ensam inte kan göra någonting förrän mjukvaran bakom den inte fungerar. Så detta var bokstavligen den största nyheten genom tiderna. Att vi får ett nytt grepp om mjukvara som kommer att förändra ansiktet på all hårdvara, i framtiden. För att få Swift behöver du Xcode 6 beta och ett utvecklar-ID.

Få Swift här