Swift är öppen källkod

Det var inte så länge sedan att Apple överraskade iOS-utvecklare med Swift. På kort tid sedan dess har det haft en snabb takt vid adoption bland utvecklingssamhället. Faktum är att Swift i en undersökning utförd av Stack Overflow heter det mest älskade programmeringsspråket.

Den 3 december var Apple sann för sitt ord och officiellt gjort Swift helt öppen källkod. Med tanke på Swifts popularitet är det verkligen spännande att tänka på rörelsens konsekvenser. Vad håller framtiden för Swift och vad kan vi göra som utvecklare för att hjälpa till att forma sin utveckling?

Inte helt säker på vad öppen källkod betyder? Läs Sam Bersons artikel om öppen källkod här.

Apple och öppen källkod

Som någon som gillar att göra iOS-utveckling som ett levande, har jag alltid varit lite avundsjuk på open source-samhället. Även om det är sant att GitHub blomstrar med öppna iOS-projekt, både i Swift och Objective-C, har Apple historiskt sett inte låt iOS-gemenskapen bidra mycket till sina verktyg, ramar, IDE eller språk i någon officiell kapacitet bortsett från ResearchKit.

Nu, med Swift, har vi fått en inbjudan att hjälpa till att främja språkets framtid. Detta är en ny gräns för iOS-gemenskapen, och jag tror att det också kommer att förlänga lite goodwill från Apple till utvecklarna som arbetar på sina plattformar dagligen. Dessutom kan Swifts framtid nu sträcka sig långt bortom iOS-något vi kommer att diskutera senare.

En omedelbar fördel med detta drag är åtminstone att vi nu kan njuta av ett intimt utseende på Apples utvecklingsmetoder och processer. Faktum är att Swifts repository på GitHub har alla förpliktelser för att någon ska se, som hela tiden går tillbaka till det ursprungliga engagemanget den 17 juli 2010.

Påverkan av öppen källkod

Om du inte har tänkt på effekterna av Apples flytt till Open Source Swift, tycker jag att det är viktigt att ta ett steg tillbaka och ta en titt på det. Historien visar att öppen källkod ett mjukvaruprojekt har många fördelar.

I allmänhet mognar ett öppen källprojekt som får traktion i samhället snabbt och blir stabilare över tiden. Om samhället är aktivt involverat kan nya funktioner implementeras snabbt.

Bortsett från snabbare iterationer, hjälper samhället mjukvaran moget på ett sätt som är till nytta för dem som använder det mest. Öppet inköp av ett projekt resulterar ofta också i mer samarbete inom samhället, vilket är vinn för alla inblandade.

Listan fortsätter och fortsätter. I en värld som är beroende av teknik och verktygen bakom det, föreslår jag att du aldrig har varit viktigare och relevantare för öppen källkodsprogramvara. Kraften hos en community som arbetar med programvara kan vara ett givande, och viktigare, produktivt initiativ.

Vi har faktiskt sett Apple-partners upp med andra framstående teknikföretag för att hjälpa Swift till nästa nivå. IBM verkar ha ett stort intresse av att implementera Swift som ett serversidsspråk, och du kan redan njuta av ett fantastiskt projekt från deras ansträngningar i sin online-snabba sandlåda.

Swift kommer att utvecklas snabbt

I slutändan öppnar sourcing Swift att det kommer att förändras i snabb takt. Typiskt kan snabb förändring innebära huvudvärk för ingenjörer. Vi har även sett det här i Swift i viss mån. Swift 2 introducerade många ändringar som gjorde Swift 1-koden föråldrad och okomplicerbar.

Den viktigaste skillnaden är nu att Apple och och samhället är de som driver förändringen. Med en öppen dörr titta på vad som händer med Swift, kan utvecklare vara bättre förberedda för kommande förändringar. Iterationer i programvara bör inte vara en övning i frustration, det borde vara en positiv och välkomnad övning. Open source-mjukvaran utmärker sig i det avseendet.

För att visa detta, överväga dessa mätvärden som Swiftförvaret har upplevt på kort tid det har varit live:

  • 10 000 fördrag inträffade i det första 24 timmar
  • över 24 000 begår hittills
  • omkring ~ 400 dragförfrågan har blivit fusionerad med Swifts repositorier

Vid skrivandet är Swift också stadigt trending på # 1 platsen på GitHub. Det är ganska en prestation på kort tid, och det visar tydligt att utvecklingssamhället i stort är redo och villigt att bidra.

