En introduksjon til Apples nye programmeringsspråk: Swift

I år på WWDC var fokuset så sterkt på iOS 8 og OS X Yosemite, at det som burde vært den største nyheten om arrangementet, ble ganske undervurdert. Apple introduserte programmeringsspråket Swift til verden. Dette, for sluttbrukeren, er knapt en nyhet. For utviklerfellesskapet kan det imidlertid like gjerne være en spillskifter. Enkelte programmeringsspråk har klare fordeler fremfor andre programmeringsspråk, noen er raskere, noen mer effektive, noen er bare renere, noen utrolig enkle. Apple er det siste firmaet som har laget sitt eget programmeringsspråk etter Googles Go (Golang) og Microsofts .Net Framework. Swift Programming Language hevder å ha lært av disse språkene, mens de holder seg tro mot forgjengeren for Objective C. Apple hevder å ha laget det raskeste og mest robuste programmeringsspråket på høyt nivå. La oss forklare.

Hvorfor trenger vi programmeringsspråk?

Det er ganske mange måter å få en enhet til å gjøre «ting». Enhver enhet, fra moderne bærbare dingser til tradisjonelle datamaskiner, kan lages for å gjøre ting ved å bruke enten den gammeldagse måten for maskinspråk, skriving i råbytekode/monteringsspråk, og laging av hver instruksjon for hånd; eller du kan stole på språk på høyt nivå som vil bidra til å redusere noe av kjedeligheten. Derfor er det mer fokus på å bringe utviklerspråk så nært normalt språk som mulig. Vi forstår at navnet Swift tiltrekker seg flere utviklere enn det gjør tilskuere, men vi vil fortsatt forenkle forklaringen for å hjelpe deg å forstå teknologien som vil kontrollere fremtidige generasjoner av Apple-produkter.

En rask primer: Elektroniske enheter er bokstavelig talt de dummeste tingene som er kjent for menneskeheten, uten all programmeringen ville de blitt redusert til bare ornamenter. Det som gir dem noen reell funksjon, er programmeringen. På et helt grunnleggende nivå må elektronikk fortelles, handling for handling, hva de trenger å gjøre, det var det vi pleide å gjøre med hullkort og senere med maskinspråk. Så gikk vi fremover i tid for å utvikle språk som lar oss kommunisere med maskiner på en relativt mer naturlig måte (ja, kode er faktisk en enklere versjon av hva det kan være). Vi ville skrive kode, den ville bli kompilert til noe datamaskinen forstår og deretter utført. Så for å oppsummere, code-compile-execute.

Hvorfor Swift?

Nå kan du forestille deg at det mest relevante spørsmålet er «Hvorfor?». C, språket er fra 70-tallet, brøt betydelig ny mark på den tiden, så kom dens off-shoot, mål C på 80-tallet. Apple har brukt den plattformen for utvikling siden den gang. Logikken tilsier, «hvis det ikke er ødelagt, ikke fiks det», og hvis det har fungert i 30 år på rad, hva kan være problemet? Vel, det. Apple har brukt Objective C i flere tiår nå. På tide med noe raskere, kraftigere, enklere. Gå inn i Swift.

Ifølge offisiell e-bok på Swift (tilgjengelig gratis på iTunes) «Swift er et nytt programmeringsspråk for iOS- og OS X-apper som bygger på det beste fra C og Objective-C, uten begrensningene til C-kompatibilitet. Swift tar i bruk sikre programmeringsmønstre og legger til moderne funksjoner for å gjøre programmering enklere, mer fleksibel og morsommere. Swifts rene tavle, støttet av de modne og høyt elskede Cocoa- og Cocoa Touch-rammeverket, er en mulighet til å tenke nytt om hvordan programvareutvikling fungerer.»

Hvorfor er Swift viktig?

Så mye som Apple ønsker at du skal tro på deres helhjertede innovasjon, har det vært en idé om «skriptspråk». De tradisjonelle code-compile-execute-parametrene krever at du først kan se koden i aksjon etter at den er kompilert. Kompilering viser deg nøyaktig hva koden din er i stand til. Hvis koden din har feil, vil kompileringen resultere i ujevn oppførsel eller krasjer. Da blir koderens jobb å spore opp hvor feilen ligger, fikse den og så starte på nytt. Denne prosessen er både krevende og tidkrevende, men det er noe programmeringsverdenen alltid har levd med; det er slik ting alltid har vært. Skriptspråk kjøres linje for linje slik at du kan se resultater mens du skriver, og eliminerer behovet for å se gjennom koden for feil på et senere tidspunkt. Gjør prosessen raskere og mye enklere.

