Swift (programmalastırıw tili)

**Swift** - joqarı dárejeli ulıwma maqsetli, kóp paradigmalı, kompilyaciyalanǵan programmalastırıw tili. Ol Apple Inc. hám ashıq kodlı jámiyetshilik tárepinen jaratılǵan til. Swift mashina kodına kompilyaciya isleydi, óytkeni ol LLVM tiykarındaǵı kompilyator. Swift dáslepki ret 2014-jıl iyunda shıǵarıldı hám Swift úskeneler dizbegi 2014-jılı shıǵarılǵan, 6-versiyasınan baslap Xcode-ta jetkizildi.

Apple kompaniyası Swift-ti Objective-C menen baylanıslı bolǵan kóplegen tiykarǵı koncepciyalardı, atap aytqanda dinamikalıq jiberiw, keń tarqalǵan keshiktiriw, keńeytilgen programmalastırıw hám uqsas imkaniyatlardı qollawǵa arnalǵan, biraq programmalıq qural qátelerin anıqlawdı jeńilletetuǵın «qáwipsiz» usıl menen; Swift-te nol kórsetkishin alıp taslaw sıyaqlı ayırım ulıwma programmalastırıw qátelerin sheshetuǵın imkaniyatlar bar hám apat piramidasınıń aldın alıwǵa járdemlesetuǵın sintaksislik «qanttı» támiyinleydi. Swift protokoldı keńeytiw koncepciyasın, tiplerge, strukturalarǵa hám klaslarǵa qollanıwǵa bolatuǵın keńeytpe sistemasın qollaydı, onı Apple programmalastırıw paradigmalarınıń anıq ózgerisi retinde «protokolǵa baǵdarlanǵan programmalastırıw» dep ataydı (belgiler menen tip klaslarına uqsas).

Swift Apple kompaniyasınıń 2014-jılǵı Dúnyajúzlik baǵdarlamashılar konferenciyasında (WWDC) kópshilikke tanıstırıldı. Ol 2014-jılı 1.2 versiyasına hám WWDC 2015 kórgizbesinde Swift 2 versiyasına quramalı jańalawdı ótkerdi. Dáslebinde menshikli til, 2.2 versiyası Apple platformaları menen Linux ushın, 2015-jıl 3-dekabrde Apache 2.0 licenziyası boyınsha ashıq kodlı programmalıq quralǵa aylandı.

3.0 versiyası arqalı Swift sintaksisi zárúr evolyuciyadan ótti, tiykarǵı topar keyingi versiyalarda dáslepki turaqlılıqqa itabar berdi. 2018-jıldıń birinshi shereginde Swift ataqlılıǵı boyınsha Objective-C-den ozıp ketti.

2017-jılı shıǵarılǵan Swift 4.0 ayırım ornatılǵan klaslar menen strukturalarǵa birneshe ózgerisler kirgizdi. Swift programmasınıń aldıńǵı versiyaları menen jazılǵan kodtı Xcode ishine ornatılǵan tasıw funkciyası arqalı jańalawǵa boladı. 2019-jıl mart ayında shıǵarılǵan Swift 5 Apple platformalarında Swift jumıs waqtın Apple operacion sistemalarına kirgiziwge imkaniyat beretuǵın turaqlı ekilik interfeysti usındı. Ol Swift 4 penen úylesimli derek bolıp tabıladı.

Swift 5.1 rásmiy túrde 2019-jıl sentyabrde shıǵarıldı. Swift 5.1 modul turaqlılıǵın engiziw arqalı kompilyaciya waqtında tildiń turaqlı imkaniyatların keńeytiw Swift 5-tiń aldıńǵı versiyasına tiykarlanadı. Modul turaqlılıǵın engiziw Swift-tiń keleshektegi versiyaları menen jumıs isleytuǵın ekilik freymvorklerdi jaratıwǵa hám ulıwma paydalanıwǵa imkaniyat beredi.

2021-jılda ótkerilgen WWDC-te Apple rásmiy túrde járiyalaǵan Swift 5.5 parallel hám asinxron kod ushın til qollawın aytarlıqtay keńeytedi, atap aytqanda aktyor modeliniń unikal versiyasın usınadı.

Swift 5.9, 2023-jıl sentyabrde shıǵarıldı hám makrosistemanı, ulıwma parametr paketlerin hám jańa tutınıw operatorı sıyaqlı iyelik imkaniyatların qamtıydı.

Aǵımdaǵı versiyası, Swift 5.10, 2024-jıl mart ayında shıǵarıldı. Bul versiya maǵlıwmatlar jarısınıń aldın alıw ushın maǵlıwmatlardı tolıq izolyaciyalawǵa imkaniyat beretuǵın tildiń parallel modelin jaqsılaydı. Bul sonday-aq Swift 6 aldındaǵı sońǵı versiya. 5.10 versiyası házirgi waqıtta macOS, Windows hám tájiriybelik paydalanıwda Linux ushın bar.

## Tariyxı
Swift programmalastırıw tilin jaratıw 2010-jıldıń iyul ayında Kris Lattner hám Apple-degi kóplegen basqa baǵdarlamashılardıń birge islesiwi menen baslandı. Swiftke Apple kompaniyasınıń 1980-jıllardıń basınan berli aytarlıqtay ózgerissiz qalǵan hám zamanagóy til imkaniyatları joq burınǵı Objective-C programmalastırıw tilin almastırıw zárúrligi túrtki boldı. Swift til ideyaların «Objective-C, Rust, Haskell, Ruby, Python, C#, CLU hám dizimge kirmeytuǵın basqada tillerden» aldı. 2014-jıl 2-iyunda Apple Worldwide Developers Conference (WWDC) qosımshası Swift járdemi menen jazılǵan birinshi hámmege ǵalabalıq programma boldı. Konferenciyada dizimnen ótken Apple baǵdarlamashılarına programmalastırıw tildiń beta versiyası shıǵarıldı, biraq kompaniya Swift-tiń sońǵı versiyası sınaq versiya menen úylesimli ashıq kod boladı dep wáde bermedi. Tolıq shıǵarılım ushın kerek bolsa, Apple ashıq kod túrlendirgishlerin kópshilikke usınıwdı rejelestirdi.

