First look: Apple's Swift is simple, at first
Swift's clean and modern syntax makes it quick and easy to get started, but mastering this new language will take a whileFollow @peterwayner
What is it about being a rich corporation? After the private jets and the gleaming headquarters comes the new programming language. Now Apple has followed in the path of Microsoft (C#), Sun (Java), and Google (Dart, Go) to offer us Swift, a language with a C-like syntax and inferred typing designed to make it easier for the average coder to start building new software for the Mac and new apps for the iPhone.
While it's never possible to overestimate the amount of hubris at Apple, Swift is more than a vanity project to dictate how the world speaks a computer version of the King's English, if you will. Apple's software stack has been stuck with Objective-C since NeXT invaded the company, and many neophytes find it a pain to untangle the pointers, the files (both .m and .h), and the punctuation-rich syntax.
[ Also on InfoWorld: 10 features Apple "stole" for the Swift programming language. | See InfoWorld's "iOS 7 for developers" special report for the scoop on the bells and whistles in Apple's mobile OS -- and how you can harness them. | Keep up with key Apple technologies with the Technology: Apple newsletter. ]
Apple tried to update the language with a "modern syntax" in 1997, but the masses refused to budge from the so-called classic syntax. Other projects -- like adding Java bindings for the Cocoa libraries -- never really stuck. Today, learning Objective-C is one of the biggest hurdles to getting people to code for the Apple platforms.
The basic structure for a Swift program looks much like Java. The code is broken into classes filled with fields and methods. The most jarring difference is that the methods start with a keyword (
func) and the return value comes after the method name, not before it. The classes can be aligned in a hierarchy with plenty of inheritance for object-oriented code, and the properties can be read with a dot syntax.