03/06/14 19:50
R0gerBlack
Salve a tutti.
Non so se avete seguito recentemente gli avvenimenti della WWDC (Worldwide Developer Conference) della Apple, ma oltre alle solite novità (nuovo iOS, ecc.) hanno presentato anche un nuovo linguaggio (con il motto "Objective-C without the C"
(Link immagine)
cdn2.vox-cdn.com/assets/4553317/…
Utilizza i framework Cocoa e Cocoa Touch. Si sviluppa utilizzando l'IDE Xcode. Forniscono una documentazione completa ed è possibile mandare app sull'App Store
wpuploads.appadvice.com/wp-content/uploads/2014/06/…
Una differenza molto importante (oltre a una sintassi più leggera, cosiddetta senza "code noise" è che a differenza dell'Objective-C, Swift è un linguaggio multi-paradigma (Orientato agli oggetti, Funzionale, Imperativo, Strutturato a blocchi).
Per esempio questo codice (Da notare l'assenza di punti e virgola)
non è solamente una riga di codice, ma un programma completo. Scritto così com'è potrà essere eseguito, senza includere librerie.
Ora, probabilmente molti in questo sito non hanno avuto a che fare molto con Objective-C, tuttavia ha suscitato il suo interesse (come per lo stesso Piero che ha fatto una videolezione sulla programmazione di app per iPhone e pubblicò il gioco 3d tunnel), tuttavia, avendo io avuto (poco) a che fare con Objective-C illustrerò qualche differenza introdotta (tratte da quello che ho capito del linguaggio)
Questo blocco di codice dichiara una stringa che ingloba il valore di 3 variabili differenti.
Sintassi molto lunga per l'ultima riga, in Swift diventa
Notevolmente più semplice, no?
Le prime cose che si notano sono: La mancanza di punti e virgola, non si specifica un tipo per le variabili e c'è un'interpretazione delle variabili tra le apici (che personalmente mi ricorda il PHP).
Per dichiarare costanti invece si usa questa forma
(e qui mi ricorda fortemente F#, come anche la caratteristica della programmazione imperativa)
È comunque possibile specificare un tipo quando mancano informazioni oppure quando non si specifica nella dichiarazione mettendo il simbolo due punti ( davanti al nome della variabile seguito dal Tipo:
Fin qui sembra qualcosa di vagamente visto in altri linguaggi, ma ecco qualche peculiarità del linguaggio.
La documentazione Apple recita
"You can use almost any character you like for constant and variable names, including Unicode characters:"
e riporta questo esempio
(EDIT: Il forum non interpreta i caratteri, per vedere l'esempio andate qui developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/…)
Una cosa che mi piace molto rispetto all'Objective-C è che una classe si dichiara semplicemente con la keyword class seguita dal nome
Esempio di funzioni
E non mi voglio dilungare ulteriormente.
Per concludere con il linguaggio, voglio dire che sebbene sembri una specie di nuovo linguaggio ad alto livello (tipo Javascript o F#), un'altra grande peculiarità di Swift è che viene compilato con il compilatore LLVM, quindi in codice nativo, cosa che garantisce alte prestazioni (dopo tutto, delle app ad alto livello sarebbero state facilmente "portate" ad altri SO). Oltre a questo, Swift ha una retrocompatibilità totale (eccetto il wrapping di classi C++ che andrà fatto con classi Objective-C) con l'Objective-C e il C, quindi si potrà utilizzare la vecchia sintassi.
È disponibile una documentazione di 500 pagine su iBooks Store o qui (developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/)
Visto che su Pierotofy, sebbene siano presenti molti linguaggi per inviare i programmi (Tra cui il Lua, che, non per minimizzarlo, non conta un solo programma all'interno del sito e Fortran che ne conta solo 1), manca qualcosa come l'Objective-C, non si potrebbe aggiungere ora Swift o Swift/Objective-C (visto che è retrocompatibile) e il supporto al linguaggio omonimo nei blocchi di codice (sono curioso di vedere come li interpreta oltre al Plain Text)?
Che ne pensate tutto sommato del linguaggio?
Non so se avete seguito recentemente gli avvenimenti della WWDC (Worldwide Developer Conference) della Apple, ma oltre alle solite novità (nuovo iOS, ecc.) hanno presentato anche un nuovo linguaggio (con il motto "Objective-C without the C"
(Link immagine)
cdn2.vox-cdn.com/assets/4553317/…
Utilizza i framework Cocoa e Cocoa Touch. Si sviluppa utilizzando l'IDE Xcode. Forniscono una documentazione completa ed è possibile mandare app sull'App Store
wpuploads.appadvice.com/wp-content/uploads/2014/06/…
Una differenza molto importante (oltre a una sintassi più leggera, cosiddetta senza "code noise" è che a differenza dell'Objective-C, Swift è un linguaggio multi-paradigma (Orientato agli oggetti, Funzionale, Imperativo, Strutturato a blocchi).
Per esempio questo codice (Da notare l'assenza di punti e virgola)
println("Hello, world")
non è solamente una riga di codice, ma un programma completo. Scritto così com'è potrà essere eseguito, senza includere librerie.
Ora, probabilmente molti in questo sito non hanno avuto a che fare molto con Objective-C, tuttavia ha suscitato il suo interesse (come per lo stesso Piero che ha fatto una videolezione sulla programmazione di app per iPhone e pubblicò il gioco 3d tunnel), tuttavia, avendo io avuto (poco) a che fare con Objective-C illustrerò qualche differenza introdotta (tratte da quello che ho capito del linguaggio)
Questo blocco di codice dichiara una stringa che ingloba il valore di 3 variabili differenti.
// Objective-C NSString *make = @"Porsche"; NSString *model = @"911"; int year = 1968; NSString *message = [NSString stringWithFormat:@"That's a %@ %@ from %d!", make, model, year];
Sintassi molto lunga per l'ultima riga, in Swift diventa
var make = "Porche" var model = "911" var year = 1968 var message = "That's a \(make) \(model) from \(year)."
Notevolmente più semplice, no?
Le prime cose che si notano sono: La mancanza di punti e virgola, non si specifica un tipo per le variabili e c'è un'interpretazione delle variabili tra le apici (che personalmente mi ricorda il PHP).
Per dichiarare costanti invece si usa questa forma
let x = 5
(e qui mi ricorda fortemente F#, come anche la caratteristica della programmazione imperativa)
È comunque possibile specificare un tipo quando mancano informazioni oppure quando non si specifica nella dichiarazione mettendo il simbolo due punti ( davanti al nome della variabile seguito dal Tipo:
let IntegerImplicito = 70 let DoubleImplicito = 70.0 let DoubleEsplicito: Double = 70
Fin qui sembra qualcosa di vagamente visto in altri linguaggi, ma ecco qualche peculiarità del linguaggio.
La documentazione Apple recita
"You can use almost any character you like for constant and variable names, including Unicode characters:"
e riporta questo esempio
let π = 3.14159 let 你好 = "你好世界" let 🐶🐮 = "dogcow"
(EDIT: Il forum non interpreta i caratteri, per vedere l'esempio andate qui developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/…)
Una cosa che mi piace molto rispetto all'Objective-C è che una classe si dichiara semplicemente con la keyword class seguita dal nome
class SomeClass { // class definition goes here }
Esempio di funzioni
class Counter { var count = 0 func increment() { count++ } func incrementBy(amount: Int) { count += amount } func reset() { count = 0 } }
E non mi voglio dilungare ulteriormente.
Per concludere con il linguaggio, voglio dire che sebbene sembri una specie di nuovo linguaggio ad alto livello (tipo Javascript o F#), un'altra grande peculiarità di Swift è che viene compilato con il compilatore LLVM, quindi in codice nativo, cosa che garantisce alte prestazioni (dopo tutto, delle app ad alto livello sarebbero state facilmente "portate" ad altri SO). Oltre a questo, Swift ha una retrocompatibilità totale (eccetto il wrapping di classi C++ che andrà fatto con classi Objective-C) con l'Objective-C e il C, quindi si potrà utilizzare la vecchia sintassi.
È disponibile una documentazione di 500 pagine su iBooks Store o qui (developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/)
Visto che su Pierotofy, sebbene siano presenti molti linguaggi per inviare i programmi (Tra cui il Lua, che, non per minimizzarlo, non conta un solo programma all'interno del sito e Fortran che ne conta solo 1), manca qualcosa come l'Objective-C, non si potrebbe aggiungere ora Swift o Swift/Objective-C (visto che è retrocompatibile) e il supporto al linguaggio omonimo nei blocchi di codice (sono curioso di vedere come li interpreta oltre al Plain Text)?
Che ne pensate tutto sommato del linguaggio?
Ultima modifica effettuata da R0gerBlack 08/06/14 17:38
aaa