Hacker News new | comments | show | ask | jobs | submit login
We are moving the Roslyn code to GitHub (msdn.com)
493 points by taspeotis on Jan 11, 2015 | hide | past | web | favorite | 220 comments

This is getting terrifyingly close to my prediction that Microsoft should/would/will buy GitHub. When I first started predicting this two or so years ago, it was mainly for its comedic value (it always got laughs, followed by "yeah, they should!" followed by nervous laughter followed by "wait, do you think they would actually do that?!"), but after the open sourcing of .NET I honestly think anything is possible. Especially because the counter to MSFT buying GitHub was always "but... CodePlex!", and here they are explicitly moving a high-profile project from CodePlex to GitHub. Scary!

I've been listening my way through the archive of Scott Hanselman's hanselminutes podcasts. Microsoft has been striving to be on the right side of history in regard to open source for five or six years. It's all out in the open.

Moving to Github is simply developer friendly.

Don't misunderstand me. Microsoft's products compete with open source software in the marketplace for developer mindshare and I am not suggesting that this is not a business decision. Being on Github helps the company iterate quickly rather than on the multiyear cycles that were standard when software came in a box.

Will Microsoft buy Github?

Only if Github is selling.

And there was value for Microsoft. There isn't amazing technology, there. There's a huge liability for litigation hosting just anyone's content that comes with Microsoft size pockets, and Git, being distributed would allow an angry community to set up their own Son of Github if Microsoft took control and acted improperly.

Incidentally, WiX has been on SourceForge since 2006. There's been nary a rumor of a deal there.

"Only if Github is selling."

Everyone is selling, for the right number of billions.

"We are excited about this new stage, because we are better positioned to ..."

a16z is their lead investor. Which presumptuously means there is definitely a selling price and Microsoft definitely has cash.

A number of big players have the cash...Apple, Google, Oracle. So do sovereign investment funds and Berkshire-Hathaway. Other than FUD, there's nothing pointing to Microsoft and Google makes far more extensive use of Github:


I like the idea that speculation Microsoft may buy github can only be FUD and not simply speculation.

Even though Microsoft have embraced open source, they are not happy about the GPL license, and have actively replaced GPL code in their previous takeovers.


My impression is that GPL (or another copyleft style licence) would create incompatibilities with the business models of many of their customers. Taking contributions would also be problematic since Microsoft may wish to dogfood their opensource for proprietary products.

For better or worse many of their products incorporate licensed technology from other companies under terms incompatible with GPL. So GPL's strong terms don't seem a viable and reasoned alternative.

GPL might be seen as a strong option for companies whose business is built around dual licensing their technology and when all that technology was built in house or licenced under different less stringent terms.

This. GPL is just really really hard to work around if you're selling non-SAAS products. In general, it's not something you try to do if you have any alternative. And nowadays, you almost always have an alternative. Increasingly often it's a more capable, more actively maintained, and better supported option that comes with the added bonus of not needing to take the time to get special approval from your legal department.

> if you're selling non-SAAS products

Pretty funny, considering how much RMS dislikes SAAS.

I do not know, but I suspect this is exactly why RMS dislikes SAAS: because it can technically obey a license without having to give users the freedoms he designed the GPL to give.

It's deeper than that. By its very nature, SAAS precludes every single one of the freedoms that the GPL is designed to give.

The GPL isn't really about sharing source code; that's just a means to an end. The GPL is about being able to exercise complete control over - and having complete knowledge of - all the software that you use. To an approximation, SAAS is about the opposite of that.

Microsoft might not be happy with the GPL itself, but given they are working on LibGit, and not all of GitHub (or any?) of their main software they "sell" (github enterprise, their client apps like GitHub for Windows and OSX) are open source, Microsoft would probably have no issues with the GPL. It would also be interesting if MS did buy GitHub. Wasent one of the GitHub founders an employee of a company who was bought by Microsoft and he either dident move over or left after a minimum time?

I think most people have issue with GPL to be honest. So they aren't alone there.

> It's all out in the open.

Really? So they release the source to a few of their developer frameworks and tools, and they're now "all open"?

Don't get me wrong, as a long time C# developer I do appreciate the gesture and I'm especially happy that they're working their "not invented here" mentality, but with simply providing us with the source code that we already have anyway (via ilspy), all of this just seems over-inflated to me.

Let me compile Visual Studio, and I'll be their biggest cheerleader; or IIS, IE... and I'll promise to stop dressing as one.

On buying Github, though? That could be the final 'E' of their strategy.

Completely agreed. Once Microsoft releases the VS source code, I'll be completely sold on the idea that it's reformed. Until then, this seems like very effective developer relations management.

Why the VS source code? It would be almost entirely useless to anybody as there is 2 decades of legacy in that code base and MS has massive teams just trying to keep it all together. Only open source things that are WORTH open sourcing i.e. where you want active contributors.

Why VS? So when things are removed, "we" can continue to maintain them. Sure, that provides no benefit for Microsoft but it does to its customers. It will also show the are serious about being "all open", rather than a few self-satisfying token gestures.

If I could compile VS myself, on my own box, that would be massive in ways that are hard to articulate. I wouldn't be contributing to VS. I'd be modifying VS for my own purposes, which is what open source is about.

This isn't big because Microsoft has stared sharing source. The source to the .NET framework has been available _without_ ILSpy for years now.

This is big because Microsoft is truly embracing an open source development model. They've opened most of the .NET platform up to the whole shebang - pull requests, copying code into other projects, forking, all that good stuff.

So the big deal is that we're now allowed to modify the code of a few libraries?

Fair enough.

MS is closed source? People Bitch.

MS moves to open source parts? People Bitch.

Can't win...

My point is that the changes in Microsoft's attitude toward open source have occurred in the open.

It is a response to its parent comment which strongly suggests the attitude reflects a sudden and nefarious change in Microsoft's behaviour.

