Apple выпусціў мову праграмавання Swift 5.3 і адкрыў код бібліятэкі Swift System

Кампанія Apple абвясціла аб адкрыцці зыходных тэкстаў бібліятэкі 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()" пры звароце да нізкаўзроўневых прымітываў, але робіць дадзеную працу больш бяспечнай і
зручнай.

Таксама можна адзначыць публікацыю рэлізу мовы праграмавання Swift 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-код можа змешвацца з кодам на З і Objective-C), але адрозніваецца выкарыстаннем сродкаў аўтаматычнага размеркавання памяці і кантролю перапаўненні зменных і масіваў, што значна павялічвае надзейнасць і бяспеку кода. Swift таксама прапануе мноства сучасных метадаў праграмавання, такіх як замыканні, абагульненае праграмаванне, лямбда-выразы, картэжы і слоўнікавыя тыпы, хуткія аперацыі над калекцыямі, элементы функцыянальнага праграмавання. Версія для Linux не прывязана да Objective-C Runtime, што дазваляе выкарыстоўваць мову ў асяроддзі, у якіх адсутнічае падтрымка Objective-C.

Рэалізацыя Swift пабудавана з задзейнічаннем тэхналогій вольнага праекта LLVM. Для забеспячэння высокай прадукцыйнасці Swift-праграмы кампілююцца ў машынны код, які выконваецца ў тэстах Apple на 30% хутчэй кода на Objective-C. Замест зборшчыка смецця ў Swift выкарыстоўваюцца сродкі падліку спасылак на аб'екты. У пастаўку ўваходзіць пакетны менеджэр Менеджэр пакетаў Swift, які прадстаўляе сродкі для распаўсюджвання модуляў і пакетаў з бібліятэкамі і праграмамі на мове Swift, кіравання залежнасцямі, аўтаматызаванай загрузкі, зборкі і звязвання кампанентаў.

Крыніца: opennet.ru

Дадаць каментар