Tutti i prezzi sono validi al momento della pubblicazione. Se fai click o acquisti qualcosa, potremmo ricevere un compenso.

Il linguaggio di programmazione Swift di Apple è ora Open Source

03 Dicembre 2015 134

Come aveva promesso durante l'ultima WWDC, Apple ha oggi rilasciato il codice sorgente del linguaggio di programmazione Swift. Introdotto nel 2014, Swift prende il meglio del linguaggio di programmazione ad oggetti Object-C, utilizzato da sempre per la creazione di applicazioni OS X e iOS, e si propone di diventare un linguaggio universale, semplice da utilizzare, veloce nell'esecuzione e soprattuto versatile.

Quello che Apple ha reso oggi disponibile alla comunità di sviluppatori, attraverso apposite repository GitHub, consiste in due parti fondamentali: il compiler e le librerie di Swift. Il primo è il componente addetto alla traduzione dei comandi Swift in codice eseguibile da un computer. Quello di Swift è basato sul compiler LLVM, che tra i suoi padri ha Chris Lattner, ora al lavoro in Cupertino dentro il team autore di Swift. Le sue caratteristiche rendono possibile integrare codice Object-C e Swift nello stesso programma.

Il rilascio 'aperto' del compiler apre interessanti prospettive. Finora gli sviluppatori potevano scrivere applicazioni per OS X e iOS su qualsiasi macchina, ma erano costretti a compilare tale codice sul sistema operativo di Apple. Ora, una volta che il compiler originale verrà riscritto per lavorare su macchine diverse (Apple supporterà direttamente il porting su Linux), gli sviluppatori saranno liberi di utilizzare la workstation che più gli aggrada, senza sottostare a vincoli dettati da Cupertino. Apple perderà un po' nelle vendite di Mac Pro e MacBook Pro, ma guadagnerà la simpatia di molti developer e magari ne convincerà qualcuno ad arricchire l'App Store e il Mac App Store di qualche sua creazione.

Ma non finisce qui! Finora era possibile utilizzare Swift solo per sviluppare applicazioni OS X e iOS. Apple ha rilasciato Swift sotto licenza "OSI-approved permissive", ovvero una licenza approvata dall'Open Source Initiative che "garantisce la libertà di utilizzare, modificare e ridistribuire, senza vincoli di licenza". Questo vuol dire che a qualcuno potrebbe venire in mente di riutilizzare o utilizzare in parte componenti di Swift per lo sviluppo di qualsiasi tipo di applicazione: app Android o Windows, demoni su server, applicazioni web e quant'altro.

Nel pacchetto di codice rilasciato, troviamo pure le librerie standard e i tipi fondamentali di Swift. La loro implementazione potrà esser migliorata tramite i consigli e le modifiche della comunità di sviluppatori, o addirittura potrà esser sfruttata da altre comunità per migliorare i loro prodotti. Apple da una parte utilizzerà l'aiuto esterno per ottimizzare un proprio prodotto, dall'altro spera di far espandere il più possibile l'utilizzo di Swift, anche in contesti che non controlla direttamente o ai quali non è direttamente interessata.

Questo nasconde un altro vantaggio per Apple: se la crescita dell'utilizzo di Swift continuasse nel ritmo record registrato nel 2015, Swift diventerebbe finalmente un vero avversario di Java, linguaggio di programmazione open source multi-piattaforma, con cui sono scritte le app per Android. L'ampia diffusione di Java e la versatilità delle skill di programmazione -il codice Java gira dai cellulari ai server aziendali, compila in qualsiasi ambiente- ha permesso negli anni un accesso facilitato al Play Store, a differenza dell'App Store, il cui ingresso richiedeva finora skill molto specifiche (e come detto prima, addirittura un hardware specifico!).

