My Non-Apple-Bashing Look at Swift
I recently had the opportunity to participate in an Apple event for educators. The topic was Apple’s new language called “Swift”.
Before I dive into that, I’d like us to get any lingering personal feelings out of the way (or at least to the side).
Once upon a time I held a strong view in the PC vs Mac argument (I was a “PC”). Now I simply believe in using the right tool for the job. If I’m programming for iOS, that means using a Mac somewhere in my workflow. For everything else, I find Windows to be just fine. My personal stance has evolved from taking sides, to whatever keeps me productive. In summary, I just don’t care about the argument anymore.
I will say that Apple has a higher “perceived value”. Regardless of one’s actual development skills, being seen working on Mac hardware causes the average client to have a higher opinion of one’s ability. It’s completely unfair, but whatever; I’m not going hate on Apple for being good at marketing.
Swift for Industry
Most of my readers will not be interested in the technicalities of programming with Swift. For that reason I’m not going to dive into any in depth examples; however, if you’re a reader who would like to know more about what programming with Swift looks like, check out this awesome article.
The benefit Swift has over an HTML5 app is that it is supported by Apple, and compiles as a native program. This means the performance is going to be optimal, whereas an HTML5 app has to be wrapped with something like Phonegap, and is ultimately rendered by Webkit, which is much slower. The downside to Swift is that apps would have to be ported to non-Apple devices, while HTML5 apps are write once and deploy everywhere.
Additionally some of Swift’s programming conventions are only valid within the Swift language. My thoughts as a developer is that while Swift makes coding for Apple devices easier, Swift apps are locked into the Apple ecosystem. Most HTML5 vs Swift apps are basic enough that the perceived performance gain from running native code is negligible. Personally, I’d rather have the convenience of coding once, and not having to port the app to other devices.
Swift for Education
The seminar that introduced us to Swift was delivered with the intention of introducing students to programming iOS apps. In the educational arena, Swift could be a great choice.
It’s easy to pick up. Students as young as 5/6th grades through middle school have reported success in creating apps via classroom activities. There were great examples of this presented. If you’d like additional information on Swift being used in the classroom, check out thenextweb.com, “Programming through Play”.
Swift is a friendly and fun entry point for both the young, and anyone else new to programming. You’ll be up and running with your first app done in a short amount of time. For this reason, I feel like Swift is a fantastic resource for the classroom, however, one should not end their education with Swift.
To education Apple markets Swift as a friendly entry point to app development, and that appears to be true. To industry, it is marketed as a break through solution that should be the future of app development. That is true if you develop for Apple devices only. During questioning after the seminar, the speaker mentioned that most fortune 500 companies rely on Apple, and won’t trust their internal systems to Windows, Android, or web apps.
Education would do well to adopt Swift, but it should be ready to follow that up with more standard languages, and teach common programming concepts that allow one to level up their skill with any language/development environment.
If you want to find out more about Apple’s Swift language, visit Apple Developer, Swift.
Thanks for reading!