Apple Open-Sourcing Swift: Server-Side Swift Anyone?

Apple has gotten notoriously good at delivering a mix of the obvious and the unexpected at their WWDC events, undoubtedly inspired by Steve Jobs’ famous “One More Thing…” style.  The unexpected for this year’s WWDC event on Monday, for me at least, was the announcement Apple is open-sourcing Swift.  Although I didn’t see it coming, it immediately made sense to me.  A thriving AppStore and developer community is key to Apple’s success, so anything that drives adoption of Swift helps that goal.

But what does it really mean? Hard to say just yet.  The details are still coming and it will not happen until “later this year”.   What they did announce was that at launch, it would contain support for OS X, iOS, and Linux.  The Linux support is the interesting one.  Obviously you can build apps on OS X and iOS today with Swift.  With Linux support, server-side code created with Swift becomes an option.  What this means in the long-run is hard to say, but it certainly is an interesting development.  Node.js gained quick adoption largely because it meant using the same language (JavaScript) on the front-end browser as the back-end server.  With the potential of using Swift on the back-end we have an analogous situation for mobile apps and the back-ends that support them, at least for iOS apps.  And if its open-sourced and successful building mobile back-ends, could we potentially even see Swift driving Android apps one day? Maybe even Windows Mobile, built from XCode on a Mac?

What was the punch line to a joke last week, this week is at least within the realm of possibilities. From a software development and language feature perspective, I would be perfectly content to see JavaScript not leap from web-dominance to mobile dominance. JavaScript simply allows for so many simple programming errors to go unnoticed.  Errors I have too often seen appear in production systems as performance issues or outright functional issues.  A Swift compiler should be able to catch many of those types of issues during the development phase. From a mobile monitoring perspective, I am also intrigued by the idea of tighter integration and correlation possibilities of apps powered by Swift-powered back-end servers, focusing more on the app’s model and user interaction, than the client-server distinctions so prominent in mobile monitoring tools today.