Yeah until they open source something else important to their platform (e.g. the NT kernel, DirectX, Trident/Chakra) saying they've fully embraced open source is a little premature.

It's great to see MS making smart choices!

They'd have to bid against Google, by this logic, since Go also moved to Github recently.

Sorry I didn't mean to vote you down, my baby daughter hit my hand while I was holding the mouse. I can't seem to find a way change my vote; is there one?

Teach your daughter to hack so she can up and down vote on her own Hacker News account.

I voted him up for you. :-)

Wait wait wait! Why would Microsoft, or any company, increase the value of a company before buying it (thus increasing the amount they have to payout to existing shareholders)? Wouldn't you think Microsoft or some other company would buy first, then make the company worth more? For example, let's say Chevy is [seriously] thinking about buying [BatteryCompany]. Would Chevy put in an order for millions of dollars worth of batteries and then buy, requiring Chevy to pay more to existing shareholders? Or would Chevy try buying the company then placing the orders to its subsidiary?

I think this is more like Chevy stopping to produce all the parts on their own and instead starting to use trusted parts provided by third parties which the rest of the industry already agrees on using. Buying the manufacturer of one such part really makes less sense if your company follows a completely different production philosophy.

What does MS gain? Is online source code storage really going to be a million or billion dollar business for them? It seems like it's just a race to the bottom with costs, just like Dropbox, Box, etc. etc.

> What does MS gain?


Microsoft's message has been it's a one-stop-shop for your IT needs, as opposed to the general open-source ecosystem where everything has a different vendor (if at all). This, and the difficulty of moving to other platforms/vendors/tools was the core of its vendor lock-in power. In the 80's and most of the 90's, I went full Microsoft, from runtime to database to developer tools, because everything worked so well together.

Microsoft has been changing, of course, but if not even Microsoft uses Microsoft products, why should companies use them?

With this, again, we see the tacit admission a product or service built on top of free software is somehow better than the technologies Microsoft sells.

You can't just buy image. If anything it would just dilute the image of github. It's like the rich kid trying to make friends by buying the basketball court.

>It's like the rich kid trying to make friends by buying the basketball court.

You'd be surprised how effective that can be...

And yet, they bought Minecraft, which seems to be exactly that strategy.

I don't think MS bought Minecraft for image. I think they bought it because it's very successful and has a chance to make a ton of money.

Why can't it be both? Mind-share AND money.

Well I would argue that it didn't work. I didn't even know that Microsoft was involved with Minecraft until you mentioned it.

We know they can't but interesting things happen when you are both desperate and rich.

pjmlp has it right, but I'll add some further clarifications.

One of the most important aspects of Microsoft's success is network effect. People use Windows and Office because other people use Windows and Office.

But network effect also works on the development/platform side. Devs write apps in the technologies they know and are comfortable with, and those tend to be the technologies they've used for personal or work projects. Today, far fewer of the top tier (even the top 50% really) of developers are using Microsoft technologies, or are even familiar with them. The "cool kids" code in Ruby or Python or Scala or Golang, or mobile specific languages. If they want to get things done to pay the bills they might fall back on java or PHP. But the idea of using C#, .NET, or coding Windows Apps? Far fewer devs under 30 are doing that than they were 10 or 20 years ago.

With fewer devs coding on your platform that means there will be fewer apps, especially the most desired ones, and eventually that will impact the user base as well and weaken the entire business. The era where nobody cares whether a computer runs windows is on the horizon today, even though it may be many years away. If you look at the big apps and systems from the last 5 years you see that a lot of them are either web based or mobile (specifically android/iOS as well).

Microsoft used to understand this and it was a major reason why they invested in Visual Studio for all those years when it was unprofitable. But they've had a period of unrivaled market dominance which has only recently been challenged, so they lost their way for a while.

Catering to devs is how you maintain market relevancy with your platform, which is something Microsoft desperately needs.

Additionally, improving the relationship with the dev community and attracting more devs to your platform makes hiring easier (especially hiring talented folks). It's almost impossible to objectively quantify the benefit of that but it's an enormous factor. Microsoft has been bleeding talent for years and has been starved of a lot of talent for a long time because they were perceived as being old and boring and requiring a completely different set of proficiencies to work there. If Microsoft wanted to they could turn that around and start paving a road back to relevancy in the dev community again.

Under-30 dev here. Been programming in C# for the past 3.5 years now, and loving every minute of it. I find VS and the associated tools be a far more productive and enjoyable experience than the Linux/Unix toolchains I was forced to use in undergrad, and C# to be a completely amazing language. The two warts, for me, are MSBuild (powerful, but obtuse at times, but still better than make) and PowerShell (again, powerful, but obtuse at times).

I also really like how .NET has first-rate libraries for the Azure ecosystem. It really makes doing some very technically difficult/interesting things easy on Azure.

As for others, I work with 2 developers who have made the jump from Java/JavaScript to working in C#/.NET because it is just a plain-old better experience.

As for relevancy and devs, C# is huge in enterprise, as I'm sure you know. I don't think they're really fighting to maintain relevancy there, and I would suggest that since the advent of MVC and Azure, they are growing in relevancy in the SaaS space.

>"Under-30 dev here. Been programming in C# for the past 3.5 years now, and loving every minute of it."

Mid 30's here. I work mostly on C++ but I have to jump into C# code once in a while. I agree that C# is a very productive language and I love how it never gets in your way ("Do you say you don't want to use a common interface for your generics? Use dynamic!").

My only "complaint" is that C# is so indulgent that it gets boring at times, which might actually be a feature.

C# is oft underrated, in my view. It's very quick to code in, is part of a large (if Windows-centric) ecosystem, and has been generally fairly tastefully designed. Compared to other languages you might compare it to, its designers aren't afraid to be a bit avant garde at times (unlike Java), it's got static typing (unlike Python), it's got garbage collection (unlike C), and... well, I know Go programmers hate it when people drop the G-bomb. But it's got that too. Unlike Go.


