top | item 25719045

Microsoft Refuses to Open Source VSCode Python Language Server

194 points| cjv | 5 years ago |github.com

145 comments

order
[+] Xavdidtheshadow|5 years ago|reply
This title is inaccurate.

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.

[+] ipsum2|5 years ago|reply
It's not really inaccurate, because:

> 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.

[+] saagarjha|5 years ago|reply
I don’t use Visual Studio Code, so take this with a grain of salt, but the person who told me to try this said they were using the old one and switched because they got prompted to do so. So perhaps it is now the default?
[+] Barrin92|5 years ago|reply
Almost the entire thread seems like a case of "give them a finger and they'll take the whole hand"

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.

[+] beagle3|5 years ago|reply
Microsoft did promote it, at least in its early days, as an open and standard system, and the LSP as a way to go from MxN language specific IDE implementations to M+N. But tben, they make it 2xM+N by forbidding the use of their LSPs in other editors - which, if done by everyone would put as back at MxN.

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.

[+] saagarjha|5 years ago|reply
They did here by pushing LSP as a standard. Actually, LSP allows for closed source extensions that are generally useful: they have specially prevented that from happening here. There may be the usual “but it’s not open source” complaints here if they did that, but I suspect that people were mostly interested in the source so they could build their own version that they could use elsewhere more than that they actually wanted the code for something.
[+] ipsum2|5 years ago|reply
In addition, Microsoft refuses to open source their remote VS Code implementation: https://github.com/microsoft/vscode-remote-release

See issue: https://github.com/microsoft/vscode-remote-release/issues/17...

[+] ithrow|5 years ago|reply
That extension is a competitive advantage that's crippling Jetbrains. Just business as usual.
[+] saagarjha|5 years ago|reply
I hate to bring out the old “embrace, extend, extinguish” argument, but I honestly can’t think of any other reason for this. Visual Studio Code has gotten really popular lately, but I think very few people realize that many parts of it are closed source. And you can’t take extensions from the Microsoft store and use them in your own editor…this just seems designed to get people to use your editor, give them enough source so you can claim it’s hackable, but prevent any other editor from reusing it. That doesn’t sound very open at all.

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 :/

[+] ssivark|5 years ago|reply
Classic bait-and-switch with their M*N to M+N argument; totally looks like Embrace-Extend-Extinguish

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.

[+] Ericson2314|5 years ago|reply
It's not "embrace" because they made VSCode in the first place?

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.

[+] skybrian|5 years ago|reply
It doesn't seem like all that much of a lock-in? If people get annoyed enough they could fork the open source parts and rewrite the extensions that aren't open source.

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.

[+] arcturus17|5 years ago|reply
Let’s not kid ourselves, most people use Code because it’s free as in free beer, and that’s it.

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.

[+] tester756|5 years ago|reply
" but prevent any other editor from reusing it. That doesn’t sound very open at all."?

How so? language server is a standard.

[+] vijucat|5 years ago|reply
Honest question: how is any firm meant to make any money in this worldview? If everything has to be Open Source, then maintenance contracts (which are completely optional) will be the only way to earn and will decimate revenues. Creating a beautiful and functional piece of software is hard work. We should be thankful that firms open source even parts of their product.
[+] Jonnax|5 years ago|reply
Does Microsoft disallow people from using the Microsoft marketplace for VS code extensions in their own editors?

Because I notice on Edge, if I visit the chrome store, it gives me an option to install extensions from there.

[+] techman9|5 years ago|reply
> I think very few people realize that many parts of it are closed source

Which parts are closed-source?

[+] x0x0|5 years ago|reply
Microsoft getting money from things like this is probably, on balance, a good thing. It helps justify resources to build, support, and improve it. Because every year, someone has to justify probably multi-million dollar budget lines for pylance / their python type checker.
[+] yodon|5 years ago|reply
Anytime someone mentions embrace, extend, extinguish, I wonder do they spend their time sitting around in 90's surfer pants listening to Nirvana on their cassette tape player while worrying about nasty things that were said when the protocols for fax machines and VHS players were being designed. Seriously, this was more than 25 years ago. It's like listening to dad jokes or someone genuinely still pissed about the Wright Brother's filing aviation patents.
[+] addicted|5 years ago|reply
This is Microsoft limiting the extension they created to their IDE.

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.

