Apple пуска Π΅Π·ΠΈΠΊ Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅ Swift 5.3 ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Swift System с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄

Apple обявиха относно отварянСто Π½Π° изходния ΠΊΠΎΠ΄ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° БистСма Swift, ΠΊΠΎΠΉΡ‚ΠΎ прСдоставя ΠΈΠ΄ΠΈΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π΅Π½ Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ½ΠΈ интСрфСйси Π·Π° систСмни извиквания ΠΈ Ρ‚ΠΈΠΏΠΎΠ²Π΅ Π΄Π°Π½Π½ΠΈ ΠΎΡ‚ ниско Π½ΠΈΠ²ΠΎ. Swift System ΠΏΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½ΠΎ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° само систСмни повиквания Π·Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΈ Π½Π° Apple, Π½ΠΎ сСга Π΅ прСнСсСн към Linux. ΠšΠΎΠ΄ΡŠΡ‚ Π½Π° Swift System Π΅ написан Π½Π° Π΅Π·ΠΈΠΊΠ° Swift ΠΈ разпространява сС ΠΎΡ‚ Π»ΠΈΡ†Π΅Π½Π·ΠΈΡ€Π°Π½ ΠΏΠΎΠ΄ Apache 2.0.

Swift System прСдоставя Π΅Π΄ΠΈΠ½Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ° Π·Π° Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ систСмнитС интСрфСйси, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π½Π° всички ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Π½ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΈ, Π±Π΅Π· Π΄Π° са Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ спСцифични C Ρ€Π°ΠΌΠΊΠΈ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ‚Π΅ Π½Π° Swift. Π’ ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ Swift System Π½Π΅ ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€Π° самитС систСмни извиквания, Π° прСдоставя ΠΎΡ‚Π΄Π΅Π»Π½ΠΎ подмноТСство ΠΎΡ‚ API Π·Π° всяка ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°, ΠΊΠ°Ρ‚ΠΎ Π²Π·Π΅ΠΌΠ° ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Ρ‚Π°Π·ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ΠΈ Ρ‚ΠΎΡ‡Π½ΠΎ отразява интСрфСйситС Π½Π° ниско Π½ΠΈΠ²ΠΎ Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ‚Π° систСма. ΠžΡΠ½ΠΎΠ²Π½Π°Ρ‚Π° Ρ†Π΅Π» Π½Π° ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° систСмата Swift Π΅ Π΄Π° сС опрости Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΌΠ΅ΠΆΠ΄ΡƒΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ прилоТСния, ΠΊΠ°Ρ‚ΠΎ Π½Π°ΠΏΡ€. SwiftNIO ΠΈ SwiftPM. БистСмата Swift Π½Π΅ ΠΏΡ€Π΅ΠΌΠ°Ρ…Π²Π° нСобходимостта ΠΎΡ‚ разклоняванС въз основа Π½Π° "#if os()" ΠΏΡ€ΠΈ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²ΠΈ Π½Π° ниско Π½ΠΈΠ²ΠΎ, Π½ΠΎ ΠΏΡ€Π°Π²ΠΈ Ρ‚Π°Π·ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΠΎ-бСзопасна ΠΈ
ΡƒΠ΄ΠΎΠ±Π½ΠΎ.

ΠœΠΎΠΆΠ΅Ρ‚Π΅ ΡΡŠΡ‰ΠΎ Π΄Π° ΠΎΡ‚Π±Π΅Π»Π΅ΠΆΠΈΡ‚Π΅ публикация вСрсия Π½Π° Π΅Π·ΠΈΠΊΠ° Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅ Swift 5.3. ΠžΡ„ΠΈΡ†ΠΈΠ°Π»Π½ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ†ΠΈΠΈ ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²Π΅Π½ΠΈ Π·Π° Linux (Ubuntu 16.04/18.04/20.04, CentOS 7/8), macOS (Xcode 12) ΠΈ Windows 10. Π˜Π·Ρ…ΠΎΠ΄Π½ΠΈ тСкстовС разпространСниС Π»ΠΈΡ†Π΅Π½Π·ΠΈΡ€Π°Π½ ΠΏΠΎΠ΄ Apache 2.0.

Новата вСрсия добавя ΠΏΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Windows ΠΈ Π·Π°ΠΏΠΎΡ‡Π½Π° доставка Π½Π° инструмСнти Π·Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ ΠΈ изпълнСниС Π½Π° Swift прилоТСния Π½Π° Windows 10. Π•Π·ΠΈΠΊΠΎΠ²Π°Ρ‚Π° функционалност ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠΈ Π΄Π° сС ΡƒΡΡŠΠ²ΡŠΡ€ΡˆΠ΅Π½ΡΡ‚Π²Π°. НовитС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²ΠΊΠ»ΡŽΡ‡Π²Π°Ρ‚ добавянС Π½Π° ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ Π·Π° Ρ‚ΠΈΠΏΠ° String, Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΈΠ·Ρ€Π°Π·Π° β€žwhereβ€œ, ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π² сСмантиката Π½Π° didSet, ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° ΡƒΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° мноТСство шаблони Π² Catch ΠΈΠ·Ρ€Π°Π·ΠΈ ΠΈ добавянС Π½Π° Ρ‚ΠΈΠΏ
Float16, Π°Ρ‚ΠΎΠΌΠ΅Π½ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°.

Π Π°Π·ΠΌΠ΅Ρ€ΡŠΡ‚ Π½Π° ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΡ‚Π΅ прилоТСния Π΅ Π½Π°ΠΌΠ°Π»Π΅Π½ - Π°ΠΊΠΎ Π² Swift 4 Ρ€Π°Π·ΠΌΠ΅Ρ€ΡŠΡ‚ Π½Π° сглобСната ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° бСшС 2.3 ΠΏΡŠΡ‚ΠΈ ΠΏΠΎ-голям ΠΎΡ‚ вСрсията Π² Objective-C, сСга Ρ€Π°Π·Π»ΠΈΠΊΠ°Ρ‚Π° Π΅ Π½Π°ΠΌΠ°Π»Π΅Π½Π° Π΄ΠΎ 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 ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° прСброяванС Π½Π° Ρ€Π΅Ρ„Π΅Ρ€Π΅Π½Ρ‚Π½ΠΈ ΠΎΠ±Π΅ΠΊΡ‚ΠΈ. ΠŸΠ°ΠΊΠ΅Ρ‚ΡŠΡ‚ Π²ΠΊΠ»ΡŽΡ‡Π²Π° ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡŠΡ€ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ ΠœΠ΅Π½ΠΈΠ΄ΠΆΡŠΡ€ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ Swift, ΠΊΠΎΠΉΡ‚ΠΎ прСдоставя инструмСнти Π·Π° разпространСниС Π½Π° ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ прилоТСния Π½Π° Π΅Π·ΠΈΠΊΠ° Swift, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° зависимости, Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€Π°Π½ΠΎ Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅, ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ ΠΈ ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€