Swift è open source

Non è passato molto tempo da quando Apple ha sorpreso gli sviluppatori iOS con Swift. Nel breve tempo da allora, ha goduto di un rapido ritmo di adozione tra la comunità di sviluppo. Infatti, in un sondaggio condotto da Stack Overflow, Swift è stato nominato il linguaggio di programmazione più amato.

Il 3 dicembre, Apple è rimasta fedele alla sua parola e ha ufficialmente reso Swift completamente open source. Data la popolarità di Swift, è certamente emozionante pensare alle implicazioni della mossa. Cosa riserva il futuro a Swift e cosa possiamo fare come sviluppatori per contribuire a plasmare la sua evoluzione?

Non sei sicuro di cosa significhi l'open source? Leggi l'articolo di Sam Berson sull'open source qui.

Apple e Open Source

Come qualcuno che si diverte a vivere lo sviluppo di iOS, sono sempre stato un po 'geloso della comunità open source. Mentre è vero che GitHub è fiorente con progetti iOS open source, sia in Swift che in Objective-C, storicamente Apple non ha permesso alla comunità iOS di contribuire molto ai suoi strumenti, framework, IDE o lingue in qualsiasi capacità ufficiale oltre a ResearchKit.

Ora, con Swift, ci è stato dato un invito per aiutare a promuovere il futuro della lingua. Questa è una nuova frontiera per la comunità iOS, e credo che estenderà anche un po 'di buona volontà da parte di Apple agli sviluppatori che lavorano quotidianamente sulle loro piattaforme. Inoltre, il futuro di Swift può ora andare ben oltre iOS, qualcosa di cui parleremo in seguito.

Un vantaggio immediato di questa mossa, almeno per me, è che ora possiamo godere di uno sguardo intimo alle pratiche e ai processi di sviluppo di Apple. In effetti, il repository di Swift su GitHub ha tutti i permessi che chiunque può visualizzare, risalendo fino al commit iniziale il 17 luglio 2010.

Impatto dell'Open Source

Se non hai pensato all'impatto della mossa di Apple verso l'open source Swift, penso che sia importante fare un passo indietro e dare un'occhiata a questo. La storia dimostra che l'open source di un progetto software ha molti vantaggi.

In generale, un progetto open source che guadagna terreno nella comunità matura rapidamente, diventando più stabile nel tempo. Se la comunità è attivamente coinvolta, le nuove funzionalità possono essere implementate rapidamente.

A parte le iterazioni più veloci, la community aiuta il software a maturare in un modo che è vantaggioso per chi lo usa di più. Aprire un progetto di sourcing spesso porta anche a una maggiore collaborazione all'interno della comunità, che è vincente per tutti i soggetti coinvolti.

La lista potrebbe continuare all'infinito. In un mondo che dipende dalla tecnologia e dagli strumenti sottostanti, ti suggerirei che non è mai stato più importante e rilevante per il software open source. Il potere di una comunità che lavora sul software può essere una iniziativa gratificante e, soprattutto, produttiva.

In effetti, abbiamo persino visto Apple collaborare con altre importanti aziende tecnologiche per portare Swift al livello successivo. IBM sembra avere un grande interesse nell'implementazione di Swift come linguaggio lato server, e puoi già goderti un incredibile progetto dai loro sforzi nella loro sandbox online veloce.

Swift si evolverà rapidamente

Alla fine, l'open source di Swift significa che cambierà rapidamente. In genere, un cambiamento veloce potrebbe significare mal di testa per gli ingegneri. Abbiamo persino visto questo in Swift in una certa misura. Swift 2 ha introdotto molte modifiche che hanno reso il codice Swift 1 obsoleto e noncompatibile.

La differenza fondamentale ora è che Apple e e la comunità sono quelli che guidano il cambiamento. Con una porta aperta guarda cosa sta succedendo a Swift, gli sviluppatori possono essere meglio preparati per i cambiamenti imminenti. Le iterazioni nel software non dovrebbero essere un esercizio di frustrazione, dovrebbe essere una pratica benefica e gradita. Il software open source eccelle in tal senso.

Per dimostrarlo, considera queste metriche che il repository Swift ha sperimentato nel breve periodo in cui è stato pubblicato:

  • 10.000 commit si sono verificati nel primo 24 ore
  • fino ad oggi oltre 24.000 impegni
  • circa 400 richieste di pull sono state unite ai repository di Swift

Al momento della stesura di questo, Swift è costantemente in trend al primo posto su GitHub. Questo è un bel risultato in un breve lasso di tempo, e mostra chiaramente che la comunità di sviluppo in generale è pronta e disposta a contribuire.

Come sviluppatore, è eccitante vedere la lingua adattarsi a un ritmo "open source" già. Ad esempio, la popolare sviluppatrice e autrice di iOS Erica Sadun ha già fatto un caso convincente per rimuovere il loop C-Style in Swift. Inoltre, -- e ++ anche gli operatori stanno per uscire.

