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

[SUGGESTION] Do not encumber amazing open source software stack with restrictive license terms of C# Dev Kit #403

Closed
PyrateAkananto opened this issue Aug 17, 2023 · 6 comments
Assignees
Labels
area-other Larger bucket for 'other' functional areas triaged The issue has been triaged

Comments

@PyrateAkananto
Copy link

PyrateAkananto commented Aug 17, 2023

Describe the feature you'd like

The Backstory

Unity provided a Visual Studio Code (open source) extension for Unity development (link). Unfortunately it is deprecated.

The Good

Microsoft now provides (the preview of) a new Visual Studio Code (closed source?) extension for Unity development (news, link).

The Requirements

This new extension requires Microsoft's Visual Studio Code (open source) extension for C# development (link) which itself requires (since a couple of weeks) Microsoft's Visual Studio Code (closed source?) extension named "C# Dev Kit" (link).

The Ugly

The new "Unity" extension has is own, individual license terms.

The new "C# Dev Kit" extension has its own, individual license terms.

If you are an individual, academia or small company you can use them free of charge. But if you work for a large company (called "enterprise" and defined by 250+ PCs or $1.000.000+ anual revenues) and want to use the new "Unity" or "C# Dev Kit" extension you need (and now brace for it) a Visual Studio license. Yes, the big, expensive, closed source, non-Code Visual Studio.

The Conclusion

If I understand this correctly I think it is comically stupid (having to pay for Visual Studio while preferring using Visual Studio Code explicitly because it is smaller, faster and cheaper than Visual Studio).

The Wish

Do not encumber an amazing, free of charge, open source, simple license terms software stack with a single pieces of software which have complicated license terms and a big price tag for professional developers.

Alternatives considered

Currently I am still using Unity's deprecated extension and an old version of Microsofts extension for C# which does not yet require C# Dev Kit (but is based on OmniSharp instead). I am forced to continue to do so while the new extensions have those for me unacceptable license terms.

Environment Information

Windows 10
Visual Studio Code 1.81.0
extension: Debugger for Unity v3.0.2 (deprecated)
extension: C# v1.26.0 (old version, based on OmniSharp, not C# Dev Kit)
Unity

@PyrateAkananto PyrateAkananto added the enhancement New feature or request label Aug 17, 2023
@microsoft-issue-labeler microsoft-issue-labeler bot added the area-project Project load, Solution Explorer label Aug 17, 2023
@sailro sailro added area-other Larger bucket for 'other' functional areas and removed enhancement New feature or request area-project Project load, Solution Explorer labels Aug 17, 2023
@PyrateAkananto
Copy link
Author

P.S. to add insult to the injury: In Visual Studio Code the default setting is to automatically update all extensions. The update of the "C#" extension from 1.26.0 to 2.0.32 included the addition of the "C# Dev Kit" extension. For "enterprise" users this silently installed them a piece of software which comes with licensing terms those user will probably violate. 😬 Probably unknowingly. 😱

@timheuer
Copy link
Member

The update of the "C#" extension from 1.26.0 to 2.0.32 included the addition of the "C# Dev Kit" extension

@PyrateAkananto this is not the case and should not have happened. If you only have the C# extension, you are not auto-updated to anything else. We have not seen this happen and there is no relationship in that direction. You can see the dependencies delcared there (https://github.com/dotnet/vscode-csharp/blob/main/package.json#L75) -- the runtime is the only thing and that exists to aid in acquisition of necessary runtime files. If you have a repeatable scenario where the update to v2 also installed the Dev Kit, please log a bug and more details -- that 100% should not be happening.

@timheuer timheuer self-assigned this Aug 17, 2023
@PyrateAkananto
Copy link
Author

@timheuer Thank you for your answer and the provided details, I really appreciate that.

I have not yet updated the "C#" extension myself after several of my colleagues started complaining "it's not working anymore", after searching for the reasons and especially after reading into the license terms (which I would violate by accidentally installing "C# Dev Kit").

According to you "C# Dev Kit" is no dependency of "C#". The website of the later one says:

A Visual Studio Code extension that provides rich language support for C# and is shipped along with C# Dev Kit.

In my opinion (as a non-native English speaker) this sentence is misleading. Before your comment I did not understand that "C#" can still be used without "C# Dev Kit". I suggest to change the website into something like this:

A Visual Studio Code extension that provides rich language support for C#. Even more language support is provided by the C# Dev Kit extension which can be installed additionally.

Is there a way to see the "package.json" file of "C# Dev Kit" before installing "C# Dev Kit"? It seems to be a closed source extension.

