Swift (linguaggio di programmazione): differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Etichette: Annullato Inserimento di parole incomprensibili Sequenze di caratteri ripetuti da parte di un nuovo utente o IP
LucaLindholm (discussione | contributi)
 
(19 versioni intermedie di 12 utenti non mostrate)
Riga 5:
| autore = [[Apple Inc.]]
| data = 9 settembre 2014
| versione = 5.7.3<br!-- /wikidata -->(18 gennaio 2023)
| utilizzo = [[General purpose]]
| paradigmi = [[Paradigma di programmazione|Multiparadigma]]
Riga 18:
}}
'''Swift''' (dall'[[Lingua inglese|inglese]] "rapido, svelto") è 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>
Rispetto al linguaggio [[Objective-C]], tipico dei [[sistemi operativi Apple]], Swift semplifica il lavoro di scrittura del codice. Swift è stato progettato per coesistere con Objective-C ma anche per essere più resiliente agli errori. Il 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 unico 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>
 
== 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|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 ==
Riga 103 ⟶ 109:
| 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.7
| style="background-color:#D4F4B4; text-align:right" | 12 settembre 2022
| style="background-color:#D4F4B4; text-align:left" | <ref>{{Cita web|url = https://swift.org/blog/swift-5.7-released/ |titolo = Swift.org - Swift 5.7 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" | 56.70
| 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>
|}
 
Riga 119 ⟶ 141:
=== Hello, world! ===
[[Hello world|Hello, world!]] è il classico programma che scrive in output "''Hello, world!''".<syntaxhighlight lang="swift">
import UIKitSwiftUI
 
print("Hello, world!")
Riga 126 ⟶ 148:
==== 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.
 
Riga 141 ⟶ 163:
<syntaxhighlight lang="swift" line="1">
// Dichiara le variabili da utilizzare
var nome = "Mario", cognome = "DraghiRossi"
 
// Converti la stringa in maiuscolo
Riga 157 ⟶ 179:
 
<syntaxhighlight lang="swift">
import UIKitSwiftUI
 
// Dichiara le variabili da utilizzare
Riga 170 ⟶ 192:
 
<syntaxhighlight lang="swift">
import UIKitSwiftUI
 
// Dichiara le variabili da utilizzare
Riga 229 ⟶ 251:
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";
 
Riga 239 ⟶ 261:
let b: String = "B"
 
// Senza nemmeno la dichiarazione delladel tipologiatipo (String)
let c = "C"
</syntaxhighlight>
Riga 251 ⟶ 273:
 
== 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 ==