Considerando questi fatti, stiamo già vedendo Swift beneficiare di essere open source. Non solo sta maturando, essendo reso compatibile con altre piattaforme oltre a iOS, ma gli sviluppatori possono anche vedere i cambiamenti accadere pubblicamente. Adattare le codebase per Swift 3 non dovrebbe essere un problema, perché non è più necessario attendere che il prossimo WWDC venga informato dei progressi della lingua.

Dove iniziare

Considerando l'impatto dell'open source, ti starai chiedendo come farti coinvolgere. Il software open source può inizialmente risultare un po 'intimidatorio se non si è stati coinvolti in esso in precedenza. Qui, vorrei sottolineare alcuni modi in cui è possibile ottenere una migliore sensazione per il software open source, e Swift in particolare.

Outlet sociali

Un buon punto di partenza per essere coinvolti con l'open source Swift sono le discussioni stesse. Non sorprende che molte di queste discussioni abbiano avuto origine su Twitter. Alcune importanti correzioni di bug menzionate su Twitter sono state persino risolte prima che Swift fosse open source.

Gli sviluppatori possono facilmente dare voce alle loro idee per Swift usando la barriera bassa di Twitter per entrare. Inoltre, non devi ancora completare il processo di contribuzione del codice. È un modo poco stressante per iniziare a contribuire a Swift.

È anche divertente ed educativo interagire con gli sviluppatori di Swift. Erano abbastanza attivi su Twitter che portavano alla mossa open source, e ancora di più dopo di essa. Detto questo, ecco alcuni ingegneri Apple che sono immediatamente coinvolti con Swift.

Chris Lattner @clattner_llvm

Chris è responsabile di averci portato Swift ed è stato anche l'autore originale dell'infrastruttura di compilazione LLVM. Naturalmente, è sempre impegnato con la comunità Swift. In effetti, ha persino accettato richieste di richiamo alle 10:00 di sabato. Dire che è coinvolto attivamente nel progetto sarebbe un eufemismo.

Jordan Rose @UINT_MIN

Jordan è un altro ingegnere di punta di Apple che si concentra principalmente su Swift. Come Chris, anche Jordan è un'ottima risorsa per sollevare domande o dubbi di Swift.

Joe Groff @ jckarter

Joe è anche un ingegnere di talento che lavora su Swift. Ha risposto a diverse domande su Swift ed è sempre felice di impegnarsi con la comunità.

Codice contributivo

L'iniziativa open source di Swift viene eseguita attraverso la famosa piattaforma GitHub. Se non hai familiarità con GitHub o Git in generale, contribuire a Swift può essere una prospettiva piuttosto intimidatoria. Se è il tuo caso, ti consiglio vivamente di familiarizzare con questi strumenti e questo è un buon punto di partenza.

Per iniziare, devi configurare un ambiente locale. Il GitHub README di Swift è un'eccellente guida da seguire, quindi non ripeterò questi passaggi qui. Fondamentalmente, dopo pochi comandi dalla riga di comando e le interazioni con il repository, sarai attivo e funzionante.

Inizia piccolo

Quando contribuisci a software open source o software in generale, è bene iniziare con un obiettivo piccolo e gestibile. Infatti, Chris Lattner lo incoraggia.

Prova a trovare alcuni pezzi del codice base e familiarizzare con loro. Da lì, sarai più adatto a vedere cosa potrebbe essere migliorato. Personalmente, il primo passo che vorrei fare è leggere la Guida di Swift.

Progetti Swift Open Source

Alcune notizie entusiasmanti (e sorprendenti) provenienti dall'annuncio open source di Swift sono state alcuni progetti in fase di sviluppo con la lingua. Alcuni di essi erano attesi, come il compilatore e la libreria standard, e alcuni erano iniziative nuove di zecca.

Ciascuno dei quattro progetti principali è sviluppato apertamente, quindi i contributi sono benvenuti. Diamo una breve occhiata a ciascuno di essi ora.

Compilatore e libreria standard

Tratto da swift.org, il compilatore di Swift "è principalmente responsabile della traduzione del codice sorgente Swift in un codice macchina efficiente ed eseguibile". Anche se non si ha una conoscenza approfondita dei compilatori o di come funzionano, è affascinante sfogliare il suo codice se solo per scopi educativi.

Il secondo componente di questo progetto, la libreria standard, è probabilmente qualcosa che la maggior parte degli sviluppatori avrà familiarità con. Ospita tutto, dai tipi di dati più fondamentali, come ad esempio Int e Doppio tipi, a tipi di raccolta avanzati, come schieramento e Dizionario.

