Guida Descrizione e Documentazione per Swift!

SpeedJack

Sviluppatore
Amministratore
18 Febbraio 2010
5,788
74
3,825
1,413
Ultima modifica da un moderatore:
swift-apple-programming-language-840x550.png
Swift è il nuovo linguaggio di programmazione di casa Apple.
Nato come successore dell'Objective-C, Swift prende molto dal suo predecessore, ma è stato ideato per essere molto più semplice, chiaro e intuitivo. Sappiamo infatti tutti che Objective-C era un linguaggio quasi inutilizzabile: la sua sintassi rendeva problematica la ricerca di errori, causando l'odio degli sviluppatori.
Con Swift Apple vuole eliminare questo odio per lo sviluppo per iOS e OS X.


Swift è un linguaggio di programmazione compilato multi-paradigma.
Paradigmi di programmazione supportati:
- Orientato agli oggetti;
- Funzionale;
- Imperativo;
- Strutturato a blocchi.


Swift mantiene alcune caratteristiche uguali a Objective-C:
- Tipi numerici di base (Int, UInt, Float, Double);
- Quasi tutti gli operatori di Obj-C sono portati su Swift, ma Swift ne introduce anche di nuovi;
- Per raggruppare le istruzioni si usano sempre le parentesi graffe
- L'operatore di assegnamento (per le variabili) è sempre il simbolo uguale (=);
- Le parentesi quadre sono utilizzate per gli array;
- for, while, if, switch sono simili, hanno solo qualche funzionalità in più;
- I metodi delle classi sono ereditati, proprio come i metodi delle istanze.


Mentre queste sono le differenze con il suo predecessore:
- Le istruzioni non devono terminare con un punto e virgola (;), però può essere utilizzato per inserire più istruzioni in una sola riga;
- File header non sono obbligatori;
- Tipizzazione forte;
- Type inference;
- Programmazione generica (generics);
- Le funzioni sono oggetti di first-class;
- Le enumerazioni possono avere dati associati;
- Gli operatori possono essere ridefiniti per le classi (overloading degli operatori) e possono essere creati nuovi operatori;
- Le stringhe supportano a pieno l'UNICODE, l'UNICODE può anche essere utilizzato nei nomi di variabile;
- Nessuna gestione delle eccezioni;
- Non esistono puntatori;
- Gli assegnamenti non hanno un valore di ritorno;
- Non è obbligatori utilizzare l'istruzione break nei blocchi switch;
- Variabili e costanti sono sempre inizializzate;
- Non è possibile uscire dai limiti degli array;
- Non è possibile (senza dovuti accorgimenti del programmatore) causare un overflow (run-time error).




La documentazione ufficiale gratuita (in inglese) di Swift potete trovarla qui:
https://developer.apple.com/library...ceptual/Swift_Programming_Language/index.html
Apple ha aperto anche un Blog per Swift (thx TheSeeker):
https://developer.apple.com/swift/blog/





(Topic in aggiornamento - lasciate consigli e commenti)
 
Swift è il nuovo linguaggio di programmazione di casa Apple.
Nato come successore dell'Objective-C, Swift prende molto dal suo predecessore, ma è stato ideato per essere molto più semplice, chiaro e intuitivo. Sappiamo infatti tutti che Objective-C era un linguaggio quasi inutilizzabile: la sua sintassi rendeva problematica la ricerca di errori, causando l'odio degli sviluppatori.
Con Swift Apple vuole eliminare questo odio per lo sviluppo per iOS e OS X.


Swift è un linguaggio di programmazione compilato multi-paradigma.
Paradigmi di programmazione supportati:
- Orientato agli oggetti;
- Funzionale;
- Imperativo;
- Strutturato a blocchi.


Swift mantiene alcune caratteristiche uguali a Objective-C:
- Tipi numerici di base (Int, UInt, Float, Double);
- Quasi tutti gli operatori di Obj-C sono portati su Swift, ma Swift ne introduce anche di nuovi;
- Per raggruppare le istruzioni si usano sempre le parentesi graffe
- L'operatore di assegnamento (per le variabili) è sempre il simbolo uguale (=);
- Le parentesi quadre sono utilizzate per gli array;
- for, while, if, switch sono simili, hanno solo qualche funzionalità in più;
- I metodi delle classi sono ereditati, proprio come i metodi delle istanze.


