MWC16 IBM has released Kitura, an open-source web server framework written in Swift, Apple's young but popular programming language which was designed for iOS and OS X.
IBM's Kitura, a web server framework written in Swift
IBM held a press conference at Mobile World Congress in Barcelona to update the world on its MobileFirst offering, which supports enterprise applications on Apple iOS devices.
A couple of things were notable about the event. Although IBM presents MobileFirst as a partnership with Apple, nobody from Apple bothered to turn up. Second, the assembled press had to endure a panel of no doubt worthy but hardly notable app demos from various customers, and a number of journalists headed for the exit before IBM got around to delivering its actual news: that it was supporting Swift on the server with a new web framework.
IBM loves Swift, according to MobileFirst VP Phil Buckellew. "Each one of the over 100 apps that we have delivered is built 100% natively using the Swift language," he said; a claim that provoked some scepticism on Twitter:
Doubts about IBM's Swift usage expressed on Twitter
Buckellew is clear though. "IBM has become the largest user of Swift as a programming language for building enterprise apps. We have found the language to be extremely powerful, useful and code-safe."
When Apple open sourced Swift in December 2015, IBM took advantage by creating a Swift runtime for its Bluemix cloud platform. It is now going a step further with Kitura, now available to all on GitHub.
"Developers have to connect apps to multiple back ends. Often those back-ends are written in different languages, and that creates conflicts between back-end teams and front-end teams. We’re bringing Swift to the enterprise so that the back-end and front-end teams can work more closely together," said Buckellew.
"We are very excited about Swift as a systems language in addition to being a client language. It is compiled code, it runs very fast, because it is like a scripting language it is easier to use but it doesn’t have the memory management challenges you see with Objective-C or C++.
"IBM is contributing concurrency support as well as the new web server framework we’re calling Kitura. We also have a Swift package catalog, a set of packages in Swift that developers can use to connect to back-end systems."
This last point is key to IBM's enthusiasm for Swift. "We’re going to take all of our WebSphere, MQ, z/OS, all those backend services, so you as a developer, you have a package catalog and can consume those services and just drop them into your code," Buckellew told the Reg.
Kitura itself has the ability to respond to web requests, so it does not require a web server such as Apache or Nginx. It runs on Linux or on OS X, so developers can run it locally.
Although IBM's MobileFirst is for iOS clients, Buckellew says that "eventually we expect Swift to move to other mobile and other front-end platforms because of the growth of the language."
IBM will also support an event-driven programming model using Swift.
IBM's affection for Swift is in part an effort to attract the millions of Swift client developers to its Bluemix cloud and more important, its enterprise services. The story about using a common language for front and back end is only partly true though, since Kitura code really sits in between the client and the real back-end, which is likely to be written in Java or C++. Still, if the company is serious about Swift as a systems language, that could change.®