top | item 17445210

Dear-GitHub: Host Github by itself as an open source project

197 points| joelhandwell | 7 years ago |github.com

73 comments

order

tbrock|7 years ago

Why? It’s free for open source, reasonable for enterprise and private use and I think you could build a better one starting from scratch.

GitHub’s success is largely due to the network effect and it’s entrenched status as the canonical code repository.

Besides libgit2, aka “the secret sauce”, is already open source. What are you waiting for?

Arnt|7 years ago

Github has had stunning stability. I bet their architecture is nontrivial, that dozens of parts of their code are tied intricately to their architecture, and that opensourcing only the bits that will run on typical AMIs or on debian^Wdevuan would be little more than opensourcing helloworld.rb.

derefr|7 years ago

> libgit2, aka “the secret sauce”

I would describe GitHub's real "secret sauce" as the issue-tracking, wikis, project boards, and release management parts, that don't get represented in the repo itself.

Which is to say, if you wanted to commoditize GitHub (which is basically what "open-sourcing your secret sauce" means), you'd have to create some sort of library that allowed you to treat a git repo + all those other things as one structured data-object. You would be able to use said library to both operate on all those pieces of data locally; and to sync them between different Git hosting services that all share those features.

Or, better yet, figure out a way to put all those features into git itself, so that every git repo automatically transports those pieces of data alongside itself.

mehrdadn|7 years ago

Exactly. I wonder how people would react to if Microsoft made the GitHub source public (and available for further extension by the community) but didn't grant the license to redistribute/deploy it anywhere else. Would people be content with that, or would they be grabbing more pitchforks and protesting Microsoft's actions as some kind of toxic evil? I'm skeptical that that would make people happy, and if it doesn't, then it goes to show the ulterior motivation isn't actually to just to extend the platform and "scratch my own itch", as they put it. It's to let themselves move off GitHub.

kodablah|7 years ago

Your reasons against "why" read more to me like "why not" as you listed things unaffected by whether they open source or not. The benefits for "why" are the same for all open source software and are not unique to this situation. The only question is if the costs are too great.

joelhandwell|7 years ago

>Why? >What are you waiting for?

If Github was made with micro services architecture, it could be split into open source "Client side + Test-backend" and closed sourced "Production-backend". Backend can be composed of some interface and multiple implementation such as test impl and prod impl. “the secret sauce” could be the "Production-backend" and MS have good in-house talents who operates Azure so no need for the help from OSS community to improve backend.

However for example +1 button took so long time to be implemented even though it seems like small change in client side code and some adjustments in database. That itch lead to the https://github.com/dear-github/dear-github open letter and signers listed here: https://docs.google.com/spreadsheets/d/1oGsg02jS-PnlIMJ3OlWI...

The last sentence of the open letter says: "Hopefully none of these are a surprise to you as we’ve told you them before. We’ve waited years now for progress on any of them. If GitHub were open source itself, we would be implementing these things ourselves as a community—we’re very good at that!"

I think that's OSS community want, including but not only I want.

peterwwillis|7 years ago

It's kind of funny how Open Source is now a strategic initiative of many big tech companies. They open source projects for a variety of reasons: 1) to attract tech talent, 2) to "build a community" (aka get customers to become unpaid tech support), 3) to increase quality by increasing eyes on lines of code, 4) to reduce cost of maintenance by allowing the community to provide development work, 5) contributing back to existing tools allows companies to re-use technology rather than having to roll their own, 6) defeat competition by releasing a supported product for free.

The last one is a really powerful move for a software company. Normally, people will use your software if it's free, but if there's performance or other limits, it decreases the number of potential users. External open source projects then pick up the user base you might have acquired later. By open sourcing your own product, you effectively eliminate the need market for the external projects, giving you back your user base (which helps your community, potentially leads to sales, etc).

For some companies this would be cutting things very close in terms of profit margins, but Microsoft has plenty of other income that it doesn't need to worry about an occasional loss. It has way more to gain from leveraging this product in all its other tech offerings, even if they made zero money off enterprise support.

jasode|7 years ago

>Microsoft open sourced Xamarin after acquisition and it was good for community.

I don't think Microsoft's previous open sourcing of Xamarin is a good indicator and may lead us to misunderstand MS's strategy. To me, it would be very out of character for MS to open source Github.

Yes, MS has released things like C# compiler (Rosalyn), Visual Studio Code (Javascript Electron app), and Xamarin to the open source community.

But, MS has not open sourced CodePlex, Visual Studio Team Foundation Server, Skype, Linkedin.

I see a difference between "programming tools" and "collaboration platforms" and Github is in the 2nd category. I see no strategic reason why MS would pay $7.5 billion for Github to just turn around and open source it.

WorldMaker|7 years ago

Xamarin is an easy to use leading indicator because of Nat Friedman's involvement in both. Simply in choosing Nat Friedman as new CEO it is hard not to wonder if Microsoft at least has the intention to explore Open Source as an operating option for GitHub moving forward.