I assume he means generics.

Maybe... :)

I was a little circumspect because the usual response to any suggestion that a lack of generics might be some kind of problem is - generally - not positive.

But my point is merely that C# has this thing, and Go doesn't. If I knew enough about Go to say instead that it lacks something else that C# has, I'd have done that...

>It really makes doing some very technically difficult/interesting things easy on Azure.

Doesn't that just mean Azure has horrible APIs that are impossible to work with without the 'magic tooling'?

I've been using some Azure bits with node.js without much issue... I'd say that C# is probably my second favorite language, and that I really like JS as my first. Which really doesn't fall in line with a lot of people, but that's where I stand... I actually like each for their differences.

Part of my own reasons for moving away from C# and much more into the node ecosystem has been in terms of licensing and avoiding lock in. Now that MS is going a much more open route, I'm willing to actually consider some pieces in that direction again.

VS can be very nice to work with, my single largest issue has been how systems have been designed with it, far above and beyond issues with the underlying platforms or the language. The tooling is very nice. However my experiences with "Enterprise" projects leaves a bitter taste in my mouth.

More often than not, I've seen "Enterprise" (quotes intentional) projects that seem to add complexity for its' own sake. Writing code that is unit tested in Java or C# are just plain painful compared to say JS/node. I find that comes down to differences between a static platform and a dynamic one though.

I think MS is rightly pushing for greater Azure deployment of server-side applications. The desktop is dying for most people, and mobile is not going away. By opening the tools, and providing better integration, they allow for a transparent deployment to Azure which is a rented platform which will receive more consistent revenue. It's simply good business.

Maybe, TBH I've never tried using their services in any other way.

> But the idea of using C#, .NET, or coding Windows Apps? Far fewer devs under 30 are doing that than they were 10 or 20 years ago.

Except I'm not sure MS is still betting on Windows apps, and they're not making money off of .NET either. Of course, it's very prestigious to have your own dev tools/platform/language and all the big kids have them, but none of them are making money.

There are certainly more devs now than 20 years ago, and certainly more types of projects where the C#/.NET stack isn't appropriate, but I'm not sure your argument is valid beyond that.

Microsoft's also making plenty of money off .NET! Dev tools alone is a billion dollar business for them. The ecosystem around SharePoint alone (which sucks!) is larger than that of every tech on the HN homepage right now.

Spend five minutes in Visual Studio and it's clear that this is a massive ongoing engineering investment. I do an enormous amount of cross-platform development -- Mac, iOS, Linux, embedded systems -- and frankly everything else is caveman tools by comparison.

Microsoft's development tools are (therefore) expensive, so unless you're getting paid to use them, it's harder to invest yourself in them.

There's been a free version of each Visual Studio release for about ten years.

More than that the Community Edition keeps getting more fully featured. To the point where for the average indie developer there isn't that much difference, especially compared to the intro paid edition. Plus with Bizspark you get 3 Ultimate licences.

And it'll run on my Linux machine, presumably?

About as well as Xcode runs on my Windows machine, but there are always VMs.

(I wasn't who downvoted you, BTW)

Well, as a fairly broke student who doesn't own any Windows computers (and who's plenty tired of Java), I've found that getting into C# is unnecessarily unpleasant. It doesn't help that everybody's advice seems to be "get Visual Studio."

I'm sure it's great, and if I put more effort into it I might get something to work. But it is a real barrier: Why should I jump to C# if it isn't actually any more convenient?

As a student, you should look into this program: https://www.dreamspark.com/

There are some great cross-platform developments in the pipeline that should allow you to have a native Linux experience approaching VS the future, but you really should use VS if you want the best experience with C#/.NET today. DreamSpark will give you access to free licenses of Windows and VS (and other Microsoft software), that you can install in a free VM host like VirtualBox, so don't let the perceived costs of using VS deter you.

I can't remember if DreamSpark comes with any Azure credits. If it does come with the $150/mo credit that most MSDN subscriptions do, you can use that to run a Windows/VS VM in Azure and just RDP to that. They have templates prebuilt so you can spin up a new VM with Windows and Visual Studio already installed with one click. That's a great way to get up and running very quickly: http://blogs.msdn.com/b/visualstudioalm/archive/2014/06/04/v...

My email's in my profile here. Feel free to get in touch if I can help with anything.

I will look into that, thanks.

If you want C# for the JVM, take a look at Kotlin: http://kotlin-lang.org/

There's also http://omnisharp.net

Plus you can be locked out of VS if you go away for a weekend and haven't signed into the IDE in a while. Happened to me twice last year. Let me repeat that - they force you to login to their tools (that Ive paid for) and if you don't the IDE is rendered unusable. Fuck the guy in the VS team that OK'ed that feature.

But it was a blessing in disguise really as it made me look into other pastures like Node & Laravel.

This is in reference to the partner version of VS.

This is bs.

There are tons of enterprise apps that MS desperately wants to keep shackled to Windows. And of course, there's Windows Phone. MS without Windows and Office would die very quickly, they have to keep the platform alive.

Yet they keep pronouncing cloud first, mobile first. This kind of implies desktop last.

Indeed. For Visual Studio and their development-server (Team Foundation Server, TFS for short) they have had a significant shift over the last few years.

TFS is available online under the name Visual Studio Online (a web only offering), with first class integration with Azure.

Development is done there first, and then later, every now and then, a on premises release is available that organizations can install on their server.

And the last updates have had significant features available only through the TFS web-portal. They were not made available via the Windows-components, like the intergrations for Visual Studio on the desktop. If you wanted the improved features you had to go the web-portal.

