Web Development · Open source

Apple is doing open source?

Porfirio Partida Software Engineer at Nearsoft

June 11th, 2015

Apple announced they would open source Swift >> easy-to-use language for making fast iOS and OS X programs. Apple has been known for being proprietary, not sure if I know of anything else they've open sourced. Curious what others think this move means and how open source it will really be?

Jake Savin Senior Technologist and Team Leader

June 11th, 2015

Apple has released code into open source for at least roughly the last 15 years. Most notably, Darwin which is the core of Mac OS X, WebKit which is the rendering engine for Safari and is also used by Google for Chrome, and clang, which is their compiler.

See: http://opensource.apple.com/

Todd Blanchard Co-Founder at Rewind Inc

June 11th, 2015

So much is made of the open sourcing of Swift - people forget that Objective C has been open source for many years. The language isn't really that interesting. Its the Cocoa framework that makes it powerful. That isn't open source.

So what is the value of Swift without Cocoa? Roughly nil. As the GnuStep (gnustep.org) people learned the hard way. GnuStep is an attempt to create an open source ObjectiveC/Cocoa but Apple keeps moving the apis and adding new ones and GnuStep always lags. So, while there is a free and open source implementation of ObjectiveC, without the framework it doesn't do a lot.

Swift, without the ObjectiveC runtime and Cocoa frameworks, is roughly equivalent to C++ in runtime architecture and, as a dynamic language fan, I dont' find that very exciting at all.

Mathieson Sterling Senior Software Engineer at Apprenda

June 11th, 2015

Microsoft actually did the same with C# and ASP.NET. The power of open source for software components makes it pretty hard not to. That said, there's a big difference between open sourcing the language and the platform. The language is just a means to get content on the platform - and access to the platform is where Apple makes its money.

Danny Sung

June 11th, 2015

A lot of people think of Apple as super proprietary, but they've actually created AND open sourced quite a bit (recapping a bit from other contributors): 
ZeroConf (Bonjour) - the thing that makes auto-discovery of printers & other computers work
mDNS - a core technology required for ZeroConf
WebKit - used in Safari, Chrome, etc.
clang/llvm - Apple's been a major driver of this compiler technology which offers significant performance possibilities as well as code analysis that was not really practical/possible before without 3rd party tools.
GCD (Grand Central Dispatch) - That takes most of the irritating problems out of threading and intelligently handles multi-core processors.

I'm sure there's plenty more that I'm not aware of.  But note that each of these are critical tools that solve non-trivial problems and Apple had little-to-no business reason to Open Soruce these tools.

They also use standard formats/protocols where applicable... They make heavy use of XML or JSON where they make sense, ASN.1 for receipt validation, etc.

To Todd's comment:
 Objective-C was actually OpenSourced by NeXT.  And while Cocoa may not be open-sourced, Foundation Kit and Application Kit are.
CoreFoundation was created by Apple and is Open Sourced.  It's not Objective-C code, but does represent a comprehensive set of utility functions that can be useful in many C projects.

David Schwartz Multi-Platform (Desktop+Mobile) Rapid Prototyping + Dev, Tool Dev

June 11th, 2015

Swift is experiencing the fastest up-take of any programming language ever released. Also, there are more people learning Swift as their first programming language today than any other. And, this is in spite of the fact that it's not being formally taught in any schools yet. It has only been out a year now, so this is really significant. I think that in open-sourcing the language, their intent is to have others port it to other environments (<cough> Windows <cough>), as well as encourage educational institutions to adopt it and get it more widely embraced throughout the industry (as if it needs any help).

Here's a site that charts one measure of the "popularity" of various programming languages over time. Check out the headline.


Karl Schulmeisters Founder ExStreamVR

June 11th, 2015

Swift rolled out to very mixed reviews by developers, and the uptake has been fairly slow.  This is an attempt to get a community to accept it and expand the community..  meh

Tom Maiaroto Full Stack Consultant

June 11th, 2015