Swift programmalastırıw tiliniń biypul 500 betlik qollanbası WWDC-te shıǵarıldı hám Apple Books Store menen rásmiy veb-saytında bar.

### Platformalar
Swift qollaytuǵın platformalar - Apple operacion sistemaları (Darwin, iOS, iPadOS, macOS, tvOS, watchOS), Linux, Windows hám Android.

Swift dizaynınıń tiykarǵı aspekti onıń Cocoa hám Cocoa Touch freymvorkları sıyaqlı aldınǵı on jıllıqlarda Apple ónimleri ushın islep shıǵarılǵan ámeldegi Objective-C kodınıń úlken bólimi menen óz-ara islesiw imkaniyatı bolıp tabıladı. Apple platformalarında ol C,  Objective-C, C++ hám Swift kodların bir programmada iske túsiriwge imkaniyat beretuǵın Objective-C jumıs waqtı kitapxanası menen baylanısadı.

## Ózgeshelikleri
Swift - bul programmalastırıw tili teoriyasınıń zamanagóy koncepciyaların qollanatuǵın hám ápiwayı, biraq kúshli sintaksisti usınıwǵa háreket etetuǵın ulıwma maqsetli programmalastırıw tili. Swift hár túrli programmalastırıw tillerindegi innovaciyalar menen konvenciyalardı biriktiredi, ol Apple platformalarında tiykarǵı jaratıw tili retinde almastırılǵan Objective-C-den ayrıqsha ilhamlandırıladı

Swift tezligin joǵaltpay, jańa baǵdarlamashılar ushın qáwipsiz hám miyrimli bolıw ushın jaratılǵan. Ádepki boyınsha Swift barlıq yadtı avtomat túrde basqaradı hám ózgeriwshi mánislerdiń bárqulla paydalanıw aldında inicializaciyalanıwın támiyinleydi. Massiv qatnası shamadan tıs qáteler ushın tekseriledi hám pútin operaciyalar tolıp ketiw ushın tekseriledi. Parametr atları anıq API dúziwge imkaniyat beredi. Protokollar tipler qabıllay alatuǵın interfeyslerdi anıqlaydı, al keńeytpeler baǵdarlamashılarǵa bar tiplerge kóbirek funkciya qosıwǵa imkaniyat beredi. Swift klasları, sub tiplerdi hám metodtı qayta anıqlawdı qollaw arqalı obyektke baǵdarlanǵan programmalastırıwǵa imkaniyat beredi. Qosımshalar nol mánislerin anıq hám qáwipsiz qayta islewge imkaniyat beredi. Bir waqıttaǵı programmalardı asinxronlaw/kútiw sintaksisi arqalı jazıwǵa boladı hám aktyorler maǵlıwmatlar jarısların óshiriw ushın ulıwma ózgermeli jaǵdaydı izolyaciyalaydı.

### Tiykarǵı sintaksis
Swift sintaksisi C stilindegi tillerge uqsas. Kod ádepki boyınsha global kólemde orınlana baslaydı Yaǵnıy, `@main` atributı strukturanı, klastı yamasa programmanıń kiriw noqatın qamtıp kórsetiw ushın, dizimge alıw deklaraciyasın (járiyalanıwın) qollanıwǵa boladı..

Swifttiń "Sálem, Álem!" programması tómendegishe:
```swift
print("Sálem, álem!")
```
Bunda paydalanılatuǵın `print(_:separator:terminator:)` funkciyası sırtqı modullerdi importlawdı talap etpesten, barlıq programmalarda bar bolǵan Swift standart kitapxanasına kiredi. Swift tilindegi operatorlar noqatlı útir menen juwmaqlanbawı kerek, biraq bir qatarda jazılǵan bir neshe operatordı bóliw ushın noqatlı útir kerek. Bir qatarlı kommentariyalar // arqalı baslanadı hám aǵımdaǵı qatardıń sońına shekem dawam etedi. Kóp qatarlı kommentariyalar /* hám */ simvollarınan ibarat..

Konstantalar `let` gilt sózi menen, al ózgeriwshiler `var` gilt sózi menen járiyalanadı. Mánisler oqılmastan aldın inicializaciyalanıwı kerek. Mánisler berilgen dáslepki mánistiń tipin shıǵarıwı múmkin. Dáslepki mánis, mánisti járiyalawdan keyin ornatılsa, tip anıq túrde járiyalanıwı kerek.
```swift
let highScoreThreshold = 1000 // Int tipindegi konstanta. Tip berilgen mánis tiykarında shıǵarıladı.

var currentScore = 980 // Int tipindegi ózgeriwshi.
currentScore = 1200 // Ózgeriwshilerdiń mánisi waqıttıń ótiwi menen ózgeriwi múmkin.

let playerMessage: String // String anıq tipi bar konstanta.
if currentScore > highScoreThreshold {
 playerMessage = "Siz eń jaqsı oyınshısız!"
} else {
 playerMessage = "Keyingi ret sátlilik."
}

print(playerMessage) // "Siz eń jaqsı oyınshısız!" dep basıp shıǵaradı.
```


## Derekler

## Sırtqı siltemeler

* Swift at Apple Developer
* Swift's source code on GitHub
* Swift Example
* Server-side Swift - The Vapor Framework