I'm starting to question whether Microsoft themselves see any value in developing a Windows-parallel to what is already a good enough web-solution. And if they can't be bothered, why should anyone else?

I'd like to add that a lot of "cool kids" code in TypeScript, which is a Microsoft project.

I love TypeScript, and I wish it was more popular outside Microsoft, but it isn't.

I'd say it's relatively popular. It's also growing quite quickly:


That's good to hear (and better data than my anecdotal evidence - I suspect I may live in a bubble of conference going JS devotees) - I stand corrected.

"My father taught me many things here — he taught me in this room. He taught me — keep your friends close but your enemies closer." - Michael Corleone

Hipster value. All the cool kids are now using Github.

In a non-sarcastic world it's called "community" and it increases the chance of getting collaborators contributing to your project.

You know, the point of open-source being that everyone should be able to contribute and all that.

In a naive world it's called community. These days open source is a vehicle for multinationals to get suckers to write and test their software for free.

Microsoft has caught on to that, hence the move.

> These days open source is a vehicle for multinationals to get suckers to write and test their software for free.

Lets for arguments sake accept your statement as fact. If that is a fact, is that inherently a bad thing?

If I use a piece of software, open-source or not, will I or will I not benefit from that software somehow obtaining better test-coverage? Ofcourse I will.

If that software is important to me, being able to contribute with tests or other "boring" or "light" material means that the core team can focus on further development. And I honestly don't have a problem with that.

The downvoters should educate themselves:


Microsoft does lots of money-losing acquires. Think Skype. They'll recover their money in 20 years (unless they account the contracts they're getting from the government for giving them Skype access as amortization).

You don't get a contract for being forced to comply with a secret court order for information.

Of course you are correct. The NSA never gives money to companies to weaken security. That would be unethical and un-American.


And it's also true that James Clapper didn't lie, he simply misspoke.


"It has been very disappointing to have my integrity questioned because of a mistake,"

Did it hurt your feelings as much as mine that they questioned his integrity in such an insulting and unpatriotic way? People who would do such a thing are the real terrorists.

Microsoft or otherwise, I don't think the idea that GitHub is going to be run like a public utility forever is a smart bet.

It's reasonably easy to pick up your repo and leave.

How easy is it to pick up your bugs and leave?

GitLab B.V. CEO here, on the 22th of this month (January) we'll come out with GitLab 7.7 that includes a GitHub.com importer for both repo's and issues. It will have a simple web interface where you can select the projects to import.

It seems it's pretty easy with Github wikis too:


Private repos cost and there is, and will be, a sufficient demand for such a purpose. Between nuget for package mgmt and github (instead of TFS, etc) you are looking at having important, common pieces available. This makes it extremely comfortable to be in the MS dev camp and still feel that you can interface with others and be sharpening the sword in ways that enable you to build cross platform and potentially jump platforms as necessary.

People have seen experienced .net devs picking up in a wide assortment of communities. Some interpret this as mind flight, or it might just be that the .net ecosystem has made some wise choices that enable devs raised in the ecosystem to not feel their world has silo walls. It's less "no, this" and more "yes, and."

I don't think MS buying github is such a scary thing. There are a few ex-MSFT-ies working at Github (Phil Haack, Paul Betts), and a few other people from the wider MS community there. I guess that is inevitable when Github has 250-ish staff.

It'd be a smart buy for a large software company, hedging their bets on moving into open source. I don't think it's out of the realms of possibility either.

It would be a horrible buy for any polarising brand. Microsoft is about as marmite as you get in software (along with Oracle perhaps) regardless of their recent attitude to being open. We have to be past the point where anyone with purchasibg power believes you can aquire credibility.

> Microsoft is about as marmite as you get in software (along with Oracle perhaps)...

Sure, I have fond memories of the days when trendy developers would see me using a ThinkPad instead of a MacBook and ask, "Mike, when are you going to move away from the dark side?"

Not so much any more. People I talk with seem reasonably impressed with the way Microsoft has been open sourcing .NET and other projects, making Visual Studio Professional free (as in beer), etc.

Now Oracle, that's a different story. We all still love to hate them!

I find this to be true of younger people who aren't aware of Microsoft's past and don't look at them with the sideways glance the rest of us do. In fact, I find it amazing how many younger people never even heard of their dark side and all the anti-trust movements on two continents.

Apple is more antitrust than Microsoft ever was. Bundling a browser with your OS (while still allowing users to install an alternative) is nothing compared to the restrictions in the iOS app store.


- Limiting what compeditor apps are 'up to the standard' for their app store

- Giving their own code and apps special access and APIs that no competitors can have

- Charging competitors for the use of their store

- Ranking of store apps in the favor of Apple code

More importantly the controlling of the ecosystem allows networking effects and developer effects to win Apple money and market share.

That's not an "anti-trust" action by itself and bundling the browser was only part of the issue against Microsoft in the US and more of an issue in the EU.

I grew up hating M$, plus I'm British so we get the whole EU anti-trust thing to boot.

But over the past few years Microsoft has made huge strides, especially the work the two Scotts have put in. Huge amounts of source code open source, their PAAS running all sorts of OSes in VMs, etc.

It isn't the late 90s any more, those that look askance at Microsoft these days seem rather old fashioned given the new shenanigans that are going on.

I'm painfully aware of Microsoft's past, but it's not like Apple can (still) be considered the good guys either. It seems that some of the Apple crowd are learning this the hard way over the recent drama surrounding App Store policies.

My gut reaction to a ThinkPad will likely be better than to an MBP, simply because there's a higher chance it runs something other than OSX and Windows.

Remember the dark side of IBM, ten years before Microsoft? And look at how open-source folk treated IBM, even ten years ago. Companies can be rehabilitated.

Also after them buying HockeyApp it wouldn't be the least bit surprising.

Google is moving code to github too !! :)

That would be great! Next time don't use one provider "cuz' everyone is on GH, dood". Bitbucket is pretty awesome too.

