It’s rare to be able to learn and use a new software programming language with an instant audience of tens of thousands of developers creating apps used by millions of people. Google did create and launch the Go language in 2009 which has increasing adoption rates. However, Apple’s recent launch of Swift has a built in audience of app developers interested in a simpler more powerful language than what they currently use, Objective-C, Cocoa, and Cocoa Touch.
Swift is the perfect language to investigate today then watch as it evolves. Chances are very good Swift will influence other languages and be influenced by changes in other languages. In that sense, Swift is an opportunity to experience a programming language as a living entity.
What Makes Swift Special?
Apple’s new language, announced in June 2014, does what you would expect: it improves on the current software tools developers use to build applications for phones, tablets, and computers that run iOS, Apple’s operating system.
However, the Swift programming language is far more ambitious than a simple replacement tool. Swift uses technology called LLVM (Low Level Virtual Machine) to run Swift programs on almost any computer and operating system. Like the Java language, Swift aims to be “write once, use anywhere.” Unlike Java, Swift benefits from the latest thinking about how to make this happen at the lowest levels of any computer, as close as possible to where the software instructions of a programming language are converted to ones and zeros.
Swift also introduces a mostly new paradigm called Playgrounds which makes it easier for developers to create applications. It’s mostly new because Playgrounds is inspired partly by Light Table, an integrated development environment and now open source project designed to make programming much easier and more intuitive. As with Light Table, Playgrounds lets you type in new code then immediately see your changes on the right side of your screen, no compiling needed until you’re finished and ready to ship.
But there are other equally important and interesting inspirations the Swift language incorporates and evolves. Definitely check out the Vimeo links to talks by designer Bret Victor for additional inspirations for Swift. There has been a lot of thought, over decades, about how to make programming more simple and human friendly. Many of those ideas are in Swift or inspired features included in the new language.
How is Swift Used?
The primary use for Swift is in building software applications for Apple phones, tablets, and computers, any device that runs iOS. Anyone interested in serious programming of applications for these platforms should find Swift interesting and useful. In theory, the language is simpler then Objective-C and use of LLVM makes the language faster. Tools like Playground also should encourage people who normally would not be interested to use traditional tools for programming.
Learn More
Swift
https://developer.apple.com/swift/
https://developer.apple.com/library/ios/documentation/swift/conceptual/Swift_Programming_Language/GuidedTour.html
https://developer.apple.com/swift/resources/
http://en.wikipedia.org/wiki/Swift_%28programming_language%29
Swift Inspirations
http://www.nondot.org/sabre/
http://lighttable.com/2014/06/10/light-table-and-apples-swift/
http://lighttable.com/2012/06/24/its-playtime/
http://vimeo.com/36579366 (Bret Victor)
http://vimeo.com/66085662 (Bret Victor)
Why Apple's Swift Language Will Instantly Remake Computer Programming
http://www.wired.com/2014/07/apple-swift/
Why Coders Are Going Nuts Over Apple's New Programming Language
http://www.wired.com/2014/06/apple-swift-language/
The One Last Thread Holding Apple and Google Together
Describes how Google and Apple both use LLVM to run apps on their operating systems.
http://www.wired.com/2013/07/apple-google-llvm/all/
Building Your First Swift App
https://developer.apple.com/swift/blog/?id=16
Introduction to the Swift Programming Language
http://www.sitepoint.com/introduction-swift-programming-language/
Swift Tutorial: A Quick Start
http://www.raywenderlich.com/74438/swift-tutorial-a-quick-start
http://www.raywenderlich.com/74904/swift-tutorial-part-2-simple-ios-app
6 Best Free Swift Tutorials for Apple's New Programming Language
http://www.skilledup.com/learn/programming/6-best-free-swift-tutorials-programming-new-language/
Objective-C
http://en.wikipedia.org/wiki/Objective-C
https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/Introduction/Introduction.html
Cocoa
http://en.wikipedia.org/wiki/Cocoa_%28API%29
http://developer.apple.com/library/mac/navigation/#section=Frameworks&topic=Cocoa%20Layer
http://www.cocoadevcentral.com/
Cocoa Touch
http://en.wikipedia.org/wiki/Cocoa_Touch
http://developer.apple.com/technologies/ios/cocoa-touch.html
http://developer.apple.com/library/ios/#documentation/Miscellaneous/Conceptual/iPhoneOSTechOverview/iPhoneOSTechnologies/iPhoneOSTechnologies.html%23//apple_ref/doc/uid/TP40007898-CH3-SW1
50 Tools and Resources for Swift Programming
http://www.computersciencezone.org/swift-programming-language-tools/