Hi, .NET Foundation Executive Director here, happy to answer any questions. Also, check out Miguel de Icaza's post here for details and background: https://tirania.org/blog/archive/2018/Dec-04.html
Can you point me (regular joe c# programmer) to some resources that show how to contribute to .NET and start the path to membership? I'm guessing the simple answer is "go to github, check out the latest branch of aspnetcore, start fixing bugs in the Issues list and pray to god someone accepts your PR" but somehow I imagine the barrier to entry is a bit higher than that. Thanks!
Great question! I'll get a blog post out with a more detailed answer, but some quick tips for getting started:
1. Start with conversation - it's much better to start with a new issue or a comment on an existing issue, letting the repo owners know that you're interested and want to contribute to a specific issue. They may give you tips, let you know that the issue's already being worked, etc.
2. Docs are a great way to get started. You can go to any of the .NET Core / ASP.NET Core docs on docs.microsoft.com (e.g. https://docs.microsoft.com/en-us/aspnet/core/), click the edit button, make your corrections or contributions in the browser, and submit.
3. Many projects use the up-for-grabs label for issues that are easy for first time contributors, e.g. https://github.com/aspnet/AspNetCore/labels/up-for-grabs (again, start with a comment on these, since some of them are a little old and may no longer be relevant)
4. Don't just think about the big name .NET projects. Membership is open to contributors to any .NET Foundation project, including a lot of projects with small teams that would love some help. Check out the full list here (https://dotnetfoundation.org/projects), or tweet me with hashtag #dotnethelpwanted and I'll rt to help get you matched up.
I just want to point out that you will not need to pray to God to get a PR accepted in a Microsoft repo if their docs team is any indication. They are nearly aggressively professional at handling GitHub issues. Minor mentions of confusions I've had on docs.microsoft.com were zealously assigned, pursued, and fixed, and the PRs I submitted to the code samples there were approved within a day or two.
I've had the same experience with docs, but the polar opposite with .NET Core FX and ASP.NET Core - seems any new features need to be discussed by committee, and can take several months or even years before they will then say "OK, send a PR", even for features that there is demand for.
Even for bugfixes, I've been really dissapointed in their responses - they call any change in behaviour a 'regression', and won't accept fixes, even if the behaviour they want to preserve only exists as a side effect of the bug, and nobody could possibly want in any case!
I write this as a .NET fanboi, but my negative experience of trying to contribute to Microsoft's OSS projects has been left me dissolutioned.
Versus the whole "we don't want telemetry on by default" argument which the response was "fuck off" then they shipped packages for Debian that the "disable the telemetry" environment variable didn't work on...
I've had the opposite experience about a year ago with their Node.js PowerBI repo. Although, they deprecated that SDK within a few months after, so it's possible it was more of a resource issue.
What changes from a .NET user perspective do you most anticipate from this? Do you think this may help push .NET users like Unity further towards FOSS in some ways?
That's hard - I've got a lot of big expectations here. If I have to summarize, I'm anticipating that this will make it clear to everyone that .NET is bigger than Microsoft, and the whole open source community is empowered to get things done without waiting for Microsoft to do it or give permission.
.NET Foundation is an independent organization, with Microsoft as an important member and big contributor, but .NET is owned by the community. I've heard a lot of great ideas for how the .NET Foundation could support projects better, do more for our Meetups (including providing content, support speakers with things like speaker grants, etc.), put on in person events, etc. - but we haven't had a good way for people to make it happen, and the foundation could only do so much. Now, by letting the community guide the foundation through community board seats and bringing on corporate sponsors, we really can scale up so that if someone has a great idea, they can just do it!
Pretty cool! Considering the moves being made by Oracle, it would be awesome if we get a super high quality, high speed, true FOSS platform from Microsoft, originally, of all places :))
The problem with .NET Core compared to Java is that it's still less portable at the moment - it doesn't work on any of the BSDs, for example. Someone's working on it, though.
As recently as 10 years ago you could only run Java on BSDs through the Linux compatibility layer. And Java's been around as a cross platform project since 1996.
I love how the term FUD is used, purely ironically after the decade of shit MSFT gave everyone else. It's only fair to treat them with suspicion. The reason for this is even if the current MSFT objectives are good then what is to say that the next set of objectives are? People who don't treat them with suspicion have no expertise dealing with corporate whim over the years.
Well, they've just made the thing Open Source, made an independent foundation which they're opening up to other organizations (just like the FSF, the Python Foundation, etc.). The code is under the MIT license. I think they've also made a patent pledge.
If they change their minds now, future .NET versions can be made proprietary again. But what's out is out. Can't be put back into the box.
And you also called "Java" an "alligator", which I don't think was a compliment. Java has been a very solid platform for about 22 years. If it would have been a kid, now it would be in college. On top of that it's been Open Source for more than a few years. I don't like/trust Oracle, but just like for .NET, if you don't like them, you can fork.
I was calling oracle and microsoft the alligator and crocodile for reference. The technology is good on both sides.
The steer and the intention is dubious however. I have also used Java extensively, back when it popped up on Solaris for ref. The difficulty is that the platform will always have priority development on the business interests of the hour and that overlaps with saleable things. Microsoft are only doing this "for free" because they are still objectively making a shit ton of money out of subscription services (Azure / O365) and they know the rest of the market is dead. So this is now a gateway to using those services effectively. It's a clever bit of planning and I respect them for that. But at the same time I've been burned so many times now with random direction changes and deprecations that I can't put my trust in it or logically risk building a new product on their platform.
You can't fork them realistically. That's not possible. Well you can but there will be no traction unless you take the entire community with you.
If they get too shady, especially Oracle, the Java community is way bigger than Oracle itself. I'm pretty sure that a Java fork would be successful, if push comes to shove.
The .NET community is much smaller so at this point it wouldn't work. But the way they are going, in a few years it should be doable.
You obviously won't be able to fork as a solo contributor, but if it's that bad, you won't go at it alone.
I thought it was because Microsoft is licensing[0] most of .Net under MIT and Apache License 2.0 with a broad patent grant that would make what Oracle did to Google (vis-à-vis Java in Android[1]) impossible.
Paid members that can vote and elect the board is a very good model for online communities in general. If it was adopted by Facebook or Google+ we could've seen entirely different plot of story than what we have now.
Why not move .net to Linux Foundation in a similar deal to Node.js?
I think .NET is really interesting technology but let's be honest most innovation happen over JVM. Moving to Linux Foundation would create a lot of trust for people who are not fond of Microsoft.
Well that's true. But, I am talking about interesting projects like Apache Kafka, Spark or many other Big Data tools. Also many languages born in JVM like Clojure, Kotlin or Scala. None of them came from oracle but in .NET all the successful languages came from Microsoft. Mostly happens because many people don't like Microsoft. That's why you don't see lots of startups using .NET
All the successful .NET languages come from Microsoft because they have some of the best language designers and create some of the best languages. There is no need for something like Kotlin on .NET because C# is already far ahead of Java and F# is a great language.
1. People trying to make programming in the java ecosystem less painful. (Java-the-language was stagnant for so long that this was the main way improvements could be made).
2. People who wanted to design a language, but not need to create a complete runtime, need to make the runtime cross platform, and need to encourage a large library ecosystem. (They could just leverage the existing java libraries.
The first reason was never super applicable to .Net. The second would have been applicable in the past except for "cross-platform". So .net never saw the huge nnumber of languages. With .NET Core I suspect we will see more reason #2 languages.
Microsoft's "new" (kind of old at this point, but hey) direction trends towards what I'd ideally want out of a larger enterprise that works with development. In a lot of ways, what I felt Google was ages ago.