In summary I still see the following problems:

  1. The website of the "C#" extension is misleading (see above). If you want I can create a separate GitHub issue just for that.
  2. The update of the "C#" extension from 1.26.0 to 2.0.302 didn't go well (technical problems). As far as I know there already are plenty GitHub issues for that.
  3. Both the "C# Dev Kit" and "Unity" extensions have license terms I am highly dissatisfied with because they bring complicated license terms and big price tags for professional developers into an amazing open source software ecosystem with refreshingly simple license terms and no price tags. Are the issues here in this GitHub repository the right place to raise those concerns?

@timheuer
Copy link
Member

I suggest to change the website into something like this:

Thanks for the perspective here! I've submitted a request to clarify the language. Tracked: dotnet/vscode-csharp#6171

  1. Done, thanks again for your position in how you read it!
  2. I should write a long blog post here, but yes, understandably and we're really working hard to rapidly release updates to fix some known OmniSharp gaps, but also some unexpected aspects of how folks were using it previously. This week we released a bunch of fixes. We had some unexpected breaks with some SDK aspects and our attempt to make SDK acquisition simpler for MOST surely needed improvement which we've also done.
  3. I'm not sure I'll convince you anything on this one, and I understand your positioning. In the .NET ecosystem many tools are commercially available whether that be Visual Studio family, JetBrains Rider, extensions with other text-based editors, etc. In VS we have the Community + Pro licensing mechanisms that you noted already. Similarly while Rider doesn't have a version of this, they do have programs for OSS/EDU that are available. The base C# language extension started as an OSS project and we're keeping that pattern, providing that core language support in that space. Other extensions provide additive value to different sets of developers on top of that and as we share some of those capabilities with our own products, we're distributing under the similar terms how we do today. We will continue to deliver more value into Visual Studio and our VS Code extensions across the board. I think the license terms are easy to understand as you've laid them out correctly: permissive for most, and if you are a larger enterprise then you will need a commercial license in the way we license products now (subscriptions).

This is the right issue/repo to have this discussion, however, just setting expectations that the licensing for Dev Kit and the family of extensions that leverage it is aligned to our Community/Pro terms (quick side note: they all share the same license terminology despite different links, but terms are the same).

I appreciate the dialogue and helping us clarify how we communicate. It's likely we won't be in agreement on some of your positions, but I appreciate the conversation and civility. Feel free to always ping me individually as well -- I'm not hard to find ;-)

@timheuer timheuer added the triaged The issue has been triaged label Aug 18, 2023
@timheuer
Copy link
Member

Is there a way to see the "package.json" file of "C# Dev Kit" before installing "C# Dev Kit"? It seems to be a closed source extension.

Btw, I realized I didn't answer this. The package.json portion of dependencies of other extensions is only two -- which are also visible on the marketplace within VS (unfortunately not on the website).

image

We declare 2 dependencies:

  • .NET Tool for Extension Authors (which exists to aid in acquiring the right runtime/SDKs needed)
  • C# base language extension

Those are the only two extension dependencies we have in C# Dev Kit.

@PyrateAkananto
Copy link
Author

  1. Dependencies: Thank you for the explanation. I usually look at the Marketplace website instead of the Marketplace inside Visual Studio Code.
  2. Thank you for creating an issue. I created another one myself with another request: Clarify use of C# extension without C# Dev Kit dotnet/vscode-csharp#6201
  3. I wish you all the best to get the technical issues fixed soon.
  4. I assume we both understand each others position. I know that you want earn money by providing tools and services. I really appreciate that Visual Studio Code and the C# extension are open source and free of charge. Nevertheless please understand that I am both an "enterprise" customer and a Visual Studio Code user and the restrictive license terms for C# Dev Kit extension and the Unity extension make my professional life either harder or more expensive. I am some kind of "evangelist" in my company trying to encourage and support colleagues to make games with Unity and C#. Unity licensing already is expensive and complicated and in contrast it was so obvious and simple to recommend Visual Studio Code as IDE for Unity development (fast, open source, free). Those new licensing terms force me to rethink absolutely everything about using and recommending IDEs. Please try to understand that despite trying to be very polite here I am raging emotionally because of that.

I am closing this issue now because either there were new issues created or there was everything said about different opinions about licensing.

Once again thank you @timheuer for providing a lot more explanations and support than I expected.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-other Larger bucket for 'other' functional areas triaged The issue has been triaged
Projects
None yet
Development

No branches or pull requests

3 participants