"Swift is experiencing the fastest up-take of any programming language ever released." ... Source? That doesn't smell right. Swift isn't (yet) used for server side dev and that's kind of a big use...So without that, I'm not sure how Swift could be the gaining adoption the fastest. It just lives in too small a bucket. ...But there is where I'm thinking things will change based on Apple open-sourcing it.

Swift is nice, but there's a whole bunch of new languages right now that are gaining popularity. I think Apple has made Swift open-source in order to compete with them.

Languages like Go and Rust for example. These both share things in common with Swift. Power and (easy) learning curve come to mind.

My gut feeling is that Swift's API will start growing to be more suitable for server-side and then one will be able to build the whole enchilada in Swift. Rather than being tied to things like Parse for example.

Go has made outstanding progress for Google and quite recently underwent a huge change that benefitted it for cross platform application deployment. I'm thinking Apple is possibly looking for a response to this (perhaps far down the road, or maybe we'll just be surprised one day).

As Apple dives deeper into the smart home stuff and such (the "maker" space too), it's going to find itself not always able to put iOS on those devices. I think Swift is going to be their answer for support there.

This leaves an Apple developer to only needing to know one language - Swift - to build everything they need. iOS apps, Watch apps, smart home apps, and the server side app that they all communicate with.

If Apple does indeed want to be more involved in other devices and the maker space, then there's no way they will win any hearts without having something open-source.

This is a very defensive move for Apple and the future of devices.

Tom Maiaroto Full Stack Consultant

June 11th, 2015

It definitely was mixed (which is why I doubted it as being the fastest adopted) and yes it is to get the community to accept and expand, but I feel like the community wanted to accept it in the first place. It wasn't that no one wanted it in the first place and I do think this will help.

I think it's a LOT better than what we're left with now to build apps. It just may take 4 or 5 years before it gets really good.

Gautam Guliani SVP Technology, 2U

June 11th, 2015

Apple is definitely a long time citizen of the open source community and has sizable contributions to many open source projects. OS X's implementation of unix is probably the most widely used distribution in the world. 

https://www.apple.com/opensource/  is a good place to get a high level view.

But their participation has been inconsistent, sometimes grudging and often contrary to the spirit of open source projects involved.

Here's apple's announcement from 2003 to KHTML community announcing that they are basing their new browser's (Safari) rendering engine on then underdog technology
(read the thread for the excitement it generated in that community)

and here's an article from 2005 citing strained relations between Safari team and KHTML open source team

The pattern has repeated for other open source projects that apple has used within OS X and in other products.

In my opinion, the reason why Apple touted open sourcing of swift at WWDC is because open source is now an essential part of modern, for profit software development and the benefit this will provide as the language acts as an on-ramp into apple's closed eco system. It also helps a little with Apple's continuing efforts to be seen as a cutting edge company.

Hans Zaunere CTO at Founders Bloc

June 12th, 2015

They are proprietary - not to mention manipulative.  Their "open source" program is like that of most other large company's - let's release parts of something to get positive press and keep the important and useful things locked down.

Darwin is a perfect example: it's basically a fork of BSD with Apple's own proprietary pieces (i.e., all the "good" stuff).  Just try to run it on hardware that Apple hasn't sold you.

When their marketing determined wanted good PR, they invited user groups in NYC to their meeting spaces, sponsored open source conferences, and were really great open source citizens, including getting a lot of developers to buy Macs because it was UNIXy.  But when that corporate initiative was over, doors were locked, windows were shuttered, and the oompa loompas went back into the factory, never to be seen again.

iOS is another example.  With all of it's API's and open source-ness, the important stuff to do innovative things (like device driver access to Bluetooth and Wifi) is locked down like the recipe for an everlasting gobstopper.  But you don't head towards 1 trillion market cap on open source: now they're releasing their own set of proprietary drivers around those stacks, for the cool stuff people have wanted to do for years.

Looking back since the DOS days, Microsoft - for all of it's stumbles - has always been, and always will be, far more "open source" than Apple.