When we say we envision bringing the many benefits of Swift to other platforms, IBM joins a growing global community. As a community, we are just starting out on our journey to bring Swift to the Cloud. Since moving to open source. the Swift language has already become the #1 open source language on Github; given it’s been just 2 short months, there is clearly shared excitement around these efforts. As with any open source effort, results come from hard work, collaboration and sharing.
Sharing comes in many forms in these projects. For instance, expertise can be shared in a number of ways.
- through code contributions to existing projects,
- participating in ideation with the community on mailing lists,
- asking and answering questions from the community and
- creating new projects that help solve common problems.
Towards the goal of fostering and participating in an already vibrant community, I thought I’d share my perspectives on the projects IBM is announcing this week. Each of the items has an element of sharing that underscores our commitment to Swift and to helping grow the community — both by assisting community collaboration and jump-starting some technical tracks needed to bring Swift to the Cloud.
Through our Swift@IBM developer center (https://developer.ibm.com/swift), our engineers are sharing their insights and perspectives gained through the experience of being one of the largest enterprise Swift development communities. Here, we continue to highlight new tools and open source projects we are building or participating in as well as offering an ongoing series of blogs related to Swift both on the client as well as in the Cloud. We hope you find this helpful and informative and we are always interested in feedback.
While the availability of Swift on Linux is exciting, we knew there were many steps that developers would have to follow to get their hands on a running version of Swift on Linux. Avoiding the need of creating a VM, installing the correct version of Ubuntu, installing the system dependencies for Swift and finally pulling in the latest Swift binaries, the IBM Swift Sandbox offers one click access to the latest Swift on Linux, allowing developers to code directly in a web browser and seeing their results instantly. We have also been listening to the community and have offered a number of enhancements to the Sandbox during its short lifetime.
One interesting addition, inspired by sites like jsfiddle.net, allows for code snapshots and sharing. With this feature, you can snapshot your code and receive a URL that points to the Sandbox with your code already loaded. The community can then use this URL in mailing lists and places like http://stackoverflow.com/ to ask and answer questions.
The Swift.org release also included the new Swift Package Manager (https://swift.org/package-manager/). The Swift Package Manager allows for developers to create new projects, either libraries or whole applications, that specify their build targets as well as build dependencies in an open standard format. It then reads these specifications and builds your project along with pulling down and building all of your dependent packages. This project is just getting started and we already can see a number of repositories popping up on Github that support this format.
The Swift Package Manager has a decentralized design, making it difficult to keep track of all of the projects across Github that might be useful to developers. To help fill this gap, IBM is happy to announce the IBM Swift Package Catalog (https://developer.ibm.com/swift/products/package-catalog/). The IBM Swift Package Catalog provides a means for the community to submit new packages as well as discover existing ones. A successful package ecosystem is important for this community and we hope you find this catalog useful for sharing.
And finally, we are excited to announce and share a new open source project called Kitura (https://developer.ibm.com/swift/products/kitura/). Kitura is a light-weight web framework written in Swift, that allows you to build web services with complex routes, easily. This project along with a number of new dependent packages provide an initial framework we plan to build upon to add web foundation components as well as an initial web framework to support Swift on the Cloud. While this project, in the short term, leverages a number of C libraries to bootstrap the effort, we are committed use this project to prioritize our contribution to Swift.org’s Foundation and Libdispatch libraries over the coming months, in an effort to build a pure Swift web foundation. This project will evolve quickly as Swift on Linux matures so we invite the community to join in on the fun.
We now have teams across the globe at IBM applying and helping to mature the foundation of Swift on Linux. Most recently, our language runtime experts have been working with the Swift.org community to bring the latest version of Grand Central Dispatch (libdispatch) to Linux. The community’s work to support a natural form of concurrency for the Swift developers continues and will result in a more mature base to build on going forward. To read more about this effort and follow other work in this space, please read this teams latest blog on Swift@IBM (https://developer.ibm.com/swift/blogs/).
Please follow along with us at Swift@IBM or, even better, join us and the community as we build towards our ultimate goal of further empowering the Swift development community with Swift in the Cloud!
Patrick Bohrer (@pbohrer), DE, IBM Swift Engineering, IBM Cloud