When Apple announced at last week’s Worldwide Developer Conference that it was releasing Swift, its new programming language for Apple iPhone app development, to open source, it got the biggest cheers of the conference.
To those outside the world of development, a word of explanation: “Open source” means that the source code — the code used to make the software — is laid bare to the world for any developer anywhere around the world to download, examine, and if they’re so moved, improve on.
So these developers were cheering and hollering for the chance to help Apple work on Swift — something it created internally — as volunteer labour.
In fact, a recent survey by programmer hangout Stack Exchange says that the average software developer spends seven hours a week working on side projects and open source software, outside of their normal working hours.
For the developers who work on these projects, it’s not about the business case.
Core OS developer Matthew Garrett once wrote a blog entry on what free software means to him:
“Without free software I’d have started years later. I’d have lost the opportunity to collaborate with people spread over the entire world. My first job would have looked very different, as would my entire career since then. Without free software, almost everything I’ve achieved in my adult life would have been impossible.”
So many open source projects get started because a single developer (or team of developers) reckons there must be a better way to do things. Those developers are as likely to come from universities as they are from technology companies.
Linux, the most popular open source project of all time and widely used in just about every data center there is, got its start in 1991 when creator Linus Torvalds decided to write an operating system just for fun.
On the enterprise software side, Facebook invented Cassandra (now used at big companies like Apple) because there was just no good existing way to sort huge amounts of data in a user’s Facebook Messenger inbox.
Google, Facebook, LinkedIn, Airbnb, and many other technology companies release their software as open source.
It speaks to a mindset that resonates powerfully with many, many developers: The idea that there’s a better way to do things.
“It’s not just companies driving [technology] forward anymore, it’s anyone or everyone,” said GitHub CEO Chris Wanstrath on stage at this week’s Bloomberg Technology Conference.
The most successful of these ideas attract huge, active, passionate communities to manage and develop the open source project.
If you build it…
“You just put it out there, they won’t care,” says Jim Whitehurst, CEO and President of Red Hat, which commercializes open source software like Linux for the enterprise. “You need to get people to help you build it.”
The Apache Software Foundation is a nonprofit that handles all of this for several big-time software projects like Apache Hadoop, Apache Spark, and Apache Mesos. The Linux Foundation oversees Linux. Docker, the company, manages the community for Docker, the open source software.
It’s the job of those communities to look after the project and ensure they grow in a planned way, ensuring that any features and code added meet the overall goal of the project — even when it’s at odds with what the company who came up with the software had in mind.
These overseeing communities are designed to be loose and widely open to debate, so no one person or organisation can seize control and guide it to their own benefit.
“Sometimes, what the community needs isn’t what you as a business need, and you have to accept that,” said Kevin Scott, SVP Engineering & Operations at LinkedIn.
The unfortunate side-effect to this kind of organisation is that there aren’t rules to promote civil debate or discourage harsh language — a prominent example is how Linux founder Linus Torvalds often finds himself in hot water for scaring people away from wanting to work on the operating system with his tirades and penchant for cursing people out.
Regardless, coders often find these open source communities because they’re running into the same problems as the people who founded the project. Maybe you’re not dealing with the same volume of data as Facebook, but Cassandra might still a better way to do search.
So these projects find their way into what those coders are working on, either at home or at work. For a software engineer, finding the right open source project can save a huge amount of time and a lot of money. And in the process, developers end up making friends and connections.
The why of it all
It’s that last aspect that explains why so many developers pay it forward by contributing code back to open source, even when that commitment goes beyond the workday.
I asked developers on Twitter to weigh in on why they do it.
The consensus, it seems, is that it’s only fair to pay your friends in the community back by making improvements wherever you see them. After all, the developers of the open source world put the considerable efforts of their friends to work in their own software every single day.
And the net result is that your choice for a better way of doing things becomes even better, constantly.
When Apple announced Swift would be going open source, what Apple really announced was that developers all over the world would be able to take something they’re passionate about — iOS development — and make it even better than before, with the help of all the smart people of the world.