> But, MS has not open sourced CodePlex, Visual Studio Team Foundation Server, Skype, Linkedin. [...] I see a difference between "programming tools" and "collaboration platforms" [...]

They've open source some of those "collaboration platforms". It's not a clear black & white situation, I don't think.

LinkedIn has a large open source footprint: http://linkedin.github.io/

More importantly, Azure has a ton of Open Source: https://azure.github.io/

A lot of what might possibly be considered "secret sauce" bits of the Azure stack are open source, and you could possibly cobble together your own mini-Azure if you needed too and for some reason it wasn't just cheaper to buy Windows Servers with Azure Stack out of the box or even to just use Azure's existing cloud.

The Azure Functions Host is the biggest example off the top of my head that a lot of people imagine would be closed source but is open source.

(Another example is I've used over the years for different reasons is Azure's "Kudu" website deployment engine.)

I don't know if there's a cut/dried point where Microsoft might currently be drawing the line between its closed source stuff and open source, but "programming tools" versus "collaboration platforms" doesn't seem to be it (even before getting into semantic arguments about the fuzzy boundary between such categories).

That said, there probably is no obvious strategic reason for Microsoft to open source GitHub at this point, and maybe all that money that was spent in the purchase are plenty more reasons not to.

But Xamarin is an interesting leading indicator, and if there is a person to put in charge of GitHub with any interest in exploring the possibility of at least open sourcing more of GitHub, even if never quite "all" of GitHub, it is probably Nat Friedman.

nodesocket|7 years ago

I am going to be in the minority here, but why does HN always think all software should be free and open source? GitHub generates large revenue and provides immense value for organizations and companies. It's the same argument I see on HN about people not wanting to pay for Slack and going through insane hoops and efforts to run alternatives. Makes no sense being a technical founder. I truly believe in supporting great software with my wallet. If the organization decides to make their software open source... That's awesome and great, but starting outrage campaigns and public outcry I can't get behind. Microsoft is a public company and they have every right to monetize GitHub.

nemothekid|7 years ago

I really don't see the value in open sourcing GitHub when Gitlab exists if you are looking for a replacement incase MS decides to go full tyrant - unless if you believe GitHub enterprise is an amazing project.

If GitHub wasn't built from the start for hosted deployments, it will probably be both expensive and a pain in the neck to run. GitLab probably has it's issues, but I won't be surprised if there are assumptions made in GitHub's code that assumes you are essentially running on high memory / high cpu machines to reduce latency.

sushipro|7 years ago

GitHub Enterprise is built from the same codebase that runs GitHub.com. And GitHub Enterprise was designed from the beginning to run on your own hardware. As far as hardware requirements, well, that kinda depends on your workload. GitHub Enterprise system requirements were higher than GitLab but we found GitHub Enterprise much more reliable. GitLab will let you run on anything but they don't really know what will work. They're still trying to figure out how to scale gitlab.com which barely has any users compared to github.com. The experience at scale is huge.

Additionally, we found functionality like HA and DR were implemented very seamlessly in GitHub Etnerprise. Easy to set up and not a hassle once it's running. GitLab basically tells you to build your own HA which isn't something we're interested in doing.

freedomben|7 years ago

This would be interesting to hear about from an insider. I suspect you're right. Having worked at a company that open sources most of their code, I've seen first hand how much better the code quality is when you know it's going out to the world. When you know it's gonna be hidden and only a handful of people will ever see it, you're much less hesitant to push up hacks :-) We open sourced something that wasn't originally going to be open, and we spent weeks going through cleaning up and refactoring things to avoid public embarrassment.

tills13|7 years ago

I _hate_ people using "M$" un-ironically. It wasn't funny 10 years ago when it started and it's still not funny today. How can you take that one comment seriously with that "M$" part in it.

peterwwillis|7 years ago

That's cool. I hated Micro$oft for a while, for being a bunch of evil money grubbing assholes who made it harder to run the operating system I wanted, applied proprietary extensions to open standards in order to force vendor lock-in [nearly destroying the open web], and who leveraged PC manufacturer deals to tax us for software we didn't want. They literally called Open Source a cancer and lied about what the GPL specified to discourage use of the software. M$ was a monopoly, and all about the cash. It was never supposed to be funny.

Also, irony means suggesting the opposite. I don't know why anyone would use M$ ironically.

rurounijones|7 years ago

> How can you take that one comment seriously with that "M$" part in it.

Judge the comment on the merits of the data provided and opinion based on that and don't get hung up on a name?

"M$" may also be useful as an indicator of bias but again, it is not the whole comment.

krisdol|7 years ago

It started much longer than 10 years ago. On slashdot, it was pretty much the only way I've ever seen Microsoft referred to.

cutety|7 years ago

