Welcome to the age of Github, when software development is as much about mashing up or connecting snippets of existing code as it is about writing that code in the first place.
As more applications move to the cloud, the preferred method of managing development — and for finding code that already exists — is Github, the open source code repository and versioning system used by more than 1.4 million developers (according to the Github site.)
No less an expert than Ray Ozzie, former chief software architect at Microsoft, gave Github itself, and the open source development model it represents, a rousing endorsement at the recent GeekWire Summit.
“Development is much more of an assembly process than it ever has been in the past, because there are so many components out there, on Github or wherever, that you can assemble into a working solution very, very rapidly,” Ozzie said. While Microsoft was diametrically opposed to open source — and is still a bastion of commercial, proprietary software — the company softened that stance during Ozzie’s tenure, so his stance here shouldn’t have been too much of a shock.
While Github’s sweet spot is open source development, there’s quite a bit of commercial code work going on there as well, said Uri Cohen, VP of product management for Gigaspaces, a frequent user.
Developers like Cohen and Peter Eddy, a Boston-based programmer, know this well and attest that Github adds a recycling option to the old build-versus-buy decision.
Depending on what the end product is, developers can find almost any function they need as a free library or as a cheap hosted service, said Eddy. That means reusing rather than writing a lot of this code.
Eddy sees this as the continuation of a trend. A decade ago, there were free operating systems and some simple databases that developers could build on. Five years ago, there were “really good, free databases” and “pretty good” free web frameworks. “Now there are plenty of good, even great libraries and frameworks for almost anything you can imagine — natural language processing, Google-style MapReduce, statistics, message buses, VoIP servers, machine learning,” Eddy said.
Eric Fernberg, a developer with Boston-based SignedOn.com, said that Github also makes it easier to reuse any code that is written in-house. “We do everything here modularly, so we take the snippets of our code and reuse them for every client,” he said.
The Github repository is searchable and ranks projects and repositories regularly by popularity, and it gives developers a single place to manage both the code itself and relevant material.
“You cooperate with the community not just on the source code but the documentation and anything related to the project, which is a big plus,” Cohen said. “We can share our doc with users, then can take it, change it and donate it back. It’s a huge advantage.”
Many prefer Github’s Git source control system to the SVM SVN versioning system in Google Code. Google Code supports Git, SVN and Mercurial repositories. “The question is whether you want to expose what you’re doing to a site managed by Google, which is a giant, and who knows what they’ll do with it,” said Cohen.
As developers seek to create quality products quickly that work in this world of multiple mobile devices, this agile development model of reusable code that is well-managed and tracked will remain critical.