Microsoft Refuses to Open Source VSCode Python Language Server
github.com
github.com
The language server _is_ open source, and is available here: https://github.com/microsoft/python-language-server. This is the default one VSCode ships with.
This issue is filed on Pylance, a new (released June 2020) language server that's currently still in beta (announcement: https://devblogs.microsoft.com/python/announcing-pylance-fas...).
Also, like the contributor notes, a lot of the "secret sauce" in Pylance is part of the open source Pyright typechecker: https://github.com/microsoft/pyright.
> Our long-term plan is to transition our Microsoft Python Language Server users over to Pylance and eventually deprecate and remove the old language server as a supported option.
Nor is it obligated to open source it's new language server, which it clearly sees as filled with secret sauce, being best in class and providing a significant competitive advantage that it doesn't want to give away for free to all of it's competitors.
If I was them, I wouldn't open source it.
They are misleading their users.
You can choose to avoid them, to publish against them, to influence others, to fork it, etc. That is your freedom.
Why are we even talking about this ? Nobody owes you anything and vice-versa.
The have the right to be two-faced about their open source policy, I have the right to speak about how I think it's bad to do so.
Politicians and cops have right to do a lot of things too. Just because it's your right, doesn't mean we have to agree with it and not talk about it.
https://en.m.wikipedia.org/wiki/Halloween_documents
"Microsoft has since acknowledged the documents' authenticity.[2]"
Microsoft is a profit driven business, it never committed to open-sourcing every piece of software it writes, of course they're trying to somehow make money with VSCode, because it costs money to develop it.
If you don't like it choose another one of the billion text editors and IDEs that exist or write a competitive language server, but nobody 'lured you in' or is extinguishing anyone.
There's likely more complex licensing restrictions on some of their products. They even allude to this in their answer.
This is hypocritical behavior, and it does remind people of EE&E which was Microsoft’s explicit policy in the past. It’s not an exact repeat, but it does seem to rhyme.
How can they prevent my, let’s say vim, client from connecting to a closed-source server if they both speak the same protocol?
This isn't exactly unheard of when it comes to Microsoft. I mean, you don't have to go far to find an example of them doing exactly that -- there's prime example [0] right here in this thread!
(Alsa known as "extend"; see also "Active Directory")
--
Their marketing or their disciples don't really spell it out when recommending it for obvious reasons.
See issue: https://github.com/microsoft/vscode-remote-release/issues/17...
"And the remote server actively prevents OSS versions from connecting. Even if you enable the proposed apis needed, you will get an "Unauthorized client" error message."
I know that I wouldn't consider any new editor without one, as I almost always develop on a remote box.
This uses SSH and SCP to automatically deploy the code to the remote environment and run it with the interpreter on that machine, rather than your own local laptop/desktop. One advantage is that it does not require any special software to be installed on the remote server. VS Code's solution requires a pretty hefty installation consisting of basically an entire copy of VSCode onto the remote server.
The downside of JetBrain's approach... I believe that it requires a local copy of the files in order to perform the "LSP"-like syntax error highlighting / suggestion functionality that JetBrains software is so lauded for. This could be difficult/inconvenient if your codebase is particularly enormous, or if you aren't allowed to mirror it locally.
However, given the amount of support that JetBrains has for this kind of setup, I wouldn't be shocked to see an additional future option for something more in the style of "VS Code Remote Development"
0: https://www.jetbrains.com/help/pycharm/configuring-remote-in...
Not all of them:
1. https://github.com/JetBrains/intellij-community
2. https://github.com/JetBrains/intellij-plugins
3. https://www.jetbrains.com/pycharm/download/ (see how the Community Edition is Open Source)
Actually, in this specific case, it really hurts, because Microsoft had been the one pushing for LSP to enable reusability and interoperability. You can’t take M*N to M+N if every editor refuses to let their implementation be used by anyone else. Honestly, Microsoft, what are you getting from taking a bunch of open source code and making the good bits proprietary, and then sabotaging your own messaging around standards that you want adopted? Because I can’t see any reason why you have to do this :/
How so? language server is a standard.
But if MS wants to create a VS Code specific language server, just because they are using LSP doesn’t mean they should be required to support it on other IDEs as well.
anyone can implement an LSP server and the IDE (or editor) will understand it because the protocol is an open standars, it doesnt't mean that the implementation should be open or support any combination of HW/SW platform
there is plenty of proprietary software using open and standard protocols
one example: HTML
is Slack open source?
can I use Slack client with other chat protocols?
Because I notice on Edge, if I visit the chrome store, it gives me an option to install extensions from there.
Will Linus pay for your internet bill if you use Linux on your router?
It is like using two different messengers then
Here’s the relevant snippet from the Pylance language server’s T&Cs
> INSTALLATION AND USE RIGHTS. a) General. You may install and use any number of copies of the software only with Microsoft Visual Studio, Visual Studio for Mac, Visual Studio Code, Azure DevOps, Team Foundation Server, and successor Microsoft products and services (collectively, the “Visual Studio Products and Services”) to develop and test your applications. b) Third Party Components. The software may include third party components with separate legal notices or governed by other agreements, as may be described in the ThirdPartyNotices file(s) accompanying the software.
Ref: https://github.com/microsoft/pylance-release/issues/4#issuec...
———
That they would forbid their holy language server implementation from integrating with other editors exposes the perfidy at the heart of their LSP advocacy.
If they want to keep the extension proprietary and charge for the language server, that’s fine! But allow people to use it with whichever editor instead of forbidding it through the license. It’s wholly malicious to use a language server implementation to extend control to the editor landscape. This is exactly the kind of nonsense that got them in trouble in the 90s, in the first place.
Seems like Microsoft is back to pissing in the public pool.
I agree with you that it's pretty crap, and it leaves a bad taste in my mouth, but I'm willing to cut them some slack because of how great lsp is.
Seriously, the pushing of this makes up for a lot of nonsense, especially as its a standard which means that if it's successful, Microsoft will be mostly forced to abide by that standard within their products.
I don't want to say MS is good, proprietary software is good, etc. But we're approaching the 4th decade of Free Software, and people should know better than tangling their free software with megacorp offering. I shed no tears.
https://cdn0.tnwcdn.com/wp-content/blogs.dir/1/files/2015/04...
It’s like complaining that Google won’t open source, or support, the Google Cast feature in Firefox or Edge.
It’s worse because a non MS entity can always put in the effort to create a Python language server and have that used across IDEs that support the LSP, but the Google Cast protocol is proprietary itself and one cannot even create their own implementation without severe reverse engineering.
Furthermore, there are programmers using other languages where the extensions are already open source, so it would be viable for some users from the start.
I'm also reminded of how some companies built their business on open source servers only for Amazon to create a competing service with their code. This makes me more sympathetic to the partial open source business model.
https://www.vox.com/2019/10/14/20910510/microsoft-government...
https://en.wikipedia.org/wiki/United_States_v._Microsoft_Cor....
I don't know how much of it is lip-service, but webkit.org talks about using webkit on non-Apple platforms, and webkit-gtk gets discussed on their mailing list.
It feels to me like a truly collaborative open-source project, in a way that's unlike most of what Apple does. Again, I don't know how much of this is an aberration, but I've always been impressed with the whole thing.
Which parts are closed-source?
I have yet to get a good response to how to make money in a world where everything is open source.
I personally feel lucky that unlike for categories like web search, social networking or mobile messaging, the IDE market features some reasonably-priced paid alternatives of extremely high quality.
But many people - including some truly outstanding developers - will continue to use VSCode because they believe that free as in free beer is always better, no matter what. There may be privacy violations, a desecration of FOSS ideals, shady business practices - you name it - and they will continue to use it as long as it’s free and the negative externalities are not too bad. I wouldn’t agree, but I do empathize.
Vscode kinda brought me back towards MS, or at least closer to them. Once I'd started using it on Linux (Kubuntu) then trying Win10 again was less of a leap.
I've not bought in to the New Friendlier Microsoft, but the hope was growing.
Don't have anything against them having closed sourced applications, frameworks or languages.
You cannot ask for everything all the time.
If you are in the early stages of a new product, this can lead to distractions.
Maybe they later on decide to take a different stance.
They're not open sourcing Pylance, which has some really nice features. The ones I mainly use are the semantic highlighting (it colours variables etc based on their type), and the auto imports (wow, I didn't realise how much I missed that).
However, those are just sugary extras, the real benefit is the typescript based type analysis. This can be had using the open sourced pyright extension.
It's released under the MIT license, and works pretty well. While it's maintained by Palantir, it works well for me, so take from that what you will.
If there were in it for the long haul we would see things like Office for linux. Instead we see WSL.
One or two CEO changes and they'll be back to litigation for patent infringement.
They're not charity. They have right to do whatever they want with their source.
Not sure on the effort required. I checked GH (not a Microsoft company...) but couldn't find the source code.
People and organizations can act within their rights and still be detrimental other people, organizations, and communities.
Copyright is a government granted monopoly on intellectual property, not an inherent right. What needs to happen is extreme reform (or outright abolishment) of copyright. Though that's basically a pipe dream right now
However, it is quite clear now that it is not because they want to “support the open source / free software world”. (And to some of us, this has been clear since day 1)
“New Microsoft”... if you believe that, I have a bridge to sell.
M$ wants VSC users and python users will go where the best language support is, pycharm has a lot of cool/good features but they don't have all of them.
The remote code dev extension is another big one.
The problem point here is when some company is using misleading campaigns about openness and long-term bait and lock-in scenarios. You take-out openness and liberty piece by piece, giving the public simple and cheap but closed solutions as bait.
Anyone who has invested significant resources to migrate to the new tool will not switch to another new tool so easily. So one by one they swallow the bait, piece by piece, and in the end are locked-in.
Is it that it's free? If Microsoft _sold_ a more advanced Python LSP, would that receive as many complaints?
Quoting LGPLv3:
> An “Application” is any work that makes use of an interface provided by the Library, but which is not otherwise based on the Library. Defining a subclass of a class defined by the Library is deemed a mode of using an interface provided by the Library.
making a simple wrapper of a large LGPLv3 library is a more-than-grey area with the "not otherwise based on" wording.
>Pylance [..] is planned to be included in proprietary service offerings.
Maybe someone can explain what the issue is because I don't see it.
That they would forbid their holy language server implementation from integrating with other editors exposes the perfidy at the heart of their advocacy.
If they want to keep the extension proprietary and charge for the language server, that’s fine! But allow people to use it with whichever editor instead of forbidding it through the license.
It’s wholly malicious to use a language server implementation to extend control to the editor landscape. This is exactly the kind of nonsense that got them in trouble in the 90s, in the first place.
A couple of years ago everybody was over VSC like flies, loving it, because it's open source and runs everywhere. I was in the minority of skeptics who predicted that kind of move.
And now, once again, Microsoft proved that they only care for OSS, and created VSC, because it enabled them to spy on coders and their code to develop proprietary and closed sourced spins for software development product. The OSS community got served. Well done.