Every monopoly is bad. GitHub is becoming one. I don't think it's a good move, as well as Google abandoning Google Code.

There's always BitBucket. The transition cost for moving from GitHub to a competitor is quite low and given how deeply socially oriented the GitHub user base is, if GitHub starts turning people off, the community can and will move very quickly. Look how fast Friendster and then MySpace died.

Can you migrate current and past Github Issues to Bitbucket? Because if you can't, that could be a big deal for many projects.

That's what I thought until I read Peter Thiel's "Zero to One" where he makes an interesting argument that a monopoly allows a company to innovate, and patent system helps innovative monopolies to exist. I wouldn't extend Thiel's argument into other fields than computer science, though cough telephone carriers cough cable tv

Github is less of a monopoly from the perspective of people using it for enterprise. Open source, sure.

> HOW: This will be a simple switch – turn off CodePlex, turn on GitHub. You’ll be able to see our check-ins on GitHub that same day.

It's probably a safe bet that CodePlex's days are numbered. Which is kind of a shame. It was definitely heavily lacking but I can't help but think that some more competition in the space would be a good thing.

There's plenty of competition, from Bitbucket, which is better. "Social" effects notwithstanding, of course.

My only complaint about bitbucket is that I want to see the code easily, not click through heaps of buttons to do that.

In the settings of every repo you own in Bitbucket, there is a n option to set "Landing Page" to source code and it will open the root path of your repo when you hit the link.

This one should be the default if you ask me.

Don't make me learn to use your site.

Consider using GitLab. GitLab.com gives you unlimited private repositories for free and is more friendly to use than bitbucket.

(note: I'm a GitLab employee)

I like Bitbucket and have been using them for some time but their interface is slow and not as intuitive as Github's.

Also like Bitbucket, and agree with the interface. They made things responsive a while ago, and there were lots of complaints about the 'create a README' decision as a space-waster, they haven't done anything about it since.

I like their revenue model, but because of the existence of JIRA and Stash, Atlassian are refusing/reluctant to improve the issue tracker in Bitbucket. For example, I can't manage releases, create epic(?) issues, and a few other things.

That's all well, but the problem's that getting a JIRA license gives you the ability to manage your issues at a more granular level, until you realise that you also need Stash to create epic(?) issues. I got into JIRA for a few months, and was disappointed by it. I've been considering moving some of my private repos to GitHub.

I'm not sure what exactly you are referring to, but let me give a quick break down of the options here (my day job is primarily consulting around the Atlassian stack of tools).

JIRA itself is highly configurable out of the box and most aspects of the tool can be configured however you like. If you want a record ("issue type") called "Epic" it is easy to configure JIRA to have it. It is also easy - for some definition of easy! - to customise the data you collect for these records ("fields"), when that data is displayed ("screens"), and the lifecycle through which it will progress ("workflow").


Most people want to use Epics as part of an Agile methodology, and Atlassian provides a batteries-included solution called "JIRA Agile". If you saw an 'activate to enable Epics' button it was almost certainly for JIRA Agile (previously GreenHopper) though I don't recall seeing this button myself. JIRA Agile is nice for many reasons, even for people who don't follow an Agile methodology, IMO primarily because it provides a simpler user experience for many people - most installations I've seen have it.

Stash itself is a fairly well targeted piece of software. It manages git repositories, and provides tools to help with that and integrate with external systems. Provisioning projects->repositories->branches and the permissions around them, pull requests, forks, hooks, automations, and integrations. It's also fairly easy to extend with add-ons from the marketplace or that you have written yourself.

The integration between Stash and JIRA is good, but is not much more than showing branches, pull requests, and commits that a JIRA issue has been referenced in.

Hope that helps

Bitbucket has issue with cross-referencing. You can reference an issue from an issue but to make a two-way reference you need to edit both. This is a showstopper for projects that use tracker for planning too, not just for logging bugs.

GitLab B.V. CEO here, consider using GitLab, it adds a cross-reference when you reference another issue (can be in the same or another repo, even across organizations).

i can't stand when a tech company can't innovate their own webpage more than using a standard Bootstrap template any noob developer can use. No offense to your product I'm sure it's great. I just don't understand why every company, especially in the tech field can't even design their website to be just a little bit unique.

And why should it be unique? Do you require that with every entity you deal with?

Yes :)

Ha. Yeah, we use paid Github and paid Jira at work, and it's an idyllic combination. In a couple of decades, Jira is the closest I've ever seen to the Bugtracker That Doesn't Suck Much.

We use jira at work, and there are definitely epics available...?

Interesting, I was on 6.0-6.1, and unless I'm completely wrong, I went a month seeing an 'activate Stash to use this feature' button/link. If you've had epics before then, then I was probably doing something wrong.

His point is that because of Jira, Bitbucket can't have epics. Cannibalizing sales.

I stick with bitbucket mainly because of the pricing schemes. I create a lot of tiny private repos for company related work, sometimes just scripting type programs with only 5 files in it, and I can't afford to pay for each of those on github. Otherwise, github is just the best in the business in every aspect

