As a software development organization, IBM said it is looking at three primary programming languages/development environments for enterprise use going forward: Java, Node.js and Swift.
Buckellew said IBM will continue to support many programming languages for a variety of different purposes. On the company’s Bluemix Platform as a Service there are many runtimes – Python, Ruby and others. “But those three: Java, Node.js and Swift are the three that we believe are the most strategic going forward,” he said.
Emphasis on Swift
Yet, Swift has been of particular interest lately at IBM, said Buckellew, noting that the open-sourcing of the language could be a game changer, especially for developers. Apple’s open- sourced Swift will now enable developers to build enterprise class mobile apps across multiple platforms. Moreover, building on their enterprise mobility partnership, Apple selected IBM as its Swift developer of choice in building enterprise apps. This is key because IBM has one of the largest, if not the largest, Swift development teams focused on enterprise development, extending Swift on the IBM Cloud platform to broaden adoption with enterprises, educators and researchers to build the next generation of enterprise apps. And IBM has thousands of developers using Swift.
“We view Swift as the next great modern programming language because it represents the best of modern programming languages,” said Dr. Angel Diaz, vice president of cloud architecture and technology at IBM, in a blog post.
Better yet, as a powerful and widely used language for enterprise mobile apps, Swift will now be extended to the server and IBM will lead work driving server side enablement. With Apple’s contribution to the open source community, developers will now have the tools they need to build apps using Swift and preserve compelling user experiences across devices with only minimal effort. This would allow development teams to focus more on creating compelling user experiences and valuable features, rather than on porting code from platform to platform.
“Apple published Swift with a Linux compiler, and we are adding to the value and the capability so that the Swift language can not only be used on the client side, but so that it can also be used for cloud services on Bluemix and the IBM Cloud,” Buckellew said.
“We think that when we do that developers will be able to use their skills in many more environments – in multiple client-side environments and to the server as well,” he added.
IBM Focused on 3 Major Languages: Java, Node.js and Swift
General purpose Swift
IBM’s efforts will make Swift more of a general-purpose language. Big Blue has found areas where Swift has to be developed further for it to be used as a systems language – specifically support for concurrency in Web servers. Yet, these are areas where IBM has skilled developers and the company has tasked those teams to add that capability to the Swift language. Because it’s a modern, compiled language where developers don’t have to keep track of memory management so much — because it is handled in the language itself — that makes it easier to build apps that are safe from memory leaks and other memory-related problems.
“We know that it can then be very valuable as a systems language,” Buckellew said. “Like C and C++, it can run very fast and that makes it advantageous for a lot of workloads.”
“Swift is a well-designed language with a ‘best of’ feel to it, gathering features from many languages that have become trendy,” Al Hilwa, an analyst at IDC, told eWEEK. “I think in the end how it is evolved and where it is driven by Apple or the ecosystem that forms around it will determine just how deeply it will penetrate the enterprise. Having it in open source begins the process of ecosystem building. One thing that has helped Java is that it has a strong system of governance which the ecosystem participates in. The other thing that has helped Java is the reach from micro devices to servers. We have to wait and see if Swift makes it into the server world. It is definitely early days for Swift.”
Buckellew stressed that IBM sees multi-tier development opportunities for Swift in cloud-based back ends where organizations will have the advantage of a front-end developer that is using Swift to build their front end. The developer will be able to either build new or reuse someone else’s code for the logic for the server-side capabilities of mobile applications. This can now be in the same language. There are also potential benefits around developer tool chains and other aspects of the development process that come with having a single language that can span both tiers.
“This initiative can take Swift beyond being just a client-side development language for iOS, into a development language spanning all tiers,” Diaz said. “The move will make Swift available to a much broader audience of application developers. IBM has committed to help drive it forward and already created more than 55 innovative applications. As our developers immersed themselves, they told us that Swift enabled them to move and innovate at a much faster pace.”
John Ponzo, IBM Fellow and vice president and CTO of MobileFirst at IBM, in a blog post said IBM plans to create new packages for accessing IBM Cloud services, including IBM Watson, IBM Data Services, and Analytics. “This will help streamline developers’ use of Swift for IBM’s cloud services,” he said. “To do this, we are working to provide a wide range of the most common packages developers will need for server-side development. In the future, we will also begin extending our MobileFirst of iOS solution apps to include end-to-end Swift packages that can be used to customize our market-leading solutions.”
Ponzo also raved about the elegance of coding in Swift.
“Our engineering teams like that the applications developed in Swift require less code— a lot less code,” he said. “And they love the reduction in defects they see when they use the language in conjunction with Xcode. From the developer tool perspective, the integrated Xcode environment is proving excellent in helping to optimize our applications with instruments support. The language syntax improves code legibility, which increases our sharing of code snippets, meaning we can do more in less time.”
IBM Focused on 3 Major Languages: Java, Node.js and Swift
IBM has rolled the dice on Swift. The community now has access to the source code and IBM will begin to extend it. All of the development is on GitHub and in the open, Buckellew said. Apple has published a road map and that is where development of the language will continue.
For IBM’s part, it is focusing on the server side. IBM launched its Swift Sandbox, which is a website where developers can upload their code and see Swift running in action on the server.
“The IBM Swift Sandbox is an interactive website that lets you write Swift code and execute it in a server environment – on top of Linux,” said John Petitto, an IBM software engineer and one of IBM’s Swift developers located at IBM’s Mobile Innovation Lab in Austin, Texas. “Each sandbox runs on IBM Cloud in a Docker container. In addition, both the latest versions of Swift and its standard library are available for you to use.”
Within 24 hours of the IBM Swift Sandbox launch, the company saw more than 40,000 code executions across 127 countries. “That really shows that there is broad, broad interest in this,” Buckellew said. “And we’ve got lots of resources where we are going to be working with the community to make sure that we add the functionality to Swift so that it can mature as an enterprise and systems language, and that it’s done with the input of the community.”
Can Swift supplant Java?
According to Diaz, IBM’s role with Swift ultimately boils down to two main areas: contribution and consumption. “IBM is already among the most prolific enterprise adopters of the Swift programming language, and we plan to continue that trend as voracious Swift consumers. We will also help to usher our enterprise customers into this arena and show them the possibilities that Swift affords modern developers,” he said.
Moreover, members of the IBM team will also contribute to Swift.org code, notably the core language and supporting tools that will allow developers to use Swift with cloud services – in addition to extending the scope of Swift as a server-side system language.
However, despite IBM’s commitment to three major languages including Java, with all the talk of a multi-purpose Swift language going on, the question that begs asking is: Can Swift supplant Java?
“Back in 2001 Apple invited our team at Xerox PARC to make the short drive to 1 Infinite Loop and showcase how our learnings from AspectJ could be applied to Objective-C,” said Dr. Mik Kersten, CEO of Tasktop, who previously worked on the AspectJ aspect-oriented programming project at Xerox PARC. “It was a fascinating day and a step in Apple’s long journey to create a first-class programming language of their own. There’s a lot of great innovation and design in Swift, which will be a boon to the growing number of iOS developers.
“But what’s made Java strong is an open ecosystem of countless vendors contributing new frameworks, libraries and tools. That’s how Java got so broadly adopted and so sticky, and this effect had prior and greater impact than Java being open sourced. As it stands, Swift is on course to be Apple’s version C#/.NET, which is an important step. For it to make a dent on Java, an open development process with incentives for both contributors and vendors would need to be established, as Microsoft has been increasingly doing of late with Azure and Visual Studio. Expect Swift to become a great new programming language, but not to make a dent on the Java ecosystem without first seeing the third-party frameworks, SDKs and tools blooming around Swift as they did in the early days of Java.”