Apple Π³ΠΎ ΠΎΠ±Ρ˜Π°Π²ΡƒΠ²Π° програмскиот јазик Swift 5.3 ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° со ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄ Swift System

јаболко објави ΠΎΠ± ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ исходных тСкстов Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Swift System, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ идСоматичСский Π½Π°Π±ΠΎΡ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… интСрфСйсов ΠΊ систСмным Π²Ρ‹Π·ΠΎΠ²Π°ΠΌ ΠΈ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹ΠΌ Ρ‚ΠΈΠΏΠ°ΠΌ Π΄Π°Π½Π½Ρ‹Ρ…. Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Swift System ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π» Ρ‚ΠΎΠ»ΡŒΠΊΠΎ систСмныС Π²Ρ‹Π·ΠΎΠ²Ρ‹ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ Apple, Π½ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ ΠΈ для Linux. Код Swift System написан Π½Π° языкС Swift ΠΈ дистрибуирани ΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Ρ†ΠΈΡ€Π°Π½ ΠΏΠΎΠ΄ Apache 2.0.

Swift System прСдоставляСт Π΅Π΄ΠΈΠ½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ доступа ΠΊ систСмным интСрфСйсам, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° всСх ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ… Π±Π΅Π· примСнСния Π² Swift-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… спСцифичных обвязок Π½Π° языкС Π‘ΠΈ. ΠŸΡ€ΠΈ этом Swift System Π½Π΅ ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅Ρ‚ сами систСмныС Π²Ρ‹Π·ΠΎΠ²Ρ‹, Π° прСдоставляСт ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ΅ подмноТСство API для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ Ρ‚ΠΎΡ‡Π½ΠΎ ΠΎΡ‚Ρ€Π°ΠΆΠ°ΡŽΡ‰Π΅Π΅ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹Π΅ интСрфСйсы ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы. ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ Ρ†Π΅Π»ΡŒΡŽ создания Swift System являСтся ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½ΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ кросс-ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½Ρ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ SwiftNIO ΠΈ SwiftPM. Swift System Π½Π΅ отмСняСт Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ вСтвлСния Π½Π° основС Β«#if os()Β» ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΊ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹ΠΌ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π°ΠΌ, Π½ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΄Π°Π½Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π±ΠΎΠ»Π΅Π΅ бСзопасной ΠΈ
ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΉ.

ΠœΠΎΠΆΠ΅Ρ‚Π΅ исто Ρ‚Π°ΠΊΠ° Π΄Π° Π·Π°Π±Π΅Π»Π΅ΠΆΠΈΡ‚Π΅ ΠΎΠ±Ρ˜Π°Π²ΡƒΠ²Π°ΡšΠ΅ Ρ€Π΅Π»ΠΈΠ·Π° языка программирования Π‘Π²ΠΈΡ„Ρ‚ 5.3. ΠžΡ„ΠΈΡ†ΠΈΡ˜Π°Π»Π½ΠΈ Π³Ρ€Π°Π΄Π±ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²Π΅Π½ΠΈ для Linux (Ubuntu 16.04/18.04/20.04, Π‘entOS 7/8), macOS (Xcode 12) ΠΈ Windows 10. Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹Π΅ тСксты ΡˆΠΈΡ€Π΅ΡšΠ΅ Π»ΠΈΡ†Π΅Π½Ρ†ΠΈΡ€Π°Π½ ΠΏΠΎΠ΄ Apache 2.0.

Π’ Π½ΠΎΠ²ΠΎΠΌ выпускС Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Windows ΠΈ ΠΏΠΎΡ‡Π½Π° поставка инструмСнтария для сборки ΠΈ запуска Swift-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² Windows 10. ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΎ ΠΎΡ‚Ρ‚Π°Ρ‡ΠΈΠ²Π°Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ языка. Из Π½ΠΎΠ²Ρ‹Ρ… возмоТностСй отмСчаСтся Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π° для Ρ‚ΠΈΠΏΠ° String, Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ выраТСния Β«whereΒ», ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ сСмантики didSet, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° указания Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… шаблонов Π² выраТСниях Catch, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ°
Float16, Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ.

Π‘Π½ΠΈΠΆΠ΅Π½ Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ β€” Ссли Π² Swift 4 Ρ€Π°Π·ΠΌΠ΅Ρ€ собранной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π» Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π½Π° Objective-C Π² 2.3 Ρ€Π°Π·Π°, Ρ‚ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ€Π°Π·Ρ€Ρ‹Π² сокращён Π΄ΠΎ 1.5 Ρ€Π°Π·Π°. Π’ Π½ΠΎΠ²ΠΎΠΌ выпускС Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ ускорСна ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ сборка ΠΈ сборка ΠΊΠΎΠ΄Π° с большим числом свойств ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ. Π Π°ΡΡˆΠΈΡ€Π΅Π½Ρ‹ срСдства диагностики Π² компиляторС ΠΈ качСство Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΡ‹Ρ… сообщСний ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ…. Π’ ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠΌ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… рСсурсов, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… Π²ΠΎ врСмя исполнСния, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ изобраТСния. Π’ ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² для Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ опрСдСлСния условных зависимостСй.