Mentre queste sono le differenze con il suo predecessore:
- Le istruzioni non devono terminare con un punto e virgola (;), però può essere utilizzato per inserire più istruzioni in una sola riga;
- File header non sono obbligatori;
- Tipizzazione forte;
- Type inference;
- Programmazione generica (generics);
- Le funzioni sono oggetti di first-class;
- Le enumerazioni possono avere dati associati;
- Gli operatori possono essere ridefiniti per le classi (overloading degli operatori) e possono essere creati nuovi operatori;
- Le stringhe supportano a pieno l'UNICODE, l'UNICODE può anche essere utilizzato nei nomi di variabile;
- Nessuna gestione delle eccezioni;
- Non esistono puntatori;
- Gli assegnamenti non hanno un valore di ritorno;
- Non è obbligatori utilizzare l'istruzione break nei blocchi switch;
- Variabili e costanti sono sempre inizializzate;
- Non è possibile uscire dai limiti degli array;
- Non è possibile (senza dovuti accorgimenti del programmatore) causare un overflow (run-time error).




La documentazione ufficiale gratuita (in inglese) di Swift potete trovarla qui:
https://developer.apple.com/library...ceptual/Swift_Programming_Language/index.html






(Topic in aggiornamento - lasciate consigli e commenti)

Ottima descrizione ;).
 
Ultima modifica:
Swift è il nuovo linguaggio di programmazione di casa Apple.
Nato come successore dell'Objective-C, Swift prende molto dal suo predecessore, ma è stato ideato per essere molto più semplice, chiaro e intuitivo. Sappiamo infatti tutti che Objective-C era un linguaggio quasi inutilizzabile: la sua sintassi rendeva problematica la ricerca di errori, causando l'odio degli sviluppatori.
Con Swift Apple vuole eliminare questo odio per lo sviluppo per iOS e OS X.


Swift è un linguaggio di programmazione compilato multi-paradigma.
Paradigmi di programmazione supportati:
- Orientato agli oggetti;
- Funzionale;
- Imperativo;
- Strutturato a blocchi.


Swift mantiene alcune caratteristiche uguali a Objective-C:
- Tipi numerici di base (Int, UInt, Float, Double);
- Quasi tutti gli operatori di Obj-C sono portati su Swift, ma Swift ne introduce anche di nuovi;
- Per raggruppare le istruzioni si usano sempre le parentesi graffe
- L'operatore di assegnamento (per le variabili) è sempre il simbolo uguale (=);
- Le parentesi quadre sono utilizzate per gli array;
- for, while, if, switch sono simili, hanno solo qualche funzionalità in più;
- I metodi delle classi sono ereditati, proprio come i metodi delle istanze.


Mentre queste sono le differenze con il suo predecessore:
- Le istruzioni non devono terminare con un punto e virgola (;), però può essere utilizzato per inserire più istruzioni in una sola riga;
- File header non sono obbligatori;
- Tipizzazione forte;
- Type inference;
- Programmazione generica (generics);
- Le funzioni sono oggetti di first-class;
- Le enumerazioni possono avere dati associati;
- Gli operatori possono essere ridefiniti per le classi (overloading degli operatori) e possono essere creati nuovi operatori;
- Le stringhe supportano a pieno l'UNICODE, l'UNICODE può anche essere utilizzato nei nomi di variabile;
- Nessuna gestione delle eccezioni;
- Non esistono puntatori;
- Gli assegnamenti non hanno un valore di ritorno;
- Non è obbligatori utilizzare l'istruzione break nei blocchi switch;
- Variabili e costanti sono sempre inizializzate;
- Non è possibile uscire dai limiti degli array;
- Non è possibile (senza dovuti accorgimenti del programmatore) causare un overflow (run-time error).




La documentazione ufficiale gratuita (in inglese) di Swift potete trovarla qui:
https://developer.apple.com/library...ceptual/Swift_Programming_Language/index.html






(Topic in aggiornamento - lasciate consigli e commenti)
Ottimo!
Aggiungerei però che un newbie che vuole diventare uno sviluppatore iOS non può buttarsi direttamente su Swift, cioè può farlo ma sarebbe consigliato prima imparare l' Objective-C visto che comunque un bel po di roba che gira su iOS e MacOS X (comprese delle librerie, mi pare) sono scritte in questo linguaggio, e passare poi a Swift che diciamo semplifica il lavoro... un po come succede per C e C++ (ecco perché dico che non é necessario, ma consigliabile) :)

PS: [MENTION=100009]SpeedJack[/MENTION] scusami se ho detto qualcosa di errato (anzi correggimi), ma é quello che ho capito leggendo qui e là sul Web (in una settimana eh) riguardo Swift.
 
  • Mi piace
Reazioni: ClothesBridge
[MENTION=100009]SpeedJack[/MENTION] volevo avvisarti che Apple ha aperto un blog dedicato interamente a Swift:

https://developer.apple.com/swift/blog/

Contiene materiale utile per chi vuole cimentarsi col linguaggio, anche se non mi sembra per i principianti, ma per chi é già "addetto ai lavori"

Inviato dal mio HUAWEI G510-0100 utilizzando Tapatalk
 
Ma se l'hanno sviluppato in Java e sfruttano la JVM, perché non supportare direttamente il Java? Mah. Forse per vincolare lo sviluppo al Mac.
 