Like the other commenter said, if it aligns with their business interest, they will. That said, I do find it funny that essentially the "home" of most open source projects itself isn't open source. I'm not a heavy user of GitHub, as we use a self hosted instance of Gitlab at work, so my only use is browsing projects & throwing up my various side projects on it, so maybe someone can enlighten me on my next question.

Does GitHub have some proprietary tech/functionality that is valuable enough to warrant it being closed source? As far as I can tell, GitHub's most valuable assets are it's large user base and the brand itself, it's actual functionality seems to be pretty standard amongst git hosting applications (Gitlab, Gitea/Gogs, Bitbucket, etc...). However, like I said, I myself am not a heavy user of it, so there could be some feature the others are lacking that GitHub would like to keep the code closed to prevent others from replicating.

seabrookmx|7 years ago

I think you're right. The only "secret sauce" I could see them having are some unique operational/architectural features of their back-end code that make sense for an entity at Github's scale. No instance of Gitea/Gitlab is even in the same ballpark wrt repo count and traffic than github.com, obviously.

m3kw9|7 years ago

Don’t matter if you say pretty please, if it aligns with their business they will do it. They’ve probably thought of this move already.

sdesol|7 years ago

There is no way I can see them open sourcing GitHub. If you have studied the history of versioning control systems (ClearCear, Perforce, TFS, Subversion, etc.) you would know how insanely powerful controlling the hosting solution is. I can see Microsoft making private repos for free and/or making GitHub Enterprise free for the first 10 users though.

jen729w|7 years ago

Which one would argue is exactly what they should and must do, given the money they paid for it.

_bxg1|7 years ago

Yo dawg I heard you like GitHub, so I put GitHub on GitHub so you can contribute to GitHub using GitHub.

gremlinsinc|7 years ago

Can't get more 'meta' than forking github, on github, to contribute to github or make a clone of github all using github.

whoisjuan|7 years ago

GitLab is not open source though. They call their approach "open core" which imho is just a marketing gimmick to appear as an open source solution when in fact they are not fully open source.

eropple|7 years ago

I am not a big fan of GitLab-the-company. But GitLab CE is licensed as MIT. You can do with it what you wilt.

I have a hunch that your actual complaint is that they too do with it what they wilt, and what they wilt is not "give to you everything they add on top of GitLab for free and forever".

joelhandwell|7 years ago

Misunderstandings looks like happened regarding my intention. I'm totally not interested in running my own github instance in other server just like people who signed the open letter dear-github to plead Github to add +1 button in issue which took really long to be recognized as an issue to be implemented. I'm sure if it was open source, somebody implemented the feature and made a pull request.

My intention is to make github.com "Client Side Code" better by let OSS community join into the development. So open sourcing backend and architecture is not my interest and possibly not interest of MS too. I'm not sure if Github is made of micro services, but if it is, certain client side code could be open sourced first and only that could generate great contribution to improve it.

I'm heavy user of Gitlab and disappointed because it is no longer fully open source and some enterprise features would not be welcomed to be implemented by OSS community because it conflicts with Gitlab company revenue. In my ideal world, MS splits Github source into client and backend and open source "Github client + test backend" for community to test if client code works while they make pull request and keep production backend closed. Do you think MS would be interested in this?

willchen|7 years ago

I think the +1 button was a really nice feature and something they should've done a while ago, but it's hard to draw the line.

If everyone contributes their pet UI feature (e.g. custom theme, use XYZ monospace font), then there will be dozens of features that only 0.01% of users use, but it increases the overall complexity of the product and maintenance burden.

gremlinsinc|7 years ago

I think it'd be cool if they open sourced it, but w/ federation built in. So self-hosted public repo's, would call back to ms github, and show up in searches/etc. You can star/comment/etc on github.com even if it's a federated/self-hosted github.

That way the social aspect is still there, regardless of if the repo is hosted ON github.com or a remote copy.

ksubedi|7 years ago

after seeing what they did with xamarin, i would not be surprised if they did. but unlike xamarin, open sourcing github wouldnt help them gain more developers on their platform and i do not see any other business benefits. i would love to see this happen though

Someone1234|7 years ago

They could, but I'd argue GitHub is powerful for the community, shared user accounts between projects, and integrations. None of which you'd benefit from if you deployed your own instance.

If Microsoft open sourced GitHub, I'd still use GitHub.com, for the reasons I stated above. Heck GitLab is already OSS and I don't use that because GitHub wins via the network effect[0].

PS - I have no issue with people asking for this; I'm simply pointing out the "win" if Microsoft agreed, is lower than you'd immediately anticipate.

[0] https://en.wikipedia.org/wiki/Network_effect

aylmao|7 years ago

As much as I wish this happened I don't think it will because it'll open the doors to a lot of self-hosting eating away Github Enterprise's revenue.

mythz|7 years ago

Pretty sure MS didn't acquire GitHub for 7.5B so they can OSS it and encourage competing, fragmented solutions with a lower barrier to entry.