Examining Apple’s [ insert Swift pun here ]

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

The best new feature of Swift, is that it abstracts away much of the syntax that is typically required for creating an application with Objective-C. This is a leap in the direction of modernizing programming for Apple products. For those not “in the know” Objective-C is an old language. Swift makes programming iOS/WatchOS/OS X apps much more like programming an HTML5/javaScript app.

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.

It’s great that Swift modernizes the process of programming for Apple devices; however, this begs the question “why not use another modern language that has a high adoption rate?” I’m referring to HTML5/javaScript apps. These apps are just as easy to write, especially if you choose to make use of libraries such as Angular, or Knockout.

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.

Okay, that’s a fair point. On counter, there are only so many of those programming jobs to go around. I’d be willing to bet that Apple programmers aren’t hired for their knowledge of Swift alone. They’re likely hired because they have an experienced programming background. The ability to be versatile with a number of popular languages and frameworks is probably a job requirement in order for one to prove they posses the skill level required for the position. Additionally, most jobs in programming are not for fortune 500 companies. The average job for entry level talent is likely to be with smaller places of business that rely on some combination of Java, javaScript, HTML, php, and/or MySQL. The point is, most jobs won’t be Apple exclusive.

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!

 

Leave a Reply