Tra le librerie rilasciate troviamo anche parte del framework Foundation, derivato di Object-C, e alcuni dei componenti più importanti di AppKit e UIKit, che resteranno esclusiva OS X e iOS e faranno il loro debutto nella versione 3 di Swift. Per i più interessati, sul sito ufficiale trovate tutta la documentazione per muovere i primi passi con Swift o per capire meglio come sfruttare al meglio le possibilità offerte dal rilascio open source.

Di seguito il comunicato stampa ufficiale:

Apple ha annunciato oggi che il suo linguaggio di programmazione Swift è ora open source. In quanto linguaggio open source, la vasta community di sviluppatori di talento - dai creatori di app agli istituti scolastici e alle imprese - potrà apportare il proprio contributo arricchendo Swift di nuove funzioni e ottimizzazioni, nonché contribuire a renderlo disponibile su nuove piattaforme. Introdotto nel 2014, Swift è il linguaggio di programmazione con il maggior ritmo di espansione nella storia; unisce le prestazioni e l’efficienza dei linguaggi compilati con la semplicità e l’interattività dei linguaggi di scripting più popolari.* Oggi Apple ha inoltre lanciato il sito web Swift.org, che contiene informazioni dettagliate su Swift open source, fra cui documentazione tecnica, risorse per gli sviluppatori e link per scaricare il codice sorgente di Swift.

“La scelta di rendere Swift open source consentirà all’intera community di sviluppatori di contribuire al linguaggio di programmazione e a renderlo disponibile su ancora più piattaforme,” ha dichiarato Craig Federighi, Senior Vice President Software Engineering di Apple. “La potenza e la facilità d’uso di Swift ispireranno una nuova generazione ad appassionarsi al mondo della programmazione e, con l’annuncio di oggi, saranno in grado di portare le proprie idee ovunque, dai dispositivi mobili al cloud.”

Swift è un linguaggio di programmazione potente e intuitivo, che offre agli sviluppatori la libertà e le funzioni necessarie per creare la prossima generazione di software all’avanguardia. Swift è facile da imparare e utilizzare, persino per chi non ha mai scritto una riga di codice, ed è il primo linguaggio di programmazione di sistemi ad essere espressivo e piacevole come un linguaggio di scripting. Progettato pensando alla sicurezza, Swift elimina inoltre intere categorie di comuni errori di programmazione.

Il codice open source di Swift è disponibile via GitHub e include supporto per tutte le piattaforme software Apple - iOS, OS X, watchOS e tvOS - così come per Linux. I componenti disponibili comprendono Swift Compiler, Debugger, Standard Library, Foundation Libraries, Package Manager e REPL. Swift è concesso in licenza ai sensi della popolare licenza open source Apache 2.0 con un’eccezione relativa alla libreria di runtime, e consente agli utenti di integrare facilmente Swift nel proprio software ed eseguire il porting del linguaggio su nuove piattaforme. Per maggiori informazioni su Swift e per accedere alle risorse per gli sviluppatori, visitate il sito Swift.org.


*Basato su RedMonk Programming Language Rankings, Giugno 2015.


134

Commenti

Regolamento Commentando dichiaro di aver letto il regolamento e di essere a conoscenza delle informazioni e norme che regolano le discussioni sul sito. Clicca per info.
Caricamento in corso. Per commentare attendere...
glukosio

quindi tecnicamente se ci si mette d'impegno è possibile creare un compilatore di swift per android?

Joel-TLoU

A quel prezzo puoi aspirare solo ad un iPhone 5s purtroppo

Stavus

sempre troppi, massimo 500 euro se mi prende un attacco di pazzia (e poi mi pentirei della spesa, indipendentemente da quanto buono sarà l'acquisto), non è una questione di averli o meno, è una questione di principio, il prezzo ottimale per me è 350-450

Joel-TLoU

Allora iPhone 6s a 659 :-)

Stavus

Eh, se proprio devo passare il FT lo voglio! :P

Joel-TLoU

Online trovi iPhone 6 nuovo a 499€.

Stavus

