Rarely do I weigh in on programming languages, I don’t think that C++ is better than Java, or vice versa. Each fills a niche, even the much maligned Visual Basic was a very good programming language for what it did.
That all said, Objective C sucks. I hated it, I hate it, I will always hate it. Unfortunately, until very recently it was the only game in town on iOS. Well sure, you could use a 3rd party programming language like Java or C#, and technically C and C++ were supported by Apple, if only weakly and in a half-arsed manner. But the official way, with all the tooling and documentation and other nice things programmers enjoy, it was ObjC or nothing. Thankfully they recently released the Swift programming language. Right after it was released I did a tutorial series on using Swift with SpriteKit and while not perfect, it was certainly a vast improvement over Objective C. At the end of the day though, it was a single vendor and basically single platform language controlled by a company you’d have to be a bit daft to trust (with their developer track record…).
So yesterday’s news came as a welcome surprise. Swift is now open source. The source was released on Github under the Apache 2 license. They also launched swift.org dedicated to the open source implementation of swift.
From the Swift blog:
Swift is now open source. Today Apple launched the open source Swift community, as well as amazing new tools and resources including:
- Swift.org – a site dedicated to the open source Swift community
- Public source code repositories at github.com/apple
- A new Swift package manager project for easily sharing and building code
- A Swift-native core libraries project with higher-level functionality above the standard library
- Platform support for all Apple platforms as well as Linux
Now anyone can download the code and in-development builds to see what the team is up to. More advanced developers interested in contributing to the project can file bugs, participate in the community, and contribute their own fixes and enhancements to make Swift even better. For production App Store development you should always use the stable releases of Swift included in Xcode, and this remains a requirement for app submission.
Swift.org
Swift.org is an entirely new site dedicated to open source Swift. This site hosts resources for the community of developers that want to help evolve Swift, contribute fixes, and most importantly, interact with each other. Swift.org hosts:
- A bug reporting and tracking system
- Mailing lists
- A blog dedicated to the engineering of Swift
- Community guidelines
- Getting started tutorials
- Contributing instructions
- Documentation on Swift
- Developer and API design guidelines
Swift.org is where the daily engineering work for Swift will take place, as the community of developers work together to bring Swift to new platforms, add new features, and continually evolve our favorite language.
Source Code
Apple has a new home on GitHub located at github.com/apple where you can find all the source code for the Swift project. The public repositories include the Swift compiler, LLDB debugger and REPL, the standard and core libraries, the package manager, and other supporting projects.
GitHub is already an incredibly popular place for developers to collaborate. It is easy to view the source code right on the website, or quickly check-out the code to your machine. And when you have a patch to contribute, we accept pull requests.
Swift Package Manager
Today we also launched a brand new project: the Swift Package Manager. This early-stage project will be developed in the open from the outset. The repository is in a very early state, and together we will define what a great package manager should do and how we can make it intuitive to use, and give it the power it needs to scale across the many platforms where we expect Swift to prosper.
Core Libraries
Apple has long provided a rich collection of frameworks that provide higher-level functionality commonly required across a wide variety of software. Frameworks such as Foundation, libdispatch, and XCTest make it much easier to write complex programs, and we wanted to be sure that developers get those same benefits as they take their Swift skills to new platforms. Whether writing apps for iPhone or Mac, or building a new cloud service on Linux, the Swift core libraries will give you building blocks you can count on.
Platforms
Open source Swift runs on a Mac, and is capable of building apps for OS X, iOS, watchOS, and tvOS. Swift.org also offers a Linux version of Swift, complete with a Linux toolset including package manager support, the LLDB debugger, and the REPL. We’re excited to see the community bring Swift to even more new places. As students and professionals learn to program in Swift, each new platform and use case opens new opportunities for them across the technology industry.
Getting Started
It is easy to get started. Swift.org hosts binary downloads of the compilers and command line tools for the Apple and Linux platforms so you can be up and running quickly. The latest version of Xcode supports an alternate toolchain option specifically designed to make it simple to try out the latest open source builds of Swift from within Xcode. And Swift.org has great getting started guides to walk you through the process of setting up your environment to work with open source Swift.
Let’s hope this gains traction, as anything that helps bury Objective C in the pages of history, is a very good thing indeed.