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.
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?
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.
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.
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.
"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 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 :/
Microsoft always does this, they fool people by pretending they’re in favor of open source or make something free but it’s just a trick used to bait and switch people into the proprietary anticompetitive Microsoft ecosystem.
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.
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.
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.
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.
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.
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.
Speaking of LSPs, It's also funny how tsserver isn't an LSP either, but I guess it is open-source.[0]
It's sort of funny this pylance thing seems to suffer the same problem.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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?
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.
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.
[+] [-] Xavdidtheshadow|5 years ago|reply
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
> 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.
[+] [-] ssivark|5 years ago|reply
[+] [-] saagarjha|5 years ago|reply
[+] [-] Barrin92|5 years ago|reply
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
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
[+] [-] ipsum2|5 years ago|reply
See issue: https://github.com/microsoft/vscode-remote-release/issues/17...
[+] [-] Snuupy|5 years ago|reply
"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."
[+] [-] ithrow|5 years ago|reply
[+] [-] saagarjha|5 years ago|reply
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 :/
[+] [-] alexfromapex|5 years ago|reply
https://www.vox.com/2019/10/14/20910510/microsoft-government...
https://en.wikipedia.org/wiki/United_States_v._Microsoft_Cor....
[+] [-] ssivark|5 years ago|reply
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
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
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
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
How so? language server is a standard.
[+] [-] vijucat|5 years ago|reply
[+] [-] prussian|5 years ago|reply
[0]: https://github.com/microsoft/TypeScript/issues/39459
[+] [-] Jonnax|5 years ago|reply
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
Which parts are closed-source?
[+] [-] x0x0|5 years ago|reply
[+] [-] yodon|5 years ago|reply
[+] [-] addicted|5 years ago|reply
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
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
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
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
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
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
They're not charity. They have right to do whatever they want with their source.
[+] [-] unknown|5 years ago|reply
[deleted]
[+] [-] Grimm1|5 years ago|reply
[+] [-] beagle3|5 years ago|reply
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
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
The remote code dev extension is another big one.
[+] [-] teddyh|5 years ago|reply
[+] [-] uncledave|5 years ago|reply
[+] [-] kam|5 years ago|reply
https://github.com/microsoft/pyright
[+] [-] singhrac|5 years ago|reply
[+] [-] thecrumb|5 years ago|reply
[+] [-] marcinzm|5 years ago|reply
[+] [-] banana_giraffe|5 years ago|reply
[+] [-] dgellow|5 years ago|reply
[+] [-] qpiox|5 years ago|reply
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
[+] [-] maximilianroos|5 years ago|reply
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
[+] [-] muglug|5 years ago|reply
[+] [-] unknown|5 years ago|reply
[deleted]