Recently, Apple rocked all our worlds with the announcement of a new programming language called Swift. Objective-C, the language we all struggled to learn 6 years ago, has been deprecated.
Elation, Shock & Horror
You would have noticed that many developers were cheering and carrying on over the news of the new API and programming language. However, many others have a look of shock and horror on their face because they realized that they need to hurry up and learn a completely new programming language. Furthermore, they must have realized that they would also need to continue using Objective-C in parallel to this new language.
Swift Isn’t All That Bad Though
This represents lots of time and cognitive energy. Now, I’ve started taking a deep dive into Swift and I actually think it’s worth it. Swift is a dramatic improvement over Objective-C. For people who can choose what tools to use on their own projects, Swift is the absolute best choice.
However, many developers are shackled with iOS projects that have been in production for 6 years in Objective-C. It’s unlikely many project managers are going to sign off on a complete rewrite in Swift. These projects will either stay Objective-C or be Objective-C/Swift hybrids.
Third Party Frameworks will likely be Objective-C as well. Many of these are open source projects and oftentimes the code must be looked at or even altered. It’s unlikely that professional programmers will be able to ignore Objective-C and it probably won’t go away.
Adding a new programming language to iOS causes even more fragmentation in the mobile developers world. Many mobile developers are expected to know Android, Windows and iOS. Developers can choose native languages for each of these or attempt cross-platform solutions like Xamarin. iOS just by itself has four native languages that can be used (C, C++, Objective-C and now Swift). Developers could also choose HTML5. That’s a lot of choices and fragmentation.
What To Learn?
I’m not worried about seasoned iOS developers. For most of us, Swift is a welcome relief. We know that we can use Swift to make better apps. When we have to, we can go back to Objective-C and get the job done.
What about new developers? What should they learn?
So it’s hard to answer this question for sure. Here are Issac’s choices:
- 1: Focus on Swift
- 2: Focus on Objective-C
- 3: Split time 50/50 on both Swift and Objective-C
For new developers, the most important thing is to get confidence on the platform. They need to be able to get to making apps. Attempting to learn both programming languages at once is never going to work. At best, it will take twice as long to get to the “I can make an app” phase. At worse, the total lack of fidelity will discourage students so much that they will never get to that phase. Option 3 is out.
Both option 1 and option 2 will get a developer to the point of making apps quickly. Option 1 is good because that is where Apple is going and it’s the investment that will last the longest. Swift has many appealing features that map well to current languages and will have a lower barrier to entry that Objective-C does.
Option 2 is good because iOS 7 and Xcode 5 are both stable and their is a lot of support online for Objective-C and the current version of Xcode. A new developer can start immediately without worrying about Beta bugs. Also, professional developers will still be expected to know Objective-C (even if they started in a post-Objective-C world).