Som utvecklare är det energisk för att se språket som anpassas redan med en "öppen källkod". Till exempel har den populära iOS-utvecklaren och författaren Erica Sadun redan gjort ett övertygande fall för att ta bort C-Style looping i Swift. Dessutom, -- och ++ Operatörer är sannolikt på väg ut också.

Med tanke på dessa fakta ser vi redan den snabba fördelen av att vara öppen källkod. Det är inte bara modet, det görs kompatibelt med andra plattformar bortsett från iOS, men utvecklare kan också se förändringarna som händer offentligt. Att anpassa kodbaser till Swift 3 borde verkligen inte vara något problem, för vi behöver inte längre vänta på nästa WWDC för att bli gjort medveten om framsteg på språket.

Var ska man börja

Med tanke på open source-påverkan kanske du undrar hur man engagerar sig själv. Open source-programvaran kan initialt vara lite skrämmande om du inte har varit involverad i det tidigare. Här vill jag påpeka några sätt att du kan få en bättre känsla för öppen källkod och särskilt Swift.

Sociala försäljningsställen

Ett bra ställe att börja engagera sig med open source Swift är diskussionerna själva. Inte överraskande, en hel del av dessa diskussioner härrör från Twitter. Några framstående buggfixar som nämns över Twitter har till och med blivit fixade innan Swift öppnades.

Utvecklare kan enkelt rösta sina idéer för Swift med hjälp av Twitters låga hinder för tillträde. Dessutom behöver du inte gå igenom processen med att bidra med kod ännu. Det är ett lågt stress sätt att börja bidra till Swift.

Det är också roligt och pedagogiskt att interagera med Swifts utvecklare. De var ganska aktiva på Twitter som ledde till open source-flyttningen, och ännu mer efter det. Som sagt, här är några Apple-ingenjörer som omedelbart är inblandade i Swift.

Chris Lattner @ Clattner_llvm

Chris ansvarar för att föra oss Swift och han var också den ursprungliga författaren till LLVM-kompilatorinfrastrukturen. Naturligtvis är han alltid engagerad i Swift community. Han har faktiskt accepterat dragförfrågningar klockan 22:00 på en lördag. Att säga att han är aktivt involverad i projektet skulle vara en underdrift.

Jordanien Rose @UINT_MIN

Jordanien är en annan förstklassig ingenjör från Apple som främst fokuserar på Swift. Liksom Chris är Jordan också en stor resurs för att ta upp svåra frågor eller problem.

Joe Groff @ jckarter

Joe är också en begåvad ingenjör som arbetar med Swift. Han har svarat på flera frågor om Swift och är alltid glad att engagera sig i samhället.

Bidragande kod

Swifts open source-initiativ drivs genom den populära GitHub-plattformen. Om du inte är bekant med GitHub eller Git i allmänhet, kan du bidra till Swift ganska skrämmande. Om det är fallet för dig, rekommenderar jag starkt att du känner till dessa verktyg först och det här är ett bra ställe att börja.

För att komma igång måste du skapa en lokal miljö. Swifts GitHub README är en utmärkt guide att följa, så jag kommer inte att upprepa de här stegen här. I grund och botten är det bara några kommandon från kommandoraden och interaktioner med förvaret, och du kommer att vara igång.

Starta Small

När man bidrar till öppen källkodsprogramvara eller någon programvara i allmänhet är det bra att börja med ett litet och hanterbart mål. I själva verket uppmuntrar Chris Lattner det.

Försök hitta några delar av kodbasen och bli bekanta med dem. Därifrån kommer du att vara bättre lämpad för att se vad som kan förbättras. Personligen är det första steget jag skulle ta att läsa Swift Bidragande Guide.

Swift Open Source-projekt

Några spännande (och överraskande) nyheter som kom från Swifts open source-meddelande var några projekt som utvecklas med språket. Några av dem förväntades, som kompilatorn och standardbiblioteket, och några var helt nya initiativ.

Var och en av de fyra stora projekten utvecklas öppet, så bidrag är välkomna. Låt oss ta en kort titt på var och en av dem nu.

Kompilator och standardbibliotek

Hämtad från swift.org är Swifts kompilator huvudsakligen ansvarig för att översätta Swift källkod till effektiv, exekverbar maskinkod. Även om du inte har en djup förståelse för kompilatorer eller hur de fungerar är det fascinerande att bläddra igenom koden om endast för utbildningsändamål.

Den andra delen av detta projekt, standardbiblioteket, är sannolikt något som de flesta utvecklare kommer att känna till. Det rymmer allt från de mest grundläggande datatyperna, till exempel int och Dubbel typer, till avancerade samlingstyper, till exempel Array och Ordbok.

