There's a new version of Apple's Swift programming language with a better package manager and improvements to string handling.

Swift was launched by Apple in 2014 as an easier alternative to Objective C. It incorporates some of the best ideas from languages such as C# and JavaScript, but works hard on being easy to use.

The new version is a major upgrade, and promises to be more robust and stable while still being source code compatible with Swift 3. In terms of actual improvements, the string handling is the main star, along with extended collections, and the ability to archive struct and enum types and to serialize objects in a type-safe manner to external formats such as JSON and plist.

The improvements to strings mean that Swift strings now conform to the Collection protocol. The String implementation also now retains Unicode correctness and adds support for creating, using and managing substrings. Swift has also improved the way you can create, use and manage Collection types. You can have generic subscripts, one-sided ranges using a similar technique to Python, and custom collections for dictionary keys and values.

The changes to the options for achiving and serializing have been made to account for the fact that Apple's Foundation Framework APIs for archival and serialization were designed for Objective-C, and don't work particularly well with Swift. The changes to the new version of Swift will go alongside an updated API in the Foundation Framework.

The improvements to the Package Manager include new workflow features and a more complete API for the Swift Package Manager. This means it is easier to develop multiple packages in tandem and to work on a branch of multiple packages together. The new Package API allows packages to specify a number of new settings, giving package authors more control over how packages build or how sources are organized on disk.