

Swift 5.9 includes what is probably our most commonly requested language enhancement, allowing if/else and switch statements to be used as expressions, providing a nice way to clean up your code.įor example, if you wanted to initialize a let variable based on some complex condition, you had to resort to tricks, like this hard-to-read compound ternary expression. Now let's talk about changes to the Swift language this year, starting with better ways to express yourself in your code. This new structure was recently laid out in a blog post on, a look out for further announcements about the formation of this new group soon. To oversee progress in this area, the core team is creating an ecosystem steering group parallel to the language steering group. It needs great tooling, robust support for multiple platforms, and rich documentation. A successful language needs much more than this. Of course, evolution of the language is only part of the work of the Swift community. The first one to be accepted by the language steering group was a vision of Swift macros, a new feature in Swift 5.9 that we'll be covering later in this talk. These documents lay out a proposal for larger changes to the language. Since then, the language group has overseen 40 new language proposals, and we're going to talk about several of them today.īut sometimes, individual language proposals come together as part of a wider theme, like the addition of Swift concurrency, which was introduced through ten separate proposals.įor cases like this, the language steering group has introduced a new way of tying together these proposals, through vision documents. The core team announced the formation of the Language Steering Group, which took on primary responsibility for oversight of the Swift language and standard library evolution. If you want to follow along, you can find a dashboard of all the language proposals on the Swift website.Ī year ago, we saw a significant restructuring of the Swift Project governance. New features or significant behavior changes are proposed and reviewed in the open on the Swift forums. Swift follows an open process for language evolution.
#Cmake function update
This is a great update for Swift, and it couldn't have happened without the Swift community, the contributors and users of the language who gather at, working together to evolve the language and support new initiatives. We'll talk about some ways it's easier to express what you mean using Swift's clean syntax, some powerful new features that help framework authors make their new APIs more natural to use, and we'll look at some new ways to get more control over performance and safety in low-level code.īut let's start by talking about the Swift open source project.

♪ ♪ Ben: Hi, and welcome to "What's New in Swift 5.9." I'm Ben, and together with my colleague Doug, we'll take you through some of the improvements to the Swift language this year. Search the forums for tag wwdc2023-10164.Have a question? Ask with tag wwdc2023-10164.


32:41 - What's new in Swift Concurrency.2:44 - Using if/else and switch statements as expressions.We'll also take you through improvements to interoperability and share how we're expanding Swift's performance and safety benefits everywhere from Foundation to large-scale distributed programs on the server. We'll show you how APIs are becoming more extensible and expressive with features like parameter packs and macros.
