Two years ago (June 2014) at Apple’s World Wide Developer Conference (WWDC) we saw the release of the Swift programming language. Programming languages typically do not generate much conversation among those who are simply end users of operating systems and applications. However, Swift is an interesting language to talk about because of its power to cause a major shift across the mobile platforms of the world.
To understand why Swift has the potential to cause this shift we need to look at what Swift is first of all. Swift is a programming language that is first and foremost designed to be easy and pleasurable to use. With this it also brings numerous safe guards that help programmers write code that is more secure by default than had it been written in another language. Swift is also fundamentally similar to C-based languages (this means it’s fast, though not the only reason why it’s fast). Finally, as of late 2015 Swift is now able to be written and compiled on Linux.
To recap, Apple has released a programming language that is fast, easy to use, secure, and can run on Linux in addition to the Apple ecosystem. Swift is an open language which means that it’s free for anyone to use and adopt in their platforms should they want to. This means that Google could adopt Swift for Android. Microsoft could adopt Swift for their Universal Windows Platform. Or any upcoming software development firm could use Swift to create a toolkit for an obscure piece of hardware that they provide.
Currently, Google relies on Java to power the Android platform. Java is a language that has been around since the mid 1990s and accomplishes what it does fairly well. Java has a bad reputation from the vulnerability prone web applet plugins that have plagued our web browsers since the 1990s, though the language itself is perfectly secure. Java does suffer from a small performance impediment due to the fact the compiled code does not run as close to the physical hardware as it could (it runs on the Java Virtual Machine). This performance impediment combined with the closed nature of Java (it’s owned by Oracle) could one day provide impetus for Google to move Android to Swift.
For just a moment let’s assume that Google would move Android to Swift. If this were to happen it would make Swift the language running on the largest number of devices in the world. This would ultimately be a remarkable achievement for an open programming language. It would also mean that operating system features aside it would be easier than it currently is for a developer on Android to write code for an Apple device and vice-versa. While we’ve just outlined what happens in the short term if a large stakeholder like Google were to move to Swift, the repercussions for a good chunk of the software industry would be profound.
There will always be places that require proprietary code be written with less open alternatives such as Microsoft’s offerings, that is not in dispute. The computer industry as we know it today started in the 1970s with the spirit of hacking, tinkering, and entrepreneurship. This has evolved over time to move from hardware to software (though hardware may be making a comeback, see: Raspberry Pi). It’s embodied today in the open source community which while when tasked with providing useful end-user software is hit or miss but ultimately embodies the same spirit professed many decades ago. Swift takes this same openness and has the potential to bring it to billions of devices worldwide.
Programming languages can seem abstract and often out of reach for those who are not experienced with them. Another ultimate benefit of Swift is that it’s somewhat easier to understand than Java or C. This provides a perfect jumping off point for those who may be interested in learning a programming language but have no idea about where to start. You can access all of the Swift documentation at Swift.org including the book on Swift entitled “The Swift Programming Language” free of charge. You can also play with Swift directly using a web-based sandbox that IBM provides.
While today it may seem as though Swift is a language for use exclusively on Apple’s platform that could change at any time. Even if no major entity, other than Apple, embraces Swift and utilizes it in their platform the existence of Swift itself is novel. This is of course true because any time a truly open language or service is provided there is almost always going to be a strong net benefit. While we could hope for one mobile centric programming language, a more achievable goal is to set the benchmark of what a modern programming language should look like both in form, function, and openness.