The WWDC 2014 Keynote was on a couple of days ago and amongst the flurry of updates like iOS 8 and OSX 10.10 Yosemite, Apple announced a new programming language called Swift, which will be able to be used to develop iOS and OSX applications. To me this was the most significant announcement of them all.
When native applications were possible for iOS through Objective C, I always thought that the language itself represented a "barrier to entry" to doing any iOS development. During my day job, most of my development involves Java or Ruby and in the evenings, when I put my hobbyist iOS hat on and try my hand at Objective C, I always struggle and cringe my way through.
I have managed to publish four iOS applications, so I have had some exposure to Objective C. However, I have always found it a chore to do anything with it. To be fair, I suspect a large part of it was that it basically wasn't my "day job" and hence I didn't live and breath it. So I was always context switching from another language to it. At the end of the day, I think fundamentally I never embraced it. It might have been the square brackets, the header files, the way the parameters and methods are mixed together or maybe just a sum of all those tiny annoyances.
I even went so far as to explore alternatives to using Objective C like:
- RubyMotion to use Ruby
- ionic to use AngularJS
- RoboVM to use Java
To be fair, I never really spent much time with any one of those alternatives, and I always thought it was better to go back to Objective C, as that was the Apple approved way of doing things. And also, I had invested enough time to be able to be productive in it.
So come WWDC 2014, and the Swift programming language announcement and I am excited again about iOS development. I've briefly had a look at Swift and I am beginning to put together an application using the beta of XCode 6. I have found it a completely different experience in comparison to Objective C. Features like closures, inferred typing, generics and namespaces are available, bringing it inline with modern languages like Ruby, Scala and Java. I'm actually excited about iOS development again, for the first time in a long time, and I think that is solely down to Swift. If you have ever had an inkling to do any iOS development but were put off by Objective C in the past, I would definitely encourage to try it out. It is available as a beta download through the iOS Dev Center which unfortunately requires a login.
Now only if they did something about XCode...