Til dags dato har skriptspråk vært begrenset i sine evner. Ta Python for eksempel, det er lynraskt, men det er også begrenset til enklere ting med begrensede muligheter. Som en Forumla1-bil, flott for racing, ikke så mye for å skaffe dagligvarer.

Hvis du vil lage et spill, så er ikke Python ditt beste miljø. Imidlertid er Objective-C (eller C++ hvis du er på Windows). Nå lover Swift det beste fra begge (faktisk mange) verdener, og henter inspirasjon fra Objective-C, Rust, Haskell, Ruby, Python, C#, CLU og alt for mange andre til å liste opp (referanse: Swift-utvikler/ekspert) Chris Lattner). Swift hevder å beholde de gode tingene og miste de dårlige tingene fra ovenstående. I sentrale benchmarks er utførelsen raskere enn Python og mye raskere enn Objective-C, så den har en god start.

Hva annet gjør det?

Swift bringer også et visuelt miljø i sanntid kalt «lekeplass» hvor du kan se resultatet kompileres i sanntid, omtrent som et skriptspråk. Dette, basert på utformingen av appen, kan bringe hele prosesser ned til noen få minutter, for hvis noe går galt, vil du umiddelbart vite hva som forårsaket det og kan adressere det akkurat der. Det er programmeringsekvivalenten med å fikse en feil på en utskrift versus å fikse et rødt understreket ord mens du fortsetter. Lar deg lage komplekse apper raskere.

Det går litt dypere. For språk på høyt nivå ble du pålagt å deklarere og få tilgang til klasser og biblioteker for å engasjere funksjoner, uansett hvor grunnleggende. i C++ Du trenger og for å bruke grunnleggende input, output og datatyper i koden. I Swift er imidlertid ingenting av det nødvendig. Du trenger ikke å deklarere noen biblioteker, siden Swift vil administrere hva hver datatype og io (input/output)-funksjon trenger og vil engasjere biblioteket selv. Så, å skrive ut noe så enkelt som «Hello world», går fra

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

til en enkel:

println("Hello, world")

Det er hele koden som må kompileres. Du vil også legge merke til at koden ikke bruker den fryktede «;» som et universelt tegn på en slutterklæring.

Hva er ulempene?

Nå betyr ikke eksistensen av Swift den umiddelbare døden til Objective-C og alle dens måter. Apper kan fortsatt lages ved hjelp av Objective-C, og opprinnelige Objective C-brukere vil ikke føle seg helt fremmedgjorte siden det er likheter i disse miljøene. Siden Apple nettopp brukte fire år på å jobbe med et nytt programmeringsspråk, vil de selvfølgelig fokusere på å presse og støtte Swift, nå og i fremtiden. Kanskje en dag vil de slette Objective-C fra annalene til Apples programmeringsspråk, men den dagen er ikke i dag. Men hvis et nytt språk er ute, et som er så enkelt å lære og er så mye raskere, hvorfor skulle noen da holde det ut med Objective-C?

Det er selvfølgelig noen bekymringer, den umiddelbare er omveltningen i bransjen. Hele karrierer har blitt smidd rundt å lære folk hvordan man lager iPhone-apper, disse karrierene og studentene deres har umiddelbart blitt foreldet, det vil være mye omstrukturering på den fronten. Vi vil også få en ny avling av tidlige adaptere til Swift (Flappy Birds allerede laget med Swift), noe som er både bra og dårlig. Bra at nytt blod vil bli sprøytet inn i organismen, det dårlige er at dette nye blodet vil være uerfarent og vil oversvømme markedet med dårlig laget apper.

Vi skal snart diskutere Apples metallrammeverk, og diskutere fordeler og ulemper, spesielt i iOS-spill.

Konklusjon

Hvis du lurer på hvorfor det ikke ble annonsert ny maskinvare på WWDC-konferansen, vil vi henvise deg igjen til vår tidligere uttalelse om at maskinvare alene ikke kan gjøre noe før programvaren bak den ikke fungerer. Så dette var bokstavelig talt den største nyheten gjennom tidene. At vi får et nytt grep om programvare som vil endre ansiktet til all maskinvare, i fremtiden. For å få Swift trenger du Xcode 6 beta og en utvikler-ID.

Få Swift her