GitLab B.V. CEO here, what do you think about the interface of GitLab? You can use it for free on GitLab.com and we try to make the interface as clean as possible. (also, we're hiring for an interaction engineer)

What's better about Bitbucket? I've never used it, just wondering.

Free private repositories and out-of-the-box mercurial support. Works well for those small side projects which you do not (yet) want to maintain. I have lots of stuff in there which i want to keep as reference for projects to come and would never want to release to the public.

If you don't yet want to publish, why do you need GitHub or Bitbucket? Why not just keep the repository local?

> If you don't yet want to publish, why do you need GitHub or Bitbucket? Why not just keep the repository local?

There are some reasons, in my opinion:

    * Zero friction to start publishing (in case you suddenly want to)
    * Zero friction to start collaborating
    * Off-site backup
    * A kind of self-discipline boost and desire to make your thing publish-ready
      (get your README, license, packaging in order, organize stuff nicely,
      observe practices good repositories out there employ. This one could be
      just me, though, and I suppose it somewhat decreases for private repositories)
    * Built-in issue management (might be relevant even for personal projects)
    * Nicer GUI to view the repository structure

> If you don't yet want to publish, why do you need GitHub or Bitbucket? Why not just keep the repository local?

My two cents on this are that I always try to outsource any internal services to reduce maintenance time. For example

1. Own git repository will need backup and server configuration to be accessed from all machines that I own, which means I will need to spend time on security.

2. Own GitLab instance will mean 1 + system resources ( GitLab actually uses more than I would like to spare )

3. If I need to benefit hooks and pretty UI I would also need to do 1 + 2 + writing README files and integrate with different CI services.

What I figured out is that there are 1 and 2 outsourced and free ( bitbucket ), so I would not bother doing this on my own.

If you have a machine with SSH access and git, you can always use git+ssh as a cheap remoting solution... it works pretty well, but usability isn't quite as nice as with github/gitlab etc... If you're one person, it's probably good enough though.

Yeah I know I've used such a setup for a couple of years. I got a special SSH user "git" with key only login.

Later on I wanted to track what repositories I had on that machine and get some stats. I found out about GitLab so I decided to take a spin. Two months after the install I found out I was hacked, because of gitlab-shell binary that I didn't patch :(.

Then I decided not to mess with this if I can use it for free.


Anyway thanks for your comment. I think people that think GitHub is "magic" should run their own repo to see actually where "Git" ends and "Hub" starts.

It's easier and faster to use a service like BitBucket than it is to manage your own Git repositories manually.

As long as you are backing up your repo in some way, you don't. But these sites just make it easy.

Considering you have to use git to use github, isn't it always an extra step to use github for a private project?

There are lots of tools, like tortoisegit, that make that extra step a triviality.

Also ( including the private repos ) there is a similar tool to hub [1], that is created for bitbucket [2].

With the unlimited private repos my mind went crazy, now I version control my "/etc" and every shell script I create. I even don't open the bitbucket website that often. I do everything from the terminal.

1: https://github.com/github/hub 2: https://bitbucket.org/zhemao/bitbucket-cli

If you're working in a team the code review workflow is a bit better, because as a reviewer you can explicitly Approve a pull request. I've used it in a team where the requirement was to get two approvals before a pull request can be shipped. Having the number of approvals visible on the pull request list/overview screen is a tiny detail, but very useful.

At my current job we're using a "ship it" label on GitHub to track this, I really don't understand why GitHub still cannot track this in a native way.

It's a bit of offtopic, but I had worked in a similar setup but we were using phabricator for code reviews and it is hands down the best tool for code review that I have ever used.

GitLab B.V. CEO here, in GitLab we show the number of +1 and -1 at the top of the merge request for this reason.

Private buckets for non-free accounts, for starters

In addition to agreeing with the other comments, Github's uptime is also far better

I think Microsoft has a much better alternative to CodePlex in Visual Studio Online [1]. It doesn't feel quite the same as GitHub/Bitbucket/CodePlex because it's missing that online community feel. But it's relatively new and has been improving quite quickly [2] and it wouldn't surprise me if they started to coalesce CodePlex into VSO.

[1] http://www.visualstudio.com/en-us/products/what-is-visual-st...

[2] http://www.visualstudio.com/news/2014-dec-17-vso

I definitely like how CodePlex has dedicated tabs for documentation, as well as discussion and issues. It seems like every repo I come across on github is often just a dump of files with very little in the way of documentation. My guess is that because CodePlex makes documentation prominent, it incentivises its use while the opposite is true for github.

Github has its own issue-management, which I quite frankly find way better than anything Codeplex has, because of how it interacts and links with the source-control commits themselves. Github also supports per-project wikis, and if people aren't using them to write documentation on Github, they wouldn't be writing documentation on Codeplex either.

The reason you see more Github repos without documentation is because writing documentation is "boring" work, and mostly bigger organizations can afford the staff to write and maintain documentation.

And most codeplex repos were Microsoft's own, where they had an interest in keeping their stuff documented. On Github anyone can (and does!) open a repo.

So missing documentation has nothing to do with Github itself as much as the users and organizations it primarely attracts.

Yes, CodePlex has a documentation tab... but a lot of projects don't have anything there. I wish it would just hide the tab if there aren't any docs.

This post only mentions Roslyn, but the F# project will also be moved over. :)

I believe it has always been there: https://github.com/fsharp/fsharp

That's actually just a clone of the codeplex project. As mentioned in the README contributions first go (went?) through codeplex.

This is not quite accurate. fsharp/fsharp is the F# Open Edition repo, and has existed since long before the current (well, obsolete as of this week) Microsoft Visual F# repo on Codeplex.

The F# Open Edition repo targets Linux/Mac/Mono explicitly. Compared to the Visual F# repo, it's quite close, but has a handful of tweaks to account for mono/xplat, plus has a bunch of xplat packaging capabilities.

Before the VF# repo opened for business earlier this year, Open Edition was maintained based on the per-release F# code drops that constituted the old open source strategy for F#.

Anyways, Visual F# (i.e. owned by MSFT, targeting windows/VS) is now at https://github.com/microsoft/visualfsharp. There is even a [doc](https://github.com/Microsoft/visualfsharp/wiki/Code-Flow-to-...) explaining how the code flows to Open Edition from there.

Correct but this is purely for legacy reasons - all changes currently go through Microsoft's full intensive testing process/suite due to shipping with Visual Studio/F# being a product whereby you can involve the call centres/invoke enterprise incident resolution process etc. Don Syme did a presentation over at http://www.meetup.com/fsharpsydney/events/204864872/ last week which went into this in detail. This will all be changing with migration of development to GitHub first, codeplex will disappear in time as the language further continues on the path of seperation from Microsft - http://fsharp.org/

With Microsoft making moves like these for their open source projects, it seems like network effects are alive and well, and working for GitHub. Of course, it did require some change from above to get to the point where Microsoft is willing to open source this stuff in the first point.

Why isn't this on the front page itself?

Because it's from October 2008.

BitBucket for private stuff/stuff I don't want showcasing. GitHub for open-source.

Works perfectly fine for me and since they're both Git based there's no extra learning curves for either of them.

> BitBucket for private stuff/stuff I don't want showcasing. GitHub for open-source.

I use them in the same way, but I can't help but feeling that I am taking advantage of Bitbucket and not giving anything in return, regardless of being good guy Bitbucket.

If you like Bitbucket don't feel bad about using it. We like seeing real developers benefit from our efforts -- it's a refreshing break from playing cat and mouse with the bad actors trying to ruin it for everyone.

Thanks! I am a big fan of what you guys are doing... And I am sure I am not alone :)

