Swift: Apple's next-generation programming language 4 years in the making
Swift, Apple's new programming language billed as taking the C out of Objective-C, was one of the biggest surprises at WWDC 2014. The Swift project started at Apple roughly 4 years ago as one of several explorations into what would replace the NeXT-era Objective-C language. It was spearheaded by Chris Lattner, head of Apple's developer tools department, who also spearheaded LLVM (lower level virtual machine) and Clang, Apple's compiler technologies. Lattner shared some insight into Swift on his site, nondot:
I started work on the Swift Programming Language (wikipedia) in July of 2010. I implemented much of the basic language structure, with only a few people knowing of its existence. A few other (amazing) people started contributing in earnest late in 2011, and it became a major focus for the Apple Developer Tools group in July 2013.
The Swift language is the product of tireless effort from a team of language experts, documentation gurus, compiler optimization ninjas, and an incredibly important internal dogfooding group who provided feedback to help refine and battle-test ideas. Of course, it also greatly benefited from the experiences hard-won by many other languages in the field, drawing ideas from Objective-C, Rust, Haskell, Ruby, Python, C#, CLU, and far too many others to list.
That Swift won out over existing higher level and scripting language projects is provocative, but it's also early days. Lattner is the only one who has been using Swift since its inception and few even inside Apple, until Monday morning, even knew of its existence.
There's no word on how much, if any, of Swift will be open sourced, for example. Right now Lattner and team are focused exclusively on getting the final release ready for the fall. Swift has also only just been introduced and thousands if not millions of people will soon be hitting it full speed and full force. They'll find edge cases and do things no internal planning or QA (quality assurance) could ever prepare for or expect. Apple will watch, learn, and Swift will change and evolve.
So will the rest of Apple's platforms. Objective-C was the result of Apple buying NeXT. Swift is the result of steady, continuous evolution. It's the result of smart management and responsible stewardship, that, in the fullness of time, will likely result in just as much of a leap forward as a NeXT-style purchase. It's also something more.
In his brief write up Lattner also discusses Playgrounds, the interactive development environment in Xcode. The Web inspector provides immediate feedback for HTML5 and has been a huge boon for web developers. Lattner hopes that, with Playgrounds in Swift, Apple won't just be making programming better but will be making it more fun and accessible to the next generation of programmers. That's an incredibly important and laudable goal.
If there's one thing I've heard repeatedly from developers since Swift's unveiling it's exactly that hope. My generation grew up with Basic and Logo and other languages that made it relatively easy to get programming into elementary schools and kids into programming even at a very young age.
Objective-C was unlikely to be in any grade school curriculum, unlikely to be any child's first programming language. We'll have to wait and see how Swift and Playgrounds fare, but if they really do make it easier to engage new programmers at a younger age the value to Apple, the industry, and the future will be incalculable.
Poetically, the WWDC 2014 app crafted by the evangelism team is the first public Swift app to be released. Millions more will follow.
Apple has made the Swift Programming Language Guide available in the iBook Store. Anyone not already a seasoned Objective C programmer thinking of giving it a shot?
- Free - Download now