Ma se l'hanno sviluppato in Java e sfruttano la JVM, perché non supportare direttamente il Java? Mah. Forse per vincolare lo sviluppo al Mac.

Perché non è stato sviluppato in Java, non sfrutta la JVM e non ha proprio niente a che fare con il Java. Probabilmente ti stai confondendo con qualcos'altro, Swift è praticamente un Objective-C 2.0: è compilato, usa Cocoa (per intenderci è l'equivalente di .net per C#) e lascia la possibilità di importare codice di Obj-C.

Realisticamente credo che in futuro diventerà tanto cross platform quanto Objective-C, che teoricamente lo si può usare ovunque, ma praticamente non ha senso al di fuori da roba Apple. Per ora funziona solo su iOS e OSX perché è proprio appena nato.
 
  • Mi piace
Reazioni: ClothesBridge
Ultima modifica:
Perché non è stato sviluppato in Java, non sfrutta la JVM e non ha proprio niente a che fare con il Java. Probabilmente ti stai confondendo con qualcos'altro, Swift è praticamente un Objective-C 2.0: è compilato, usa Cocoa (per intenderci è l'equivalente di .net per C#) e lascia la possibilità di importare codice di Obj-C.

Realisticamente credo che in futuro diventerà tanto cross platform quanto Objective-C, che teoricamente lo si può usare ovunque, ma praticamente non ha senso al di fuori da roba Apple. Per ora funziona solo su iOS e OSX perché è proprio appena nato.

Se l'ho scritto è perché l'ho letto da una fonte certa la quale è il sito ufficiale. Ho capito male?

Swift - Downloads
For the majority of users, this is the version you will want to download. This package contains the latest Stable release of Swift. Since Swift is written in Java, this package will run on all supported platforms with Java Runtime Environment 1.6 or greater.

The source code for Swift is available to developers who have an interest in contributing new features. The code is browsable online, or accessible through Subversion. To download and compile the source code, you will need Apache Ant and Java JDK.

[edit]
Ahah, ok. Avevo capito male. Il link linkato sul sito develop di apple fa riferimento a questo linguaggio che è un linguaggio scripting, però c'è lo potevano scrivere invece di linkarlo a muzzo.
 
[...]diventerà tanto cross platform quanto Objective-C, che teoricamente lo si può usare ovunque, ma praticamente non ha senso al di fuori da roba Apple[...]

Come mai, se é possibile usarlo ovunque, é relegato ad Apple?

PS: Sto dando un' occhiata a GNUStep, ma é vecchio cavolo...
 
"diventerà tanto cross platform quanto Objective-C"
Sicuramente significa: lo si potrà utilizzare solo sui sistemi di apple. Io mi sono confuso con Swift Scripting perché, leggendo sul sito develop di apple, era linkato e quindi ho subito pensato che era il sito ufficiale di Swift di Apple e per questo motivo ho pensato che potesse girare anche su windows e da li è nata la "battuta" di steve. Credo.
 
Come mai, se é possibile usarlo ovunque, é relegato ad Apple?

PS: Sto dando un' occhiata a GNUStep, ma é vecchio cavolo...

Objective-C è possibile usarlo anche su linux (GCC o Clang) e windows (MinGW o Cygwin), realisticamente in futuro sarà lo stesso anche per Swift. I linguaggi non sono praticamente mai single platform: una volta che definisci lo standard chiunque ha la possibilità di creare un compilatore o un interprete per un altra piattaforma e anche se non definisci lo standard, come Objective-C (almeno credo), nessuno ti impedisce di provarci comunque.
La cosa difficile è riscrivere il framework, ma hai già notato che esiste GNUStep, che tutto sommato mi sembra aggiornato (July 26 2013 stando a wikipedia).

Diciamo che è regalato tanto quanto C# e VB.net sono dei regali da parte di microsoft. Non ci si guadagna niente a tenerlo single platform, ma di fatto se non vuoi sviluppare per roba Apple (soprattutto per iOS) non hai ragione per preferirlo a qualsiasi altro linguaggio: GNUStep non sarà mai Cocoa esattamente come Mono non sarà mai .Net.
 
Però bisogna aspettare sempre dei terzi, ufficialmente non credo che giri su linux. Come monodevelop per il .net, no?

Non mi ero accorto di questa risposta.
Swift userà LLVM quindi se Apple deciderà di renderlo open source sarà proprio mantenuto cross-platform (*) ufficialmente. Per saperne qualcosa in più bisogna aspettare, per ora non si sa niente (si vocifera che ci sono buone possibilità che sia open source) ed è ancora in beta.

(*) Cross-platform tanto quanto il C#, ovvero solo il linguaggio, di sicuro Cocoa rimane chiuso.