Swift was introduced at Apple's Worldwide Developer Conference (WWDC) 2014 as a replacement for Objective-C. It is the future and every Apple developer is waiting the right moment to start to use it: is this the right moment?
I love reading developer's blogs: you can find a lot of interesting points of view, learn something new every day and be aware of the latest trend in the mobile industry.
When Swift was released there was a lot of hype behind it: everyone was enthusiastic about its syntax, performances, and innovations.
So why am I still complaining about the language to use for a new application?
Swift, what else?
Let's be honest: Swift is cool. REALLY cool.
Swift blink the eye not only to old skilled developers but to the future developers: it is an easy to learn language and a lot of teams seems to be attracted to it, thanks to the new language's features like closures, generics, type interfaces and multiple return types.
Basically, Apple is trying to take some developers already familiar with other languages in order to enlarge their market. Well done Apple.
The problem I see is for big companies and, in general, to the companies that createready-to-use products.
I work in a team with 6 iOS developers, everyone hired before the release of Swift, and during our working life, we have created some products and libraries to speed up our work.
Changing a programming language doesn't mean to convert old code to the new one: it means to change the way the application is designed.
Basically, we need to change the way we think.
Small companies and startups bet on their future, riding the wave of the new language: they can make experiments, deciding which language to choose without (or with a limited number of) impediments and follow Apple's innovation.
Big companies (usually) can't: in my case I work on a product used by a lot of clients, changing it means that I need to maintain two different version of the application and 6 developers need to learn everything from scratch.
Future is coming
On the other side, I think that one day Apple will start to block applications made with old languages: Apple usually blocks old stuff in order to force developers and companies to move on and I can bet that they will do the same in the future.
So what is the answer? We need to move on.
A new language should be analyzed and studied like the changes Apple did in the past (who remember the no more viewDidUnload period?).
It will be a difficult period, as always when I decide to do a change like that, but it will be very interesting to see how it will evolve in the future.
Maintain a product in an old language and using a new one for new applications: that's the future I've chosen and I suggest you all do the same.
If you want to read an interesting article about the Objective-C / Swift war, I suggest to read why a software house decided to rewrite the software in Swift, problems they found rewriting the application and why Lyft was written from scratch in Swift.