写点什么

苹果发布 Swift 6,改进了并发性、测试和跨平台支持

  • 2024-10-16
    北京
  • 本文字数:1294 字

    阅读完需:约 4 分钟

大小:603.85K时长:03:26
苹果发布 Swift 6,改进了并发性、测试和跨平台支持

苹果发布了 Swift 编程语言的 6.0 版,与 macOS 15 和 iOS/iPadOS 18 的正式版本同时推出。新版 Swift 带来了一系列改进,包括更安全的并发性、新的标准测试库以及跨 Linux、Windows 和苹果平台的更广泛的跨平台支持。

 

Swift 是一种编译语言,性能接近 C 或 C++,但对开发人员来说更安全、更易用。它的安全特性包括变量必须在使用前初始化、溢出检查适用于数组和整数、内存管理是自动的、默认情况下对象永远不会为 nil(相当于 null)等。

 

在 Swift 6 中有一种新的可选模式,可通过编译器检查将数据争用错误检测为错误,从而让并发编程更加安全。当两个或多个线程访问同一内存位置时就会发生数据争用,其结果不可预测。发布公告中将这一安全特性描述为“旅程的开始”和“积极开发的领域”。该模式之所以是可选而非默认,主要考虑到误报(假正)的风险,这会阻止正常代码的编译,还有可能遗漏一些错误。

 

另一个关键的新特性是引入了一个名为 Swift Testing 的标准测试框架。这意味着开发人员只需将“import Testing”添加到他们的测试代码中即可,无需添加进一步的依赖项。

 

通过支持更多 C++ 类型和一众虚拟方法,Swift 6 的 C++ 互操作性也得到了改进。这很重要,因为它简化了开发人员将现有代码库迁移到 Swift,并使用 Swift 编写新代码的过程。

 

其他新特性包括了 128 位整数类型、指定函数抛出的异常类型的能力、对泛型代码中不可复制类型的支持,以及嵌入式 Swift(适用于微控制器等目标)的版本预览。

 

苹果和开源 Swift 社区都在努力扩大该语言支持的平台数量,现在它的支持范围包括了苹果自己的 Mac 和系列设备平台、Windows 10 及更高版本(x86 和 Arm)、Ubuntu、CentOS 7、Amazon Linux 2、Red Hat 9、Debian 和 Fedora。目前它还不支持取代 Amazon Linux 2 的 Amazon Linux 2023。

 

由于添加了针对 Linux 的静态 SDK,用 Swift 6 编写 Linux 上的服务端应用程序更容易了——例如,开发目标是 Linux 的时候可以在 macOS 或 Windows 上编译代码。使用静态编译还可以消除大多数兼容性问题,但代价是更高的内存使用率和更大的可执行文件。

 

跨平台的另一个关键特性是,提供核心功能的 Foundation 库现在是用 Swift 编写的,并且在所有平台上都是相同的——这个 2022 年 12 月开始的项目宣告完成。

 

Swift 能否摆脱其仅限苹果平台的形象?

跨平台支持问题涉及到一个更广泛的问题,即 Swift 是否会完全摆脱其在苹果平台的局限而成为主流。原则上,它具有 Rust 等语言的一些优势——包括原生编译和内存安全——但更容易学习和使用。

 

到目前为止的证据表明,Swift 的市场依旧是个小圈子。例如,GitHub 存储库的语言统计数据表明,Swift 的使用率实际上有所下降——从 2016 年的 1.75% 下降到 2024 年的 1.08%——尽管这绝不是一个全面的使用指标。

 

推动跨平台支持可能会提高采用率。挑战在于,苹果对 Swift 的投资将一直优先考虑自家平台而非跨平台支持——而且编程社区大多尚未相信该语言的跨平台潜力。

 

原文链接:https://devclass.com/2024/09/19/apple-releases-swift-6-with-improved-concurrency-testing-cross-platform-support-enough-to-lift-it-out-of-its-niche/

2024-10-16 15:174201

评论

发布
暂无评论
发现更多内容

Too many open files 的四种解决办法

ilinux

融云2021 X-Meetup技术沙龙 探讨音视频技术新方向

融云 RongCloud

高性能 JavaScriptの笔记(四)

空城机

JavaScript 大前端 5月日更

浪潮云洲链斩获2020-2021年度新一代信息技术创新产品殊荣

珠联壁合地设天造|M1 Mac os(Apple Silicon)基于vscode(arm64)配置搭建Java开发环境(集成web框架Springboot)

刘悦的技术博客

Java vscode spring Boot Starter JDK11 m1

从技术趋势看质量赋能

BY林子

敏捷 软件测试 质量赋能

520节日快乐

IT蜗壳-Tango

5月日更

拥有5大核心竞争力的华为云GaussDB,成SACC2021最靓那一个…

华为云开发者联盟

数据库 华为云 GaussDB 存算分离 GaussDB(for Redis)

聊聊dubbo协议

捉虫大师

Windows Terminal 安装和运行

HoneyMoose

5G进京 “赶考”记:“占得上、保持稳、体验优、信号好”四道考题,分别打几分?

脑极体

Hadoop定位问题日志跟踪

InfoQ_Springup

hadoop

并行文件存储和分布式 NFS 文件存储有何不同

焱融科技

容器 云原生 高性能 文件存储 技术博客

This BigData,Hadoop组成及生态

Simon郎

大数据 hdfs YARN hadoop3

微软 WSL 重装操作系统

HoneyMoose

Pulumi 如何在 Windows 环境中设置

HoneyMoose

关于OpenHarmony 2.0共建进展

罗燕珊

开源 鸿蒙 OpenHarmony

Nginx基础配置-反向代理

梁龙先森

nginx 大前端

❤【520特别祝福篇】愿有情人终成眷属,已成眷属爱情稳固

洛神灬殇

爱情 5月日更 520单身福利 520 单身福利

高并发调优backlog多大合适?

运维研习社

nginx 运维 5月日更 并发调优

Windows 任务管理器中如何显示 CPU 逻辑处理器情况

HoneyMoose

CMMI V2.0丨如何通过CMMI真正在企业中的实施规模化敏捷开发

IPD产品研发管理

软件 研发管理 CMMI

快成物流科技 x mPaaS | 小程序容器加持下的技术架构“提质增效”

蚂蚁集团移动开发平台 mPaaS

小程序 移动开发 mPaaS

父母为什么催婚,而你又在逃避什么

小天同学

婚姻 爱情 5月日更

Golang function

escray

学习 极客时间 Go 语言 5月日更

音频均衡器EQ

floer rivor

音视频 Eq

这一次,彻底搞懂 Go Cond

HHFCodeRv

Go 语言

中公、马士兵、千锋、拉勾入局,腾讯课堂“薪选”IT人才培养按下加速键

DT极客

多方安全计算:隐私保护集合求交技术

华为云开发者联盟

数据集 PSI 隐私保护集合交集 可信 伪随机函数

PKI系统简介

上海派拉基础研发

CA PKI

“为爱而生 温暖陪伴”——2021年中国洗地机行业发展峰会圆满落幕

DT极客

苹果发布 Swift 6,改进了并发性、测试和跨平台支持_Android/iOS_Tim Anderson_InfoQ精选文章