I am just a bit jealous about the weather down there ;)

Get a monthly subscription. They limit you by number of team size, not number of repos.

I was thinking more like ditching github altogether and publish everything on Bitbutcket

Even better to keep the GitHub repo with only a README that links to Bitbucket.

Are there any major public repository hosting services that provide good organizational tools for multiple repositories?

GitHub, as far as I have been able to determine, only supports a flat list sorted by last update.

This is annoying when a developer has a lot of repositories. I'll come across something useful in one of my areas of interest from a given developer, and then want to look at their other repositories to see if they have anything else in that area of interest. In a sane design, all of their repositories in that area would be organized under a folder, and this would be easy.

BitBucket seems to have the same limitation.

Gitlab at least has groups of repositories, which provide some amount of namespacing. No idea if it supports nesting.

GitLab B.V. CEO here, GitLab indeed supports groups. This enables the folder structure you seek where you can find repo's that belong to the same functional group.

Atlassian Stash [1] allows one level of hierarchy: the top level is a list of projects, each containing multiple repositories.

It's more of an enterprise solution though, so BitBucket is probably more comparable.

1: https://www.atlassian.com/software/stash

I think the idea is that you should have grouped projects broken out into organizations?

One of the GitHub founders has talked about being offered a job at Microsoft out of college, and deciding to take the risk starting GitHub instead.

Must feel satisfying....

Edit: Ok, not straight out of college. No less satisfying though.

Not exactly straight out of college:

"I was still working full time at Powerset on July 1, 2008 when we learned that Powerset had just been acquired by Microsoft for around $100 million. This was interesting timing. With the acquisition, I was going to be faced with a choice sooner than I had anticipated. I could either sign on as a Microsoft employee or quit and go GitHub full time. At 29 years old..."


Except Tom got fired from github (well, forced resignation).

The one that was sexually harassing his employees?

Pretty cool!

Are all these happening because Satya Nadella is trying to steer MS in new direction?

Maybe? But I think its more just a natural evolution. Scott Hanselman has been making noise regarding open source for years [1].

I'm not saying Scott is responsible, just that many people have been suggesting it for a long long time.

I saw a job today asking for TFS skills. THAT is a dying product...

[1] http://www.hanselman.com/blog/ExampleHowToContributeAPatchTo...

You missed the part that TFS is much more than just source control and since TFS 2012 also supports Git.

You mean like. Application Lifecycle Management? ALM? Bug-tracking, release-management and stuff?

Which they now will be using Github for? Oh. That's definitely interesting.

HN does not give you clues to understand what's going on in the Enterperise market. So don't judge products based on what you see here. No one talks about SharePoint on HN, for example, but it's really something for the Enterprise.

Just like TFS, and I have seen many Java teams moving in, ditching various expensive products from IBM, HP etc. Team sizes or focus in HN might be different so TFS might be seen as dying, but it's not the case in the field.

Since most of my work experience is from working at big corps or consultancies, I'm definitely aware of this.

Microsoft has a heap of products and platforms not once mentioned on HN, but which are humongous in the organizations which decides to adapt them: Sharepoint, BizTalk, etc.

But TFS has always been "the" corner-stone for optimal development in the Microsoft-world, when developing according to Microsoft agile/solutions-framework (MSF, etc).

When Microsoft's own SDK teams dismiss their own development tools and platforms like TFS and Codeplex for competing platforms, like Git & Github, it definitely sends out mixed signals.

Anyway you see it, Linus Thorvalds must be pretty happy now. Not only are Microsoft providing tools and source to the Linux-world, they are now also using his tools to develop their own platform.

How things have changed, eh?

It's a natural evolution from long standing internal pressures. There has always been a strong contingent of folks within Microsoft who have espoused the "hacker" ethos more or less. Folks who cared as much about building cool things and pushing the state of the art as for making a dollar. Folks who pushed for open standards and cooperative rather than coercive interactions with other companies, customers, the dev community, etc.

For a while those forces have struggled to have their voices heard but now they have a bit more cohesion and momentum on their side so you're seeing more of these things.

I don't know the inner working, but why couldn't they modify codeplex for their need? Why embrace github? or git?

To me, it doesn't feel like a natural evolution at all, in fact it feels more like a sign that MS is embracing the open source community. So they can focus their energy on what's important, developing their software and maintaining good connection with the developer community.

"... it feels more like a sign that MS is embracing the open source community. So they can focus their energy on what's important, developing their software and maintaining good connection with the developer community."

Yes, precisely. I'm not sure how you didn't get that out of what I said, but that's what was meant.

