Plans & memos to make tech better
Product Strategist • Officer • Developer

Thoughts On Making Swift Open Source

You've likely heard that Apple has made the Swift programming language open source. Of course, this means that developers could potentially be able to use Swift to make software on other platforms. That could eventually include Linux, Android, Windows, and web applications. I'm not completely sure of all the reasons why Apple has made this move. But here are a few ideas and thoughts.

Popularity Means More OS X And iOS Developers

Likely, Apple would simply like Swift to become more popular. If Swift becomes so popular that it is used for other platforms, then developers who have learned Swift might be more likely to build native apps for OS X and iOS at some point.

I believe Swift's first and foremost role at Apple will continue to be building native OS X and iOS apps, likely using Apple's XCode development environment. And Apple's main goal is still likely to get developers making native apps for their devices and computers. But anyone who learns Swift will likely think of building an app for OS X or iOS at some point, even if they first used Swift to build an app on Android or another platform.

Free Means Anyone Can Learn It, Including Students

Students are basically the developers of the future. By making Swift open source, it gives Swift a chance to be used as the basis for University or College classes. And if schools are teaching Swift, then businesses might want to make software using Swift because they have a bunch of young developers who already know the language.

At the same time, it makes it so that anyone, young or old, can use and learn Swift for free. While open source and free aren't the same things, it does essentially mean that anyone can learn Swift pretty easily now. They won't even need to get a Mac to learn Swift. But I think Apple still hopes that eventually they will get or use a Mac, whether it's at home or at work. That's because Swift will still be best used to build native apps on Mac and iOS.

Enterprise Is Where The Big Money Is

Apple at one point was largely targeting creative professionals with their Mac computers. But it seems they are trying to work their way into the enterprise more and more these days. They worked a deal with IBM to create iOS apps. And I wonder if open sourcing Swift could lead to many more enterprise customers for Apple as well.

While a large amount of enterprise software is shifting to the cloud, it doesn't mean that businesses don't still use or build software that isn't only web-based. Client-server applications are still used by most big businesses. It also doesn't mean that businesses won't ever find reasons in the future to make some software for a specific platform.

If Apple can figure out a way to get more enterprises to build custom software for Macs, they have a whole whack of money to gain. We're talking about huge businesses deciding to make custom client-server software on Macs, and outfitting their whole company with iMacs. Companies like Oracle, Microsoft, IBM, and HP are making all this money now. I don't think Apple is a big player in the enterprise space, but it doesn't mean they never will be. Maybe the announcement of Swift being open source could help Apple work their way into the enterprise.

Getting Help And Building A Community

Making a programming language and framework to build applications is not easy. When you make something open source, you basically gain a whole bunch of people who will help you build something without having to pay them. You also gain a community, hopefully making people feel like they are helping to build something together.

I think it's worth noting that making something open source and building a community around it hasn't been something Apple has done a lot of in the past. It will be interesting to see if they can do a good job with open sourcing Swift. I think Google and Microsoft have so much more experience in this area, and kind of make it look easy. Apple could go through a big learning curve with this approach, similar to their troubles with making cloud software. You know, things like MobileMe, iCloud, and Apple Maps. Being open like this certainly hasn't been Apple's strong point either. So we'll see how well they are able to pull this idea off.

It Worked For Android And WordPress

Google chose to use Java for Android, likely for many of the reasons above. Java was extremely popular both at schools and at enterprises. It was being used by students to learn programming, and enterprise developers were using it to build huge client-server applications, and also large business web applications and websites. Because so many developers already knew Java, it was easier for them to try making an Android app.

Similarly, PHP is being used for creating a large amount of the smaller websites and blogs on the internet. WordPress became extremely popular, largely because it is built using PHP, an open source programming language. And because WordPress itself is open source. Microsoft and Oracle could get big enterprises to use their programming tools and languages, but ended up losing a lot of customers because hosting a WordPress website is so much cheaper.

Apple is kind of following in Android's and WordPress' footsteps with this move. They want Swift to get more popular. And to do that, it needs to be free to use, and available to learn on platforms other than Macs.