Rimane il problema del prezzo, per provare non comprerei un iphone nuovo per 14 giorni, perchè se mi dovesse piacere comunque sia 1000 euro di telefono non li spendo, solo che nell'usato vallo a trovare uno che me lo fa provare!

Joel-TLoU

Ripeto: prova un iPhone per 13 giorni prima di giudicare :D ci sono sempre delle sorprese dietro l'angolo. Comunque su alcune cose sei troppo tragico: se ti si rompe il cavetto, cosa comunque difficile perché per esempio a me non si è mai rotto dal 2009 ad oggi, puoi tranquillamente comprarne uno su Amazon certificato con € 7 che ti verrà consegnato entro quarantott'ore

Stavus

Temo di no, perchè gli imprevisti (vedi per esempio la rottura del cavetto) è difficile che succedano in 14 giorni, e sinceramente non so quanti altri imprevisti potrebbero esserci.
Concordo con te che sono dettagli, ma se nella controparte, oltre a spendere meno, riesco a farci le stesse cose e ad avere quei dettagli a favore, preferisco la controparte... poi dovrei vedere quanto mi troverei con l'interfaccia ios, con android sono a configurarmi praticamente tutto, dalla home, ai tasti nella barra di notifica, alle app nelle pagine (volendo avere una pagina vuote per vedere il wallpaper), e sono uno a cui viene spesso a noia una certa cosa, quindi dopo un po' vorrei cambiare (ma non solo le icone), cosa che non potrei fare.
E poi la barra delle notifiche di ios proprio non la posso vedere, ma da quanto ho capito, non essendo uno che usa widget, la userei poco...
Ovviamente ci sono tutti i pregi e cose che sono ottime (vedi FT che non è l'innovazione del secolo o la cosa più fantastica di questo mondo come la disegnanate, però un metodo di interfacciarsi con il dispositivo in più non può che far bene, tutto sta a vedere se e come sarà sfruttato).

Joel-TLoU

Spesso si tratta solo di vezzi. Sono sicuro al 90% che se tu acquistassi un iPhone con la consapevolezza che puoi restituirlo e riavere indietro i soldi entro 14 giorni, come di consueto, tutte queste cose ti sembrerebbero insignificanti nel giro di una settimana.

Stavus

Beh, se mi volessi fare un'app mia che uso solo io non posso, almeno che non la pubblichi e paghi il canone annuale, per la questione sicurezza basta un avviso che indichi che abilitando app esterne c'è un alto rischio per la sicurezza (come c'è in android), se sono al corrente di ciò che installo o non me ne frega molto della sicurezza perchè non dovrei potere?
Usare lo stesso caso del nexus ha il senso che se si dovesse rompere quello in dotazione non devo andare obbligatoriamente a comprarlo nuovo (e magari spendere anche un po' per comprare un cavo buono, senza contare che magari quel giorno il negozio è chiuso e vista la durata della batteria dei telefoni odierti o vado a cercare il negozio aperto, oppure attendo una giornata senza telefono, non muore nessuno si spera, però è comunque una scomodità), piuttosto che usarne un altro che magari già ho in casa o comunque comprarne uno buono ad un prezzo decente..
Poi ti ripeto, queste sono alcune cose che bloccano me a "passare al lato oscuro" (tanto per tornare al commento di origine), ma capisco tranquillamente che ci sono persone che gnene può fregar de meno e se sono disposti a spendere quelle cifre ben per loro.

Joel-TLoU

Alcune delle cose che hai detto, come la possibilità di installare applicazioni esterne, sono una gravissima minaccia alla sicurezza, e mi sembra scontato che non siano concesse... per quanto riguarda il resto, come usare lo stesso cavo del Nexus 6 che senso ha? in dotazione ti viene dato un cavo compatibile. Di gran lunga migliore. Comunque si, iOS e Windows sono più chiusi e se hai determinate esigenze di nicchia non puoi assolutamente utilizzarli.

Stavus

Dimmi che il BT funziona con altri dispositivi non apple, che apple watch funziona anche con telefoni non ios (di default, non grazie a hack da parte degli altri telefoni), che posso usare lo stesso cavetto usb che uso per il nexus 5 (o un type-c andrebbe anche bene), che posso installare applicazioni extra store in 1 passaggio, che posso testare un'app senza dover essere iscritto alla developer console apple (e quindi pagare il canone annuale) e senza avere un provisioning profile, e che fin'ora, escludendo questa notizia, per sviluppare un app per dispositivi apple, non necessiti un mac, e per dirne un'altra più semplice: che posso personalizzare il telefono come mi pare (e non mi riferisco ai pacchetti icone).
L'universo apple è nato chiuso ed è stato pensato per interfacciarsi solo al suo interno, poi col tempo stanno allentando la presa, però dirmi che è aperto perchè posso usare i servizi google o microsoft non è corretto, l'unico motivo per cui sono disponibili su ios è perchè è un sistema famoso e sia google che microsoft hanno interesse a sviluppare le app e i servizi per ios, ma non è grazie a ios che è aperto, è grazie alle due che hanno reso disponibili i loro servizi.

Joel-TLoU

Non sono d'accordo con quello che hai detto. Per esempio l'iPhone è l'unico telefono del pianeta che ti dà la vera e libera scelta su quale ecosistema utilizzare: puoi usare i servizi di Apple, puoi usare i servizi di Google e poi usare i servizi di Microsoft. Se invece compri un telefono android non puoi utilizzare i servizi di Apple mentre se compri un telefono di Microsoft non puoi utilizzare né i servizi di Apple né i servizi di Google.

Stavus

Beh, è indiscutibile che ios è molto chiuso, il che è un bene per un certo senso perchè porta a più sicurezza, controlli e ottimizzazione, da un altro per me il telefono si deve adattare alle mie esigenze e non devo essere io ad adattarmi al telefono, i dispositivi apple sono nati per essere usati solo con altri dispositivi apple (non so se in queste ultime release la storia è cambiata, parlo di un annetto fa o poco più), se vuoi un esempio ti dico il bt.
Certo uno può metterci cydia e sbloccare diverse cose (forse tutte?), ma uno poi non può aggiornare oppure deve aspettare che ci sia la compatibilità, ecc... E comunque mi pare di aver capito che con cydia i dispositivi perdono di reattività...

snke

il sarcasmo non vi piace proprio eh?

snke

Sarcasmo questo sconosciuto

Andrew

se lo avessero fatto qualche mese fa mi sarei risparmiato un po' di soldi e mi sarei fiondato su di un Dell, 'cci loro.

Joel-TLoU

Chiuso a che riguardo? Voglio solo sapere cosa ti blocca, non è minimamente una provocazione.

THETHOR

c'è per linux ma non per windows....

Stavus

????

LoStanatore

Grandi!

Sagitt

in parte c'entra

- Lo standard è stato originariamente proposto dalla Apple, successivamente ratificato dalla stessa assieme le principali aziende del settore (Intel, NVIDIA, AMD), ed infine portato a compimento dal consorzio no-profit Khronos Group.

- Thunderbolt è una tecnologia sviluppata da Intel (precedentemente nota con il nome in codice Light Peak),[2] in collaborazione con Apple, allo scopo di collegare una vasta gamma di dispositivi multimediali quali fotocamere digitali, schermi, riproduttori audio/video e unità di memorizzazione.

sono progetti dove comunque ha investito molto e che sono disponibili per tutti. Poi ovviamente parte di osx, healtkit, swift ecc sono molto più open e molto più apple, ma siamo li.

romeop

se con Xamarin si potrà compilare senza un mac potrei farci un pensierino, mai comprerò un mac per pubblicare sullo store come vogliono quei mungi vacche

Sagitt

a loro che frega se è pieno di kit per sviluppatori, sistemi di gestione risorse (esempio quello nuovo per il download pacchetti, pulizia automatica ecc) e via dicendo.......

Joel-TLoU

Io l'ho portato avanti per passione, ma è ovviamente collaterale.

alex

Sai Python spesso lo si studia proprio al primo anno , per questo chiedevo!

optimus81

Se provi Apple non torni più indietro.

Joel-TLoU

No :D

alex

Non so perché ma ho l'impressione che tu sia uno studente del primo anno di ingegneria informatica a Milano....

Joel-TLoU

Puoi prendere un Mac mini a 500. Per sviluppare va bene.

Joel-TLoU

Ci sono tantissime altre cose importantissime che non vengono minimamente calcolate dall'utenza. A loro piace insultare l'iPhone perché ha un dual-core.

Joel-TLoU

A che riguardo?

Joel-TLoU

Tra un programma di Python e l'altro io guardo anche ciò che potrebbe tangermi in futuro, caro!

Davide

Opencl non c'entra niente con Apple e thunderbolt é di Intel

Stavus

Il prossimo passo è rendere più aperto iOs e a quel punto potrei pensare seriamente di passare "al lato oscuro"

Jam

Non avevo dubbi guarda :D

Joel-TLoU

Ma che sentito dire, l'ho visto per bene dal momento che è la mia attuale materia ed è bellissimo.

Apus

E quale stile di programmazione? È un incrocio fra n linguaggi, di stile non ha proprio nulla. Se non emulare in qualche modo un misto fra python e Go

gioby

Io non noto così grosse differenze ahaha .. Forse si , è una cosa soggettiva

Apus

Nessuno sottovaluta il settore mobile, piuttosto stai sottovalutando il settore enterprise e una cosa di non poco conto: l'sdk cocoa resta closed e quindi Swift funziona fino ad un certo punto.
Come già scritto in precedenza Swift ha subito avuto appeal per poi assestarsi (ad esempio il tasso di adozione di matlab da novembre 2014 a novembre 2015 è stato maggiore di quello di Swift).
Pensare di tirare fuori un linguaggio General purpose quando ci sono sempre più linguaggi di programmazione specifici è un contro senso.

Apus

Se aumenta la quantità di programmi (Swift è più semplice di obj-c) Allora automaticamente ne aumenta la qualità.

Apus

Signori hanno reso open source Swift non cocoa-xcode. Ergo niente trippa per gatti p, per meglio dire, osx resta l'os per creare app ios

Insider

Ma vi divertite a scrivere commenti ovvi? -.-
Come se non ci avessi pensato che qualche bambino mi avrebbe scritto una cosa del genere -.-

CAIO MARI

Ma quelle app che usavo non erano alla prima versione, non so se hai inteso ;)

Sagitt

OpenCL.. HealthKit.. Parte di OS X.. Progetti hardware come thunderbolt...

Sagitt

Questa è una delle più grandi innovazioni di Apple negli ultimi anni... Solo che se ne parli a chiunque ti direbbe... Ma cosa fa? ha il display più grande? Cambia il design? Tanto le app andavano anche prima! E da lì capisci come la gente parla senza una logica ma per istinto

Jam

LOL, non fare il marioz di turno che parla per sentito dire :D

geekwhiz

esattamente ragion per cui se ne sono usciti con Swift.. permettere a un maggior numero di programmatori (quelli che arrivano da c# e java soprattutto) di approcciare lo sviluppo nel mondo apple

PCusen

Tra cui il tuo che non porta nessun contributo a questa discussione ma critica gli altri che non portano contributi. Certo che ci vuole coraggio...

Che anno sarà il 2024? Le nostre previsioni sul mondo della tecnologia! | VIDEO

HDblog Awards 2023: i migliori prodotti dell'anno premiati dalla redazione | VIDEO

Recensione Apple Watch Series 9: le novità sono (quasi) tutte all’interno

Recensione MacBook Pro 16 con M3 Max, mai viste prestazioni così!