Om du är en ivrig Swift-utvecklare, har du nu makt att hjälpa till att mögla hur dessa typer fungerar. Eller om du vill ha en specialfunktionssats som är specifik för dina behov, kan du till och med gaffla förvaret och anpassa Swifts typer som du tycker är lämplig.

Swift Package Manager

IOS-community har sett flera olika sätt att distribuera kod. Några populära val är Cocoapods och Carthage. Nu kan vi lägga till Swift Package Manager till den listan.

Även om det är i de mycket tidiga utvecklingsstadierna, är det det projekt jag tycker mest intressant. Faktum är att det för närvarande inte stöder iOS, tVOS eller watchOS. Medan stöd för dessa plattformar säkert kommer, när det mognar, kan det eventuellt användas för att distribuera Swift-kod långt bortom bara iOS eller OS X.

Kärnbibliotek

Swift Core Library-projektet är nära relaterat till standardbiblioteket, förutom att det ger högre orderfunktionalitet. Verktyg som ingår i detta projekt är typiskt plattform agnostiska begrepp.

Kärnbiblioteksprojektet innehåller till exempel funktionalitet för JSON-analysering, enhetstestning och interagerande med filsystemet. Dessa är verktyg som kommer att bero på oavsett vilken plattform eller projekt som finns.

För att sätta detta projekt i mer relatable termer för iOS och OS X utvecklare, är libdispatch inrymt här. Du är troligen bekant med det eftersom det är där Grand Central Dispatch kommer från. Det sagt är det meningsfullt att det ingår i Core Libraries, eftersom körning av samtidig kod inte är en uppgift specifikt för bara iOS eller OS X.

REPL och Debugger

Slutligen är REPL- och Debugger-projektet förmodligen lite självförklarande. Projektet ansvarar för implementeringen av Swifts fullständiga felsökningsserie. LLDB debugger är något som utvecklare har använt under en längre tid, eftersom det ingår i Xcode.

REPL och Debugger är dock mycket kopplade, vilket är meningsfullt eftersom de ger liknande värde på många sätt. REPL står för "Läs Eval Print Loop" och det är bra att använda för lätt Swift-kod. Om du öppnar terminal och skriver "Swift" startar du Swift REPL lokalt.

Som du kan se finns det verkligen ingen brist på projekt eller komponenter i Swift att bidra till. Trots att cliche som det låter är det bara början och flera nya projekt kommer att komma över tiden.

Medel

För att lägga upp, vill jag lämna dig några resurser som du kan använda för att öka din kunskap om Swifts open source-landskap.

Swift.org

Detta är den officiella destinationen för alla Swifts utveckling. Den innehåller guider för att komma igång, sammanfattningar av alla pågående projekt och mer. Detta borde vara ditt näve stopp om du vill bli involverad.

Apples Swift Blog

Medan den här har funnits en stund, om du inte har besökt den innan du borde. Den innehåller mycket användbar information om Swift och dess arkitektur skriven av Chris Lattner. Även om det återstår att se om det kommer att behållas i stället för swift.org, är det fortfarande en värdefull resurs.

Swift's GitHub-sida

Jag har nämnt detta ett par gånger nu, men det här är all Swifts utveckling som äger rum. Om du vill bläddra i koden, gaffelförråd eller skicka in dragförfrågningar, så är det här.

Swift's Evolution Mailing List

Det här är en utmärkt adresslista för att prenumerera på om du är intresserad av att se hur Swift kommer att utvecklas och vilken riktning språket tar. Dessutom finns det flera andra postlistor att överväga att prenumerera på, vilka alla diskuterar olika aspekter av Swifts utveckling. Du kan se dem alla här.

Swift's Bug Board

Som alla andra program har Swift buggar. Detta är den centrala platsen som Swift-teamet använder för att spåra fel och följa dem tills de är löst. Bortsett från fel kan förbättringar också föreslagas här.

Slutsats

Swift kommer att spela en stor roll i utvecklingen av iOS framöver. Jag tror att utvecklare har vetat det sedan det meddelades på WWDC 14. Vad är spännande är att det nu kommer att manifestera sig utanför bara Apples plattformar. Tänk dig att använda Swift som ett serversidsspråk när du utvecklar ett API?

Kanske viktigare än Swifts tillväxt är det faktum att samhället kommer att driva förändringen. Öppen sourcing Swift öppnar många dörrar för både dig och språket. Nu är det dags att engagera sig, så börja läsa de bidragande riktlinjerna och jag ser fram emot att se ditt nästa engagemang i Swift repository.