| autore = [[Apple Inc.]]
| data = 9 settembre 2014
| versione = 5.6.1<br!-- /wikidata -->(8 aprile 2022)
| utilizzo = [[General purpose]]
| paradigmi = [[Paradigma di programmazione|Multiparadigma]]
| licenza = [[Licenza Apache|Apache]] 2.0
}}
'''Swift''' (dall'[[Lingua inglese|inglese]] "rondine" e "rapido, repentinosvelto") è un linguaggio di [[programmazione orientata agli oggetti|programmazione orientato agli oggetti]] per sistemi [[macOS]], [[iPadOS]], [[iOS]], [[watchOS]], [[tvOS]] e [[Linux]], presentato da [[Apple]] durante la WWDC 2014.<ref>{{Cita web|url=https://www.cbsnews.com/news/wwdc-2014-iphone-ipad-updates-smart-home-system-and-more/|titolo=Apple WWDC 2014: iPhone, iPad updates, "smart home" system and more|editore=CBS News|data=2 giugno 2014|accesso=3 giugno 2014|lingua=en}}</ref>
SwiftRispetto è concepito per coesistere con ilal linguaggio [[Objective-C]], tipico degli sviluppi per idei [[sistemi operativi Apple]], semplificandoSwift lasemplifica il lavoro di scrittura del codice. Swift è stato progettato per coesistere con Objective-C ma anche per essere più resiliente agli errori nel codice. Utilizza ilIl compilatore [[LLVM]] è incluso in [[Xcode]] e Swift utilizza il run time di [[Objective-C]], permettendo l'uso di codice Objective C, Objective C++ e Swift in un singolounico programma.
Il 25 marzo [[2019 ]] è stata pubblicata la versione 5.0 sotto licenza [[open source]] [[Licenza Apache|Apache]] 2.0 per sistemi [[Apple ]] e [[Linux ]].<ref>{{Cita pubblicazione|data=2019-04-01|titolo=The Swift Programming Language. Contribute to apple/swift development by creating an account on GitHub|editore=Apple|accesso=2019-04-01|url=https://github.com/apple/swift}}</ref> ▼
Swift, già dalla prima release, è fino a 8,4 volte più veloce di [[Python]] e fino a 2,6 volte più veloce di [[Objective-C]] in alcuni tipi di algoritmi.<ref>{{Cita web|url=https://apple.com/it/swift|lingua=it|accesso=29 maggio 2015|titolo=10.000 interi trovati in un grafico
usando un algoritmo di ricerca in profondità. Test condotti da Apple nell'ottobre 2014 utilizzando sistemi MacBook Air 13" in produzione con processore Intel Core i5 a 1,4GHz, 4GB di RAM e OS X v10.10 pre-release. Le prestazioni variano in base alla configurazione del sistema, alla connessione di rete e ad altri fattori. }}</ref>
▲Il 25 marzo [[2019]] è stata pubblicata la versione 5.0 sotto licenza [[open source]] [[Licenza Apache|Apache]] 2.0 per sistemi [[Apple]] e [[Linux]].<ref>{{Cita pubblicazione|data=2019-04-01|titolo=The Swift Programming Language. Contribute to apple/swift development by creating an account on GitHub|editore=Apple|accesso=2019-04-01|url=https://github.com/apple/swift}}</ref>
== Storia ==
Lo sviluppo di Swift è iniziato nel [[2010]] grazie a [[Chris Lattner]], programmatore informatico della [[Apple]]. Swift ha preso in prestito idee "da Objective-C, Rust, Haskell, Ruby, Python, C#, CLU, e da troppi altri per elencarli tutti".<ref>{{Cita web|url=http://nondot.org/sabre/|lingua=en|accesso=7 giugno 2014|titolo=Home page di Chris Lattner}}</ref>
Al WWDC del 2 giugno [[2014]] la prima app scritta in Swift è proprio l'app ufficiale dell'evento. E, durante lo svolgimento dello stesso, Apple divulga ai presenti un manuale di 500 pagine: "The Swift Programming Language",<ref name="Apple swift book">{{Cita libro|url=https://itunes.apple.com/book/swift-programming-language/id881256329?mt=11|titolo =The Swift Programming Language|editore = [[Apple Inc.|Apple]]|data=2 giugno 2014|accesso=7 giugno 2014|lingua=en}}</ref> disponibile gratuitamente sull'[[iBooks#iBookstore|iBookstore]] di casa Cupertino.
Al keynote dell'8 giugno [[2015]] Apple ha annunciato la distribuzione di Swift 2.0 con notevoli miglioramenti nella struttura del linguaggio e aggiunta di funzioni, impegnandosi per rendere il progetto [[open source]] nel futuro prossimo. Il 3 dicembre dello stesso anno viene lanciato il sito [https://swift.org/ swift.org] e il [[codice sorgente]] del linguaggio è pubblicato con [[licenza Apache]] 2.0 su un repository [[GitHub]].<ref name="verge_os">{{cita web|url=https://www.theverge.com/2015/12/3/9842854/apple-swift-open-source-released|titolo=Apple's new programming language Swift is now open source|autore=Jacob Kastrenakes|editore=The Verge|data=3 dicembre 2015|lingua=en|accesso=8 dicembre 2015}}</ref> Apple resta lo sviluppatore principale e ne rende disponibile anche una versione del compilatore per Linux (Creato appositamente per Ubuntu).<ref>{{Cita web|url = http://www.dday.it/redazione/16708/apple-rende-swift-open-source-ma-non-poteva-fare-altrimenti|titolo = Apple rende Swift open source, ma non poteva fare altrimenti|accesso = 2015-06-12}}</ref>
Il 13 settembre [[2016]], durante la WWDC 2016, [[Apple]] ha presentato la terza versione del suo linguaggio di programmazione insieme ad un'applicazione per [[iPad]], Swift Playgrounds, che permette, tramite una grafica semplice e intuitiva, di imparare a programmare con Swift.
== Cronologia delle versioni ==
| 5.1
| style="text-align:right" | 10 settembre 2019
| style="text-align:left" | <ref>{{Cita web |url = https://swift.org/blog/swift-5-1-released/ |titolo = Swift.org - Swift 5.1 Released! | accesso = 20/09/2019 |lingua = en |dataarchivio = 26 febbraio 2022 |urlarchivio = https://web.archive.org/web/20220226203243/https://www.swift.org/blog/swift-5-1-released/ |urlmorto = sì }} </ref>
|-
| 5.2
| style="text-align:right" | 24 marzo 2020
| style="text-align:left" | <ref>{{Cita web |url = https://swift.org/blog/swift-5-2-released/ |titolo = Swift.org - Swift 5.2 Released! | accesso = 26/03/2020 |lingua = en |dataarchivio = 25 marzo 2020 |urlarchivio = https://web.archive.org/web/20200325160127/https://swift.org/blog/swift-5-2-released/ |urlmorto = sì }} </ref>
|-
| 5.3
| style="text-align:right" | 16 settembre 2020
| style="text-align:left" | <ref>{{Cita web |url = https://swift.org/blog/swift-5-3-released/ |titolo = Swift.org - Swift 5.3 Released! | accesso = 16/09/2020 |lingua = en |dataarchivio = 26 settembre 2020 |urlarchivio = https://web.archive.org/web/20200926005208/https://swift.org/blog/swift-5-3-released/ |urlmorto = sì }} </ref>
|-
| 5.4
| style="text-align:right" | 26 aprile 2021
| style="text-align:left" | <ref>{{Cita web |url = https://swift.org/blog/swift-5-4-released/ |titolo = Swift.org - Swift 5.4 Released! | accesso = 26/04/2021 |lingua = en |dataarchivio = 26 aprile 2021 |urlarchivio = https://web.archive.org/web/20210426183534/https://swift.org/blog/swift-5-4-released/ |urlmorto = sì }} </ref>
|-
| 5.5
| style="text-align:right" | 20 settembre 2021
| style="text-align:left" | <ref>{{Cita web |url = https://swift.org/blog/swift-5-5-released/ |titolo = Swift.org - Swift 5.5 Released! | accesso = 20/09/2021 |lingua = en |dataarchivio = 21 settembre 2021 |urlarchivio = https://web.archive.org/web/20210921002942/https://swift.org/blog/swift-5-5-released/ |urlmorto = sì }} </ref>
|-
| 5.6
| style="text-align:right" | 14 marzo 2022
| style="text-align:left" | <ref>{{Cita web|url = https://swift.org/blog/swift-5.6-released/ |titolo = Swift.org - Swift 5.6 Released! | accesso = 20/09/2021|lingua=en }}</ref>
|-
| 5.7
| style="background-color:#D4F4B4" | 5.6 ▼
| style="background-color:#D4F4B4; text-align:right" | 1412 marzosettembre 2022
| style="background-color:#D4F4B4; text-align:left" | <ref>{{Cita web|url = https://swift.org/blog/swift-5.67-released/ |titolo = Swift.org - Swift 5.67 Released! | accesso = 20/09/2021|lingua=en }} </ref>
|-
| 5.8
| style="text-align:right" | 30 marzo 2023
| style="text-align:left" | <ref>{{Cita web|url = https://swift.org/blog/swift-5.8-released/ |titolo = Swift.org - Swift 5.8 Released! | accesso = 07/04/2021|lingua=en }}</ref>
|-
| 5.9
| text-align:right" | 18 settembre 2023
| style="text-align:left" | <ref>{{Cita web|url = https://www.swift.org/blog/swift-5.9-released/ |titolo = Swift.org - Swift 5.9 Released! | accesso = 26/09/2023|lingua=en }}</ref>
|-
| 5.10
| style="text-align:right" | 5 marzo 2024
| style="text-align:left" | <ref>{{Cita web|url = https://www.swift.org/blog/swift-5.10-released/ |titolo = Swift.org - Swift 5.20 Released! | accesso = 05/03/2024|lingua=en }}</ref>
|-
▲| style="background-color:#D4F4B4" | 5.6 .0
| style="background-color:#D4F4B4; text-align:right" | 17 settembre 2024
| style="background-color:#D4F4B4; text-align:left" | <ref>{{Cita web|url = https://www.swift.org/blog/announcing-swift-6/ |titolo = Swift.org - Announcing Swift 6 | accesso = 17/09/2024|lingua=en }}</ref>
|}
=== Hello, world! ===
[[Hello world|Hello, world!]] è il classico programma che scrive in output "''Hello, world!''".<syntaxhighlight lang="swift">
import UIKitSwiftUI
print("Hello, world!")
==== Analisi ====
<syntaxhighlight lang="swift">
import UIKitSwiftUI
</syntaxhighlight>La funzione "'''import'''" importa nel programma determinati metodi o classi che permettono a quest'ultimo di implementare determinati comandi.
"'''UIKitSwiftUI'''" è un [[framework]] [[Front-end e back-end|front end]], sviluppato da Apple, che fornisce le funzioni per gestire l'interfaccia grafica ([[GUI]]) e gli input dell'utente. In questo caso il codice compila anche senza importare UIKitSwiftUI (è stato importato solo come esempio) in quanto l'unica funzione utilizzata è stata la funzione "'''print'''" che fa parte del core del linguaggio.<syntaxhighlight lang="swift">
print("Hello, Worldworld!")
</syntaxhighlight>La funzione "'''print'''" permette di mostrare a schermo ciò che viene scritto tra le virgolette dentro le parentesi tonde.
<syntaxhighlight lang="swift" line="1">
// Dichiara le variabili da utilizzare
var nome = "Mario", cognome = "DraghiRossi"
// Converti la stringa in maiuscolo
<syntaxhighlight lang="swift">
import UIKitSwiftUI
// Dichiara le variabili da utilizzare
<syntaxhighlight lang="swift">
import UIKitSwiftUI
// Dichiara le variabili da utilizzare
var età = 46
</syntaxhighlight>
* LeNon tipologieè obbligatorio dichiarare il tipo di costanti e variabili (String, Int, Double, ...) non sono obbligatorie da dichiarare;
* Le parentesi tonde () per racchiudere condizioni di confronti (if-else, switch...) e cicli (for in, do-while...) sono facoltative;
* Il punto e virgola ";" a fine istruzione, anch'esso è facoltativo;
<syntaxhighlight lang="swift">
// Con dichiarazione tipologiadel tipo tra parentesi tonde e punto e virgola alla fine
let a: (String) = "A";
let b: String = "B"
// Senza nemmeno la dichiarazione delladel tipologiatipo (String)
let c = "C"
</syntaxhighlight>
== SwiftUI ==
{{vedi anche|SwiftUI}}
'''SwiftUI''' è un framework di sviluppo realizzato da [[Apple Inc.]] e scritto interamente in Swift.
Presentato nel WWDC 2019, SwiftUI è stato pensato per costruire interfacce utente tramite un unico set di tool e API che coinvolge tutto l'ecosistema Apple (precedentemente si faceva uso di frameworks distinti: [[AppKit]] per [[macOS]], [[UIKit]] per [[iOS]] e [[WatchKit]] per [[watchOS]]).
== Confronto con Java ==
Swift, rispetto a Java, non necessita di essere interpretato. Questa differenza fondamentale tra i due linguaggi di programmazione ha una notevole ripercussione sulla RAM (memoria). Infatti il sistema Android ne risulta svantaggiato rispetto al rivale iOS.<ref>[https://www.androidworld.it/smartphone/android-ios-gestione-ram.html Perché Android ha bisogno di più RAM di iOS, androidworld.it, 8 luglio 2022]</ref>
== Note ==
|