Microsoft doing shitty/shady things is nothing new, especially here, but seeing as they've recently started advocating for open-source, this seems like quite a step backwards.
Some background first. Microsoft has been working on an open-source Python type checker called pyright for some time now. The first public commit dates back to 2019-03-11. It seems quite promising, though I haven't tried it myself yet, with them advertising "speed" as its main characteristic. All fine and good so far.
Then, in October of this year, they released PyLance, a VS code extension that serves as a language server for Python and uses pyright for type checking. PyLance is not open-source, which I don't like, but is mostly fine.
My problem with it though, is that you cannot install the extension in any unofficial build of VS code. Searching for it on the extension panel in the editor yields no results and when manually installing the extension by downloading the vsix file, it won't enable and prints the following:
[2020-10-19 20:40:37.755] [exthost] [error] Activating extension ms-python.vscode-pylance failed due to an error: [2020-10-19 20:40:37.756] [exthost] [error] Error: You may only use the Pylance extension with Visual Studio Code, Visual Studio or Xamarin Studio software to help you develop and test your applications. The software is licensed, not sold. This agreement only gives you some rights to use the software. Microsoft reserves all other rights You may not work around any technical limitations in the software; reverse engineer, decompile or disassemble the software remove, minimize, block or modify any notices of Microsoft or its suppliers in the software share, publish, rent, or lease the software, or provide the software as a stand-alone hosted as solution for others to use.
A developer responded with:
Pylance is not licensed for use in unofficial builds; that message is expected when using
codefrom the Arch repos as it is not really "VS Code". The alternative for Arch is building
visual-studio-code-binfrom the AUR, which pulls an official build.
IMO, this is bullcrap. Giving the users an open-source editor, but restricting your own extensions to only work on the proprietary builds of that editor (which are know to include telemetry and who knows what else) is very not Free.
I don't like what Microsoft is doing here. Creating an open-source tool, giving it out for free and promoting themselves as open-source supporters, but then pulling off shit like this and locking users right back into their proprietary crap.
I do believe that there are people at Microsoft who really do support the FOSS movement, but as a corporate entity, they are very, very far from that.
I have a glimmer of hope that with Guido moving to Microsoft we'll see at least some improvements, but after decades of EEE, I highly doubt it.
Okay, I some people agree, some don't. I expected this, but I also realized that I should have clarified some things. Here's an answer to a comment that I posted below:
I guess it boils down to the fact that they don't sell their changes. They provide the source, but distribute the software as a modified binary that implements no new features, except telemetry (which goes who know how deep) and a way to allow their extensions to determine whether it's a Microsoft build or not. The fact that it's still free (as in beer) and offers no additional user facing features, while locking you down is something that I haven't seen any other vendor do.
There are two models that most companies follow:
Open-Core and paid for additional features (GitLab, CrossOver, etc.) "Community edition" that gives you all the features as long as it's not for commercial purposes.
The first one allows you to test out the product or use it personally, yet be able to pay (which is completely valid IMO if the service/software is worth the money for you) for additional stuff.
The second one is more in the free spirit. Not restricting the open-source community to use your software as long as what they do is open-source or non-profit in some other way (GitHub is a good example for this), while still requiring you to pay if you make money off of it.
You effectively pay for VS Code with data. They maybe don't sell it, but it definitely is worth something to them, otherwise they wouldn't be limiting their open-source builds. It just feels wrong to have them restrict it for no apparent reason or motive, or at least not disclose it plainly.
I'd always rather give money than data.