Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Consider open sourcing / reducing restrictions for more components used in .NET ecosystem to encourage more people to join us #31

Closed
Gnbrkm41 opened this issue Aug 5, 2020 · 4 comments

Comments

@Gnbrkm41
Copy link

Gnbrkm41 commented Aug 5, 2020

Background

I've received a question about .NET in the (unofficial) C# Discord Community, about the existence of "Fully FOSS IDE system for Linux". I would have totally said Visual Studio Code with the C# extension is an option, but they had concerns that the extension itself is licensed with Microsoft's Software License terms, that there are telemetries that cannot be opted out (The software may collect information about you and your use of the software, and send that to Microsoft... You may opt-out of many of these scenarios, but not all, as described in the product documentation.) and it appears that certain components, such as the debugger, is not open sourced at all.

Some other folks also noticed that the debugger isn't actually open sourced (dotnet/core#505 - has 174 thumb ups!, dotnet/core#4788), is not available publicly and it's impossible to legally use the debugger in programs other than Visual Studio, Visual Studio for Mac and Visual Studio Code (INSTALLATION AND USE RIGHTS. You may only use the .NET Core Debugger Components with Visual Studio Code, Visual Studio or Xamarin Studio software to help you develop and test your applications.). This means that those who use other editors, such as Vim, Emacs or MonoDevelop do not have access to a proper debugger for that reason, and the lack of choice is certainly not a great thing.

There are multiple people that seem to be affected by this. Just looking at the list of issues referencing those two issues, there's dotdevelop/dotdevelop#19, mono/monodevelop#8286, OmniSharp/omnisharp-emacs#407, VSCodium/vscodium#82, https://github.com/0xd4d/dnSpy/issues/1012, OmniSharp/omnisharp-vim#96, dotnet/core#512, and I'm sure there's more that's affected by this particular issue. Even some the .NET Foundation corporate members, such as Samsung, JetBrains and Red Hat, had this issue; JetBrains had this issue with their IDE products, Samsung wrote their own debugger and Red Hat extended the Samsung's work to make a debugger plugin for Eclipse Theia IDE.

Suggestion

I wouldn't be surprised if these are the only components that's not quite open sourced, or have certain restrictions. I believe that we should identify those components in .NET and try to eliminate those problems. This would greatly benefit both the .NET ecosystem and the users.

The first reason I believe so is, that, in my opinion, having to duplicate a component when there is already one, is a complete waste of work. I've been seeing that while Samsung's debugger is an option, it is not as good as the original .NET debugger and lacks certain features. It appears that the project isn't quite well known and they do not have enough contributors that work on the project. Had we open sourced those components earlier, then those works that have gone into the new alternative could have been put into improving the existing one that's already very good and is greatly polished. Open sourcing the existing component allows all of us to work on one unified product to make it even greater, and gives people time to work on other valuable things such as new features and bug fixes. It also will allow us, non-Microsoft employees, to dive deeper into the internals and, hopefully, contribute trivial or perhaps non-trivial feature / bug fixes, which, again, would allow more work to be done. I, for one, would love to contribute to the project!

Another reason is that, this change would encourage a certain group of people that believe in the open source software movement and the free software movement (I've been noticing that it's not hard to find those that believe in this idea amongst Linux users) to adopt .NET as a true open source, cross platform framework that's capable of everything. One major reason those group of people avoid .NET is because of the whole history of .NET being exclusively owned by Microsoft in the past, being "the evil mega tech corp"; Having less restrictions and getting rid of those perceptions is always a good thing and we should work towards to reduce those to get more of those people into our ecosystem.

Achieving this would help us achieve what is outlined in the "Why create the .NET Foundation?" section of FAQ and the visions of the greater .NET brand as a whole.

I understand that this is not an easy task, and I completely understand that that folks at Microsoft may have valid reasons to not open source things / put restrictive terms on softwares (e.g. patents / trade secrets). Still, it would be great if we could recognise the importance of opening those projects up and working towards improving the current situation.

TL;DR

  1. There exists some projects that aren't open sourced / have restrictive terms (e.g. .NET Core Debugger)
  2. Certain people don't like it / it's a waste of time having to work on a duplicate project because of it
  3. We should get rid of those restrictions to get more people into .NET and get more works done
@Gnbrkm41 Gnbrkm41 changed the title Consider open sourcing / reducing restrictions for more components used in .NET Ecosystem Consider open sourcing / reducing restrictions for more components used in .NET Ecosystem to encourage more people to join us Aug 5, 2020
@Gnbrkm41 Gnbrkm41 changed the title Consider open sourcing / reducing restrictions for more components used in .NET Ecosystem to encourage more people to join us Consider open sourcing / reducing restrictions for more components used in .NET ecosystem to encourage more people to join us Aug 5, 2020
@clairernovotny
Copy link
Member

Hi @Gnbrkm41. I appreciate the enthusiasm here, but the outreach team is not the forum for this discussion. The debugger is a Microsoft property and you'd need to raise the issue with them.

@Gnbrkm41
Copy link
Author

@clairernovotny - Thanks for the reply, appreciate it 😃 Could you perhaps point me to any specific places / teams I could suggest this to? I failed to find any so this was my best attempt in hopes that someone from the foundation could perhaps direct my suggestion to folks at MS.

@clairernovotny
Copy link
Member

I would suggest starting somewhere on https://developercommunity.visualstudio.com/

@ishepherd
Copy link

@Gnbrkm41 are you familiar with the open .net 6 plans at https://themesof.net?

If you find the theme/epic this most aligns with... whoever owns that theme/epic would be the right person to persuade

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants