硬核干货——《中小企业 AI 实战指南》免费下载! 了解详情
写点什么

苹果发布 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:174692

评论

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

分布式消息中间件(1):Rabbitmq入门到高可用实战!学会了这个还怕被B站面试官看不起?

北游学Java

Java 分布式 RabbitMQ 中间件

chia奇亚挖矿软件开发|chia奇亚挖矿APP系统开发

系统开发

贝壳基于 Flink 的实时计算演进之路

Apache Flink

flink

网络协议学习笔记 Day5

穿过生命散发芬芳

网络协议 4月日更

近期值得关注的四款工具

彭宏豪95

效率 工具 Mac 4月日更

系统高可用之健康检查和健康度量那些事

vivo互联网技术

高可用 服务器

IT 专业的高校大学生编程技能及就业问卷调研

Yano

问卷调查

2021团体程序设计天梯赛-部分题解

玄兴梦影

算法 比赛 算法解析

金三银四 Java 架构面试指南上线, 1000 余道大厂面试真题,送你上岸

Java 编程 程序员 架构 面试

Android 关于CPU类型的so文件兼容问题(ABI)

寻找生命中的美好

android native so库 abi so文件

Substrate 合约书之合约语言框架

Patract

rust Substrate polkadot Patract Wasm

教育是限制吗?

箭上有毒

4月日更

阿里P8独家揭秘:短期内升职加薪的方法,到底是什么?

Java架构师迁哥

容器 & 服务: 扩容(二)

程序员架构进阶

容器 k8s 28天写作 弹性扩容 4月日更

2021金三银四最新拼多多 +蚂蚁金服 +头条(已拿offer),面试真题分享!

Java 编程 程序员 架构 面试

Linux字符截取命令-cut

进击的梦清

Linux 运维 xshell

MySQL 死锁套路:一次诡异的批量插入死锁问题分析

AI乔治

Java MySQL 架构

刹车失灵,数据的刹车是否也会失灵?

BinTools图尔兹

数据库 运维 dba 数据库管理工具

RocketMQ 在使用上的一些排坑和优化

AI乔治

Java 架构 分布式 RocketMQ 高并发

数据驱动的元数据组件

鲸品堂

方法论 架构设计原则 架构设计实战 数据分析方法论

chia奇亚分币软件开发|chia奇亚分币APP系统开发

系统开发

JVM类加载机制笔记

风翱

4月日更 JVM类加载

基于MySQL存储的自研消息队列架构设计文档

Geek_2e7dd7

怎么理解组织?

石云升

团队建设 28天写作 职场经验 管理经验 4月日更

合作伙伴眼中的鸿蒙,专访海雀科技研发总监李尹

Geek_283163

linux高性能服务器编程--高性能服务器程序框架

赖猫

Linux 服务器开发 高性能服务器 C/C++后端

聚力边缘计算 共建数字中国丨浪潮边缘云ICP Edge 2.0 全新发布

【死磕JVM】什么是JVM调优?

牧小农

JVM jvm调优 JVM基础

聪明人的训练(二十六)

Changing Lin

4月日更

分布式消息中间件(2):Kafka系统学习—集群搭建与使用、副本机制和实时日志统计流程

北游学Java

Java kafka 分布式 中间件

xch挖矿APP开发|xch挖矿系统软件开发

系统开发

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