[+] danielovichdk|5 years ago|reply
I have pretty much respect for Microsoft for open sourcing a lot of things and changing their culture for the better.

Don't have anything against them having closed sourced applications, frameworks or languages.

You cannot ask for everything all the time.

[+] _the_inflator|5 years ago|reply
Exactly. And never underestimate the time it takes to take care of the community that evolves around open source, merge requests and so on.

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.

[+] Lunrtick|5 years ago|reply
I don't mind this too much, to be honest, though I would prefer it if they open sourced it with licence based restrictions.

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.

[+] heavyset_go|5 years ago|reply
If you're looking for an open source Python language server, check out `python-language-server`[1].

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.

[1] https://github.com/palantir/python-language-server

[+] agrue|5 years ago|reply
Microsoft is pro open source when it suits them.

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.

[+] apetrovic|5 years ago|reply
What you think would be the cost for porting and supporting Office to Linux? And how many Linux users would pay for desktop Office, either Office 365 subscription or one-time purchase?

They're not charity. They have right to do whatever they want with their source.

[+] Grimm1|5 years ago|reply
They've put a lot of work including some interesting ML work to my knowledge into the python language server. I wonder if it's that latter part that makes them cagey about open sourcing it.
[+] beagle3|5 years ago|reply
VSCode was likely open sourced at all (in a limited way) because they were legally required to, having decided to use LGPLd WebKit/Blink; and their use of V8/Electron probably promoted this as well, even though that wasn’t mandated by the Apache/MIT license.

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.

[+] Thristle|5 years ago|reply
How can you blame them for not making the only edge (that, and the type checker) they have over pycharm in terms of language support?

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.

[+] ithrow|5 years ago|reply
How can you blame them for not making the only edge

The remote code dev extension is another big one.

[+] teddyh|5 years ago|reply
> @microsoft microsoft locked as resolved and limited conversation to collaborators on Jul 17, 2020
[+] uncledave|5 years ago|reply
They do this all the time. Or restructure all the repos and lose all the history. Or delete the entire issue tracking system.
[+] kam|5 years ago|reply
Pylance is built on their open source Pyright library, which is also available as a VSCode extension. I'm just using Pyright instead and don't seem to be missing out on anything important.

https://github.com/microsoft/pyright

[+] singhrac|5 years ago|reply
While Pyright the project is still under development, when Pylance was released, it was mentioned that the Pyright VSCode extension wouldn't be developed any more. I'm surprised it still works, but I guess that's more of a coincidence of not breaking API compatibility?
[+] thecrumb|5 years ago|reply
Microsoft looks at recent language survey lists, sees Python on top and wants to make money. They are only 'open' if it benefits them, not us.
[+] marcinzm|5 years ago|reply
I mean, was that ever in question? Microsoft is a for profit corporation and not a charity.
[+] banana_giraffe|5 years ago|reply
We won't know for years, if ever, I'm sure, but I wonder what Guido van Rossum makes of this now that he's on the other side of the fence.
[+] dgellow|5 years ago|reply
Not sure what’s the issue here. If they don’t feel like open sourcing this specific piece of software, that’s their right. They are already one of the largest contributor of open source software in the world.
[+] qpiox|5 years ago|reply
I think it's normal to want to make money of software. I do and many others do.

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.

[+] tonymet|5 years ago|reply
Refuses? How about “hasn’t yet” , or “has decided against?”
[+] maximilianroos|5 years ago|reply
Why are people so much more upset about this relative to MS not open-sourcing their other products?

Is it that it's free? If Microsoft _sold_ a more advanced Python LSP, would that receive as many complaints?

[+] saagarjha|5 years ago|reply
Personally, I am more upset that they don’t allow it to be used elsewhere than it being closed source.
[+] muglug|5 years ago|reply
Having written a language server for PHP, I can tell you it's damn hard – I don't begrudge Microsoft's behaviour here at all.