写点什么

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

评论

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

MIAOYUN荣获“新质榜样·2024信创力量最佳技术解决方案奖”

MIAOYUN

云计算 云原生 解决方案 信创 超融合

反向 Debug 了解一下?揭秘 Java DEBUG 的基本原理

京东科技开发者

向量数据库如何助力Text2SQL处理高基数类别数据

Zilliz

text2sql Zilli Cloud Waii 高基数类别数据

智能简历筛选系统:AIP打造高效招聘新纪元

大东(AIP内容运营专员)

人工智能

音乐NFT系统开发的技术难点

北京木奇移动技术有限公司

区块链技术 软件外包公司 音乐NFT

正式开源,Doris Operator 支持高效 Kubernetes 容器化部署方案

SelectDB

数据库 数据分析 部署 Kubernetes Serverless 容器化部署

面向法律场景的大模型RAG检索增强解决方案

阿里云大数据AI技术

人工智能 阿里云 LLM rag PAI

深入了解淘宝天猫API接口:商品详情与关键词搜索商品列表的实用指南

代码忍者

淘宝API接口

音视频编解码的开发框架

北京木奇移动技术有限公司

音视频开发 音视频引擎 软件外包公司

质变科技 AI-ready Data Cloud:元数据和事务系统的技术难题和关键设计

AI数据云Relyt

Serverless 元数据 snowflake 云原生数据仓库

2025-01-15:执行操作可获得的最大总奖励 Ⅰ。用go语言,给定一个整数数组 rewardValues,其中包含 n 个代表奖励值的数字。 你开始时的总奖励 x 为 0,并且所有下标都是未标记状

福大大架构师每日一题

福大大架构师每日一题

版面分析技术研究方向:真实世界中更丰富的版面布局

合合技术团队

人工智能 AI 数据集 Transformer

探索基于大语言模型的多智能体系统:AIP智能体平台引领新纪元

大东(AIP内容运营专员)

人工智能

音视频编解码开发的技术难点

北京木奇移动技术有限公司

音视频开发 音视频引擎 软件外包公司

哈啰:构建智能出行RAG,ES还是向量数据库?

Zilliz

Milvus 向量数据库 rag 哈啰 zilliz cloud

VMware ESXi 8.0U3c macOS Unlocker & OEM BIOS ConnectX-3 网卡定制版 (集成驱动版)

sysin

esxi

从AI生成内容到虚拟现实:娱乐体验的新边界

天津汇柏科技有限公司

增强现实 VR虚拟现实 AI 人工智能

【GreatSQL优化器-11】finalize_table_conditions

GreatSQL

基于云主机搭建Termgraph绘图工具,将数据转化为可视化图形

华为云开发者联盟

Python 云主机 鲲鹏 ECS 华为开发者空间

DNS故障是怎么回事?DNS故障怎么解决?

国科云

【FAQ】HarmonyOS SDK 闭源开放能力 —Map Kit(4)

HarmonyOS SDK

harmoyos

CST软件如何计算天线系数Antenna Factor-达索官方授权

思茂信息

cst cst操作 CST软件

普通人如何赶上AI大模型浪潮

老张

人工智能 AI 自由职业 第二曲线 大模型

智能网联汽车的数据脱敏

芯盾时代

车联网 物联网 数据安全 智能汽车

音视频编解码的性能优化

北京木奇移动技术有限公司

软件外包公司 音视频编码 音视频解码

AI智能体在自动化测试中的应用

测试人

破局铜加工生产管理困境:MES系统引领智能化转型

万界星空科技

制造业 mes 万界星空科技 铜管加工行业mes 铜加工行业

记录一次RPC服务有损上线的分析过程

京东科技开发者

HBase深度历险

京东科技开发者

没想到学会这个 canvas 库,竟然做这么多项目

秦少卫

Fabric.js 开源图片编辑器 开源vue图片编辑器 商品定制工具 服装设计工具

故障测试与性能测试交叉实践

FunTester

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