Microsoft has being doing good decisions lately. They are becoming more open, also integrating more with industry leaders. Another good strategic decision they made was the partnership with Dropbox (https://blog.dropbox.com/2014/11/dropbox-microsoft-office-pa...) not mattering if they already have a similar service (OneDrive).

To me, these are signals of a good administration. This company is changing to keep growing, and I believe it is working. It's not the same Microsoft we knew a decade ago.

Call me cynical, but the first thing that springs to mind with these kind of opening up is the sign of a company no longer with the bullying power to not care about being open. Rather than these changes occurring because a hierarchy of managers had a change of heart (look guys, they learned that open source is good!), a market share drop from 97% to 20% makes you humbled and reconsider your strategy, and products that don't yield returns are just sitting there and might as well be open sourced because it fosters good will in your company. IBM had to do it. Microsoft are doing it. Apple won't be doing it now that they're the big boys in town. Compare their Swift language which will remain proprietary for as long as Apple can get away with it, just as Microsoft has always done.


This avalanche of pro-community news out of MS since Nadella took over is about MS rebranding itself, particularly with younger people who (incorrectly or otherwise) believe that MS technologies are "greying". They can no longer take their market dominance for granted. I think it's probably too late and doubt whether they can change the perception of MS as an overall closed ecosystem.

Totally agreed! My comment was about the decisions they made lately due to the power they are losing last years. It's better late than never.

I definitely hope they will blog more about the migration and source-code conversion and how they did it, much like ESR blogged about the Emacs BZR to Git conversion[1].

It would probably be very interesting for customers thinking about migrating from TFS to Git themselves.

[1] http://esr.ibiblio.org/?p=5634

Perhaps Microsoft wants to divest out of the git+online tools space? Github is the incumbent that they did not crack how to beat and it will be a bit more crowded with Amazon who seems to be also coming this year with CodeCommit. So far, Amazon strategy has been to suck all air from the room.

Absolutely not. We are very committed to the git space, both on the client side (Visual Studio) and the server side (Visual Studio Online and Team Foundation Server). We're continuing to invest - in fact, we're hiring for git developer positions. (Send me a message if you're interested!)

This is about open source hosting which, to be quite honest, GitHub does better, and is where users expect our open source to be.

That's interesting!!! So what's Microsoft's next step? Aquire Github?

Makes sense to me. I've not met anyone who doesn't think Visual Studio is solid software, and received numerous recommendations that an IDE is definitely something worth paying for. MS looking to be developer friendly can only be good for them.

What were they previously using before the switch to git? Mercurial?

The teams that still use centralized version control, such as Windows and Office, are either using Team Foundation Version Control (TFVC) or Source Depot (an internal tool that was built using a source code license of Perforce).

The developer division (DevDiv) currently mostly uses TFVC. For the open source projects this doesn't make a lot of sense though, which is why most these are moving to git.

Of course, we're a big company so you'll also find Mercurial and SVN, especially in MSR. I really hope that you don't find SourceSafe anymore though :-)

git != Github.

Github just hosts git repositories. You can use git and not host on Github.

They were using git, but hosting the repository on CodePlex.

>We are moving our code to GitHub as well as switching to use git internally

But they were using a different tool internally.

Probably TFS, which Microsoft use quite a bit internally [1].

[1] http://blogs.msdn.com/b/visualstudioalm/archive/2013/08/20/t...

> Probably TFS, which Microsoft use quite a bit internally

But seemingly less and less so, especially in the SDK-teams. Which is definitely interesting.

If Microsoft's own SDK-developers don't want to use Microsoft's own source-control and ALM-system, but rather prefers Github, what signals does that send? I would sayed mixed at best.

Well, we use GitHub to host our git repositories for open source and public projects. We use TFS to host our git repositories that are private and closed source.

GitHub does a great job hosting open source projects. TFS doesn't. I don't think this is a mixed message, we're using the right git hosting service for the job.

it's an open secret that TFS sucks ass. I dont think anything is going to change that attitude - they might as well use something better, and hence the move.

Not much of a secret. There was open revolt when we were forced to switch in MSN.

It isn't all bad, just a bit painful to administrate... that said, iirc quite a few devs at MS started using git for local versioning long before TFS added support for git.

They were not using git. It clearly says in the text that they are switching to git internally, as well.

Oh, you're right. I saw git files in their repository and assumed they were already using git: https://roslyn.codeplex.com

Microsoft embracing open source and open culture without having a clear path forward ensuring business. This reminds me of Sun a lot. That didn't end up well.

sun's business model was..eerr, sparc workstations? microsoft's business model is windows and enterprise sales, with a hint of consumer sales and electronics. Microsoft has so much cash it could buy a small country.

Sun's business model was enterprise software (openDS, SunOne, java, Solaris) which was still pretty big, and hardware, which they were very good at. They also had a cloud, and I'm sure lots of other things.

And I'm sure when things started going wrong SUN had plenty of money too. Money buys you time. It doesn't buy you survival.

Always fun to see Microsoft moving to free software.

Can someone please change the title to

.NET Compiler Platform ("Roslyn") is moving to GitHub

The current one makes it seem that MSDN is moving to GitHub (wouldn't that be a sight? :-)

Would probably be easier to search at least.

Finally, you are moving it into GitHub that wil surely give yo more users for the Roslyn code


Except hey can't possibly "Extend" a SaaS product on their own.

I don't think you understand how this methodology works.

I had to double take and check if it was April 1st already.

>as well as switching to use git internally


"We’ll be using GitHub Issues for both discussions and bugs after the switch"

Hilarious! Did someone call GitHub "social"?

Not sure I understand? I would say that GitHub is quite social. It's pretty much the Facebook of code hosting.

No way to hold discussions though. How social is that? How do I ask a question (which is not a bug or a feature request)? Go to some completely different site?

In general, I'd say file a bug asking for further documentation. Github supports wikis for documenting projects, which works well enough for this. For a lot of smaller projects/tools a good README.md is enough though.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact