Swift 5 is now in the spotlight for iOS developers (version 4.2 was released earlier this month). While we’ve expected ABI stability in version 5 for some time, we’re now getting a better idea of when this latest iteration may launch.
The team is tempering expectations with Swift 5. While ABI stability means the language will support older versions, that’s not fully ironed out. The team says version 4.2 “should” compile with version 5, but notes the 4.2 release will be the last to support Swift 3. “There are important changes to both the surface of the language and the interior of its implementation in the releases following Swift 3 that will be the basis of future (and lasting) source and binary stability,” the team adds in a blog post.
Philosophically, the team seems to be taking a low-risk approach to Swift 5. Things like bug fixes and diagnostic or SourceKit alterations will only be accepted if they don’t cause ripple effects. The same can be said for testing; the team writes: “Low-risk test tweaks will also be accepted late into the release branch if it aids in the qualification of the release.”
Things won’t get more exciting the closer we get to release, either. “As the release converges, the criteria for accepted changes will become increasingly restrictive,” says Swift boss Ted Kremenek.
Swift 5 Arrives ‘Early 2019’
So when will Swift 5 be released? Initially, the team said late 2018. Now, the Swift Evolution GitHub page says ‘early 2019.’ According to the Internet Archive, this change from ‘late 2018’ to ‘early 2019’ was made on June 5, 2018.
Guess what else was happening on June 5, 2018? WWDC. Sneaky.
The Swift team’s roadmap supports this revamped schedule. Final branching for Swift 5 will take place November 16, 2018. After this final branch, the team says there will be a “bake period” where only the most critical fixes can be implemented. Again, this is the lowest-risk path forward.
The same methodology was used for Swift 4.2; the final branching for it was April 20, 2018, and it was released September 17, 2018. If we apply the same methodology, Swift 5 should see release in April 2019; technically ‘early’ if you bisect a calendar year.
But don’t be surprised if Swift 5 takes a little longer in the oven. ABI stability, critical as it is, should not be rushed. The low-risk approach is sound, and we’d hate to see a critical failure for what may be the most important version of Swift ever.
A Swift 5 release in April leads into WWDC 2019, where Apple is expected to further explore a future where iOS apps run on macOS. ABI stability is a critical feature for ‘Marzipan,’ this cross-platform apps initiative, as the current standard ABIs for each platform are unique. The Swift manifesto notes ABIs will continue to have distinguishing features for each platform (iOS and macOS ‘aren’t merging,’ and will have their own unique ABI standards), but a steadier compiler – a low-risk proposition – can only help.
We’ve not been promised ‘Marzipan’ in 2019, but Apple has planted its flag already: macOS Mojave has four cross-platform apps, providing an early look at the future for macOS. Apple can’t (or at least shouldn’t) let WWDC 2019 pass without discussing ‘Marzipan’ further; most believe this cross-platform scheme will reach stability in 2020, making it a critical piece of WWDC 2019.
Developers need time to get their iOS apps ready for the desktop, and time to familiarize themselves (or revisit) desktop-only actions that are applicable to mobile apps. WWDC is built for just this sort of thing.
Swift 5 with ABI stability seems to be a critical early piece to the puzzle, especially if Apple is pressing forward with cross-platform apps without merging its operating systems (as we’ve been told). In a retrospective of WWDC 2018, we wrote, “efforts are being made toward greater stability rather than adding new features,” which now feels like foreshadowing. ‘Early 2019’ should be an exciting time.