Closed Gnbrkm41 closed 4 years ago
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.
@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.
I would suggest starting somewhere on https://developercommunity.visualstudio.com/
@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
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 (https://github.com/dotnet/core/issues/505 - has 174 thumb ups!, https://github.com/dotnet/core/issues/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 https://github.com/dotdevelop/dotdevelop/issues/19, https://github.com/mono/monodevelop/issues/8286, https://github.com/OmniSharp/omnisharp-emacs/issues/407, https://github.com/VSCodium/vscodium/issues/82, https://github.com/0xd4d/dnSpy/issues/1012, https://github.com/OmniSharp/omnisharp-vim/issues/96, https://github.com/dotnet/core/issues/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