ΠŸΠΎΡ‚ΡΠ΅Ρ‚ΠΈΠΌΠ΅ Π΄Π΅ΠΊΠ° Ρ˜Π°Π·ΠΈΠΊΠΎΡ‚ Swift Π³ΠΈ наслСдува Π½Π°Ρ˜Π΄ΠΎΠ±Ρ€ΠΈΡ‚Π΅ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈ ΠΎΠ΄ Ρ˜Π°Π·ΠΈΡ†ΠΈΡ‚Π΅ C ΠΈ Objective-C ΠΈ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡƒΠ²Π° ΠΌΠΎΠ΄Π΅Π» Π½Π° ΠΎΠ±Ρ˜Π΅ΠΊΡ‚ ΠΊΠΎΠΌΠΏΠ°Ρ‚ΠΈΠ±ΠΈΠ»Π΅Π½ со Objective-C (ΠΊΠΎΠ΄ΠΎΡ‚ Π½Π° Swift ΠΌΠΎΠΆΠ΅ Π΄Π° сС мСша со ΠΊΠΎΠ΄ΠΎΡ‚ C ΠΈ Objective-C), Π½ΠΎ сС Ρ€Π°Π·Π»ΠΈΠΊΡƒΠ²Π° Π²ΠΎ ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π°Ρ‚Π° Π½Π° автоматски распрСдСлба Π½Π° ΠΌΠ΅ΠΌΠΎΡ€ΠΈΡ˜Π° ΠΈ ΠΏΡ€Π΅Π»Π΅Π²Π°ΡšΠ΅ Π½Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π° Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ ΠΈ Π½ΠΈΠ·ΠΈ, ΡˆΡ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ја Π·Π³ΠΎΠ»Π΅ΠΌΡƒΠ²Π° довСрливоста ΠΈ бСзбСдноста Π½Π° ΠΊΠΎΠ΄ΠΎΡ‚. Swift исто Ρ‚Π°ΠΊΠ° Π½ΡƒΠ΄ΠΈ ΠΌΠ½ΠΎΠ³Ρƒ ΠΌΠΎΠ΄Π΅Ρ€Π½ΠΈ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°ΡšΠ΅, ΠΊΠ°ΠΊΠΎ ΡˆΡ‚ΠΎ сС Π·Π°Ρ‚Π²ΠΎΡ€Π°ΡšΠ΅, Π³Π΅Π½Π΅Ρ€ΠΈΡ‡ΠΊΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°ΡšΠ΅, Π»Π°ΠΌΠ±Π΄Π° ΠΈΠ·Ρ€Π°Π·ΠΈ, Ρ‚ΠΈΠΏΠΎΠ²ΠΈ Π½Π° Ρ‚ΠΎΡ€Π±ΠΈ ΠΈ Ρ€Π΅Ρ‡Π½ΠΈΠΊ, ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π·Π° Π±Ρ€Π·ΠΎ ΡΠΎΠ±ΠΈΡ€Π°ΡšΠ΅ ΠΈ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°ΡšΠ΅. Π’Π΅Ρ€Π·ΠΈΡ˜Π°Ρ‚Π° Π½Π° Linux Π½Π΅ Π΅ ΠΏΠΎΠ²Ρ€Π·Π°Π½Π° со Objective-C Runtime, ΡˆΡ‚ΠΎ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡƒΠ²Π° Ρ˜Π°Π·ΠΈΠΊΠΎΡ‚ Π΄Π° сС користи Π²ΠΎ срСдини Π²ΠΎ ΠΊΠΎΠΈ Π½Π΅ΠΌΠ° ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π·Π° Objective-C.

Π˜ΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π°Ρ‚Π° Π½Π° Swift Π΅ ΠΈΠ·Π³Ρ€Π°Π΄Π΅Π½Π° со ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅ Π½Π° Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΎΠ΄ бСсплатниот ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ LLVM. Π—Π° Π΄Π° сС ΠΎΠ±Π΅Π·Π±Π΅Π΄Π°Ρ‚ високи пСрформанси, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ‚Π΅ Π½Π° Swift сС ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»ΠΈΡ€Π°Π°Ρ‚ Π²ΠΎ ΠΌΠ°Ρ˜Ρ‡ΠΈΠ½ ΠΊΠΎΠ΄ кој Ρ€Π°Π±ΠΎΡ‚ΠΈ 30% ΠΏΠΎΠ±Ρ€Π·ΠΎ ΠΎΠ΄ ΠΊΠΎΠ΄ΠΎΡ‚ Objective-C Π²ΠΎ тСстовитС Π½Π° Apple. НамСсто собирач Π½Π° Ρ“ΡƒΠ±Ρ€Π΅, Π‘Π²ΠΈΡ„Ρ‚ користи Π±Ρ€ΠΎΠ΅ΡšΠ΅ Ρ€Π΅Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈ Π½Π° ΠΎΠ±Ρ˜Π΅ΠΊΡ‚ΠΈ. ΠŸΠ°ΠΊΠ΅Ρ‚ΠΎΡ‚ Π²ΠΊΠ»ΡƒΡ‡ΡƒΠ²Π° ΠΌΠ΅Π½Π°ΡŸΠ΅Ρ€ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ Π‘Π²ΠΈΡ„Ρ‚ ΠœΠ΅Π½Π°ΡŸΠ΅Ρ€ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ, кој ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡƒΠ²Π° Π°Π»Π°Ρ‚ΠΊΠΈ Π·Π° Π΄ΠΈΡΡ‚Ρ€ΠΈΠ±ΡƒΡ†ΠΈΡ˜Π° Π½Π° ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ со Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π½Π° Ρ˜Π°Π·ΠΈΠΊΠΎΡ‚ Swift, ΡƒΠΏΡ€Π°Π²ΡƒΠ²Π°ΡšΠ΅ со зависности, автоматско Π²Ρ‡ΠΈΡ‚ΡƒΠ²Π°ΡšΠ΅, Π³Ρ€Π°Π΄Π΅ΡšΠ΅ ΠΈ ΠΏΠΎΠ²Ρ€Π·ΡƒΠ²Π°ΡšΠ΅ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ.

Π˜Π·Π²ΠΎΡ€: opennet.ru

Π”ΠΎΠ΄Π°Π΄Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€