Se sei uno sviluppatore avido di Swift, ora hai il potere di aiutare a modellare il funzionamento di questi tipi. Oppure, se volevi un set di funzioni specializzate specifiche per le tue esigenze, potresti persino inserire il repository e personalizzare i tipi di Swift come ritieni opportuno.

Swift Package Manager

La comunità iOS ha visto diverse strade per distribuire il codice. Alcune scelte popolari includono Cocoapods e Cartagine. Ora possiamo aggiungere Swift Package Manager a quell'elenco.

Anche se è nelle primissime fasi di sviluppo, questo è il progetto che trovo più interessante. Infatti, al momento non supporta iOS, tVOS o watchOS. Mentre il supporto per queste piattaforme arriverà sicuramente, con la sua scadenza, potrebbe essere potenzialmente utilizzato per distribuire il codice Swift ben oltre iOS o OS X.

Core Libraries

Il progetto della libreria Swift Core è strettamente correlato alla libreria standard, tranne per il fatto che fornisce funzionalità di ordine superiore. Gli strumenti inclusi in questo progetto sono in genere concetti di agnostica della piattaforma.

Ad esempio, il progetto della libreria di base contiene funzionalità per l'analisi di JSON, il test delle unità e l'interazione con il file system. Questi sono strumenti che dipenderanno da qualsiasi piattaforma o progetto a portata di mano.

Per mettere questo progetto in termini più comprensibili per gli sviluppatori iOS e OS X, libdispatch è ospitato qui. Probabilmente lo conosci, visto che è da dove proviene Grand Central Dispatch. Detto questo, ha senso che è incluso nelle Core Libraries poiché l'esecuzione di codice simultaneo non è un'attività specifica solo per iOS o OS X.

REPL e Debugger

Infine, il progetto REPL e Debugger è probabilmente un po 'auto-esplicativo. Questo progetto è responsabile dell'implementazione della suite completa di debug di Swift. Il debugger LLDB è qualcosa che gli sviluppatori hanno utilizzato da un po 'di tempo, perché è incluso in Xcode.

Tuttavia, REPL e Debugger sono altamente accoppiati, il che ha senso in quanto forniscono un valore simile in molti modi. REPL sta per "Read Eval Print Loop" ed è fantastico da usare per il codice Swift leggero. Se apri il terminale e digiti "Swift", inizierai a eseguire Swift REPL localmente.

Come puoi vedere, non c'è certamente nessuna carenza di progetti o componenti di Swift a cui contribuire. Sebbene, come suona un cliché, questo è solo l'inizio e diversi nuovi progetti emergeranno nel tempo.

risorse

Per concludere, mi piacerebbe lasciarvi con alcune risorse che è possibile utilizzare per approfondire la conoscenza del panorama open source di Swift.

Swift.org

Questa è la destinazione ufficiale per tutto lo sviluppo di Swift. Include guide per iniziare, riassunti di tutti i progetti in corso e altro ancora. Questo dovrebbe essere il tuo primo stop se vuoi essere coinvolto.

Blog Swift di Apple

Mentre questo è in circolazione da un po ', se non lo hai visitato prima di quanto dovresti. Contiene molte informazioni utili su Swift e la sua architettura scritta da Chris Lattner. Anche se resta da vedere se verrà mantenuto al posto di swift.org, è comunque una risorsa preziosa.

Pagina GitHub di Swift

L'ho menzionato alcune volte adesso, ma è qui che si svolge tutto lo sviluppo di Swift. Se desideri consultare il codice, aprire un fork repository o inviare richieste pull, questo è dove accade.

Mailing list di Evolution di Swift

Questa è un'ottima mailing list da sottoscrivere se sei interessato principalmente a vedere come si evolverà Swift e la direzione che sta prendendo la lingua. Inoltre, ci sono diverse altre mailing list da considerare per iscriversi, che trattano tutti i vari aspetti dello sviluppo di Swift. Puoi vederli tutti qui.

La bacheca di Swift

Come ogni altro software, Swift ha dei bug. Questa è la posizione centrale che il team di Swift utilizza per tenere traccia dei bug e seguirli fino a quando non vengono risolti. A parte i bug, i miglioramenti possono anche essere suggeriti qui.

Conclusione

Swift giocherà un ruolo importante nello sviluppo di iOS in futuro. Penso che gli sviluppatori lo abbiano saputo da quando è stato annunciato al WWDC 14. Ciò che è eccitante è che ora si manifesterà al di fuori delle sole piattaforme di Apple. Immagina di utilizzare Swift come linguaggio lato server durante lo sviluppo di un'API?

Forse più importante della crescita di Swift è il fatto che la comunità guiderà il cambiamento. Open source: Swift aprirà molte porte sia per te che per la lingua. Ora è il momento di essere coinvolti, quindi inizia a leggere le linee guida di contribuzione e non vedo l'ora di vedere il tuo prossimo commit nel repository Swift.