Will Apple's New Language Help Build High-Quality Mobile Apps?
At the recently concluded Worldwide Developer's Conference, Apple announced the arrival of its new programming language, Swift. Prior to this announcement, most development on Apple’s platform was done with Objective-C, which has been in existence for nearly three decades. Apart from the ease of use, will the advent of Swift as a programming language help build high-quality apps?
One of the most talked about features in Swift is the interactive Playground. This feature helps developers view the coding output in real-time, i.e., without having to compile the code separately. In essence, Playground allows developers to test the code before actually moving it into the project.
Traditionally, developers have been required to make the code executable before visually seeing the output. This usually restricted developers from freely making changes. Playground clearly helps developers get around this dependency by practically allowing developers to test the code as they write.
Being able to see the output of your code in a jiffy is valuable in many development and product lifecycle scenarios. For proponents of pair programming, it means that developers teaming up to solve a coding problem will be able to see the real output almost immediately, leading to a lot of productive discussion. This feature can be useful to testers much in the way described by Apple’s website: Create new tests, verifying they work before promoting into your test suite.
Swift’s Playground feature can potentially be used by developers following the Minimum Viable Product (MVP) development strategy, where only the essential features are built and then released in an attempt to validate whether a market for a product (or feature) exists. Wherever applicable, developers can sit directly with the customer and make changes on the fly until they come into agreement.
Apart from the Playground feature, Swift also makes use of Automatic Reference Counting (ARC) for memory management. In Java, the Garbage Collector feature performs the memory management function, but early indications show that ARC might work even more efficiently.
Because of the way it functions in Java, Garbage Collection tends to be resource intensive, especially in cases when system resources are low. With ARC, freeing up memory depends on the life of the object and it happens granularly. Since ARC does not run periodically through the structure, it is theoretically more efficient.
Swift will arguably make app development for Apple products faster and easier than the native Objective-C development. As language learnability barriers diminish, it may prompt many first-time developers to take up coding. This development, though largely good for the industry, may cause the overall app quality to fall.
We have to remember that programming languages are just the tool. It’s the software engineer’s creativity and passion, among other skills, that build quality into the software.
Do you agree?