Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

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.

https://www.vox.com/2019/10/14/20910510/microsoft-government...

https://en.wikipedia.org/wiki/United_States_v._Microsoft_Cor....


Why should they open source everything? I never see anyone complaining how Apple doesn't open source Safari or XCode. I mean there are plenty other totally open source editors out there to choose from.


You can’t push something as a standard, claim that the fact that it is standardized allows for interoperability, benefit from the work other people do to conform to your standard, then prevent your own work from being used by others like you claimed would be possible. Apple sidesteps this issue by rarely promoting standards in the first place.


Microsoft has total right to pursue that goal. We should better help others so that they don't fall in the trap...


How is that the standard? You can write you python code in PyCharm with their own set of tools or use vim or emacs with other open source python servers.


Why? Because they're the new Microsoft that completely embraces open source, we have been told, and it was seen as paranoid and ridiculous to suggest that they were merely the old Microsoft with a new trick.


Who told you that? Nobody said they would open source everything. There were never plans to open source Visual Studio or Office or Windows. And why should they? Did they sign a contract in blood?


There's a way to respond to comments. And this definitely isn't the right way. You might want to read HN guidelines.


Maybe not Safari, but they have open sourced WebKit and a lot of kernel modules and other useful things: https://developer.apple.com/opensource/ https://news.ycombinator.com/item?id=25675763


Saying Apple open sourced WebKit is a pretty funny way of seeing things.


They've been pretty good stewards though, for a long time.

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.


Exactly, it was open source before Apple came along. Guess GP didn’t realize that WebKit is a fork of KHTML from KDE which was LGPL licensed (if memory serves).


WebKit was forked from the LGPL KHTML. Unless Apple wanted to get sued and lose, they needed to release WebKit under the terms of the original code.


And Microsoft has open sourced at lot as well. So? Why should any of them open source everything?


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.


So, they claim that much of what pylance does is mirrored by Pyright (which is open source)

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.


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.


I think it's based on Atom, isn't it?


No, Atom and vscode depend on Electron, tho, so they embraced Electron.


Atom and electron were both the same project at one point, so we are splitting hairs. There's even a file properties screen capture where it says 'code' original name was atom.exe. See below

https://cdn0.tnwcdn.com/wp-content/blogs.dir/1/files/2015/04...


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.


I'm not a developer but I was using Pycharm (community edition, already free) and switched because I found it better for webdev, particularly the plugin ecosystem had useful components. Other apps do to, but I think vscode has gained a lot of development in the ecosystem because of the FOSS dressing it adopted. I think it's it has been closed source, paid for, then it wouldn't have garnered that attention and instead other OS projects would have gained more attention. So I don't think it's fair to say it's just about free-gratis status.

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.


" but prevent any other editor from reusing it. That doesn’t sound very open at all."?

How so? language server is a standard.


Well, that’s exactly what I was confused about before myself! I was using some other Python language server, but it seemed a bit slow so I asked around for suggestions and got this recommended to me. Of course I assumed that I would be able to use Microsoft’s implementation in my preferred editor, Sublime Text, since that was the whole point behind LSP…but it turns out that no, you can’t. You can download it from the Marketplace, but it bans you from doing exactly that. And there’s no source provided, so there isn’t another way to get it. So you’re pretty stuck…


That’s not the whole point of the LSP. The whole point of the LSP is that for people who want to create an IDE agnostic language server, they can do so.

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.


Why is Microsoft using and a protocol that they designed and pushed for IDE agnostic language intelligence for…not that? Also, note this isn’t about “support” but intentionally preventing its use. Many third-party language servers only “support” Visual Studio Code but by the magic of LSP work in other editors that the original author may not have even heard of before. But this one can’t do that.


the IDE agnostic is on the IDE side

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?


Yes it's their code and they can license it to be at least GPL though


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.


My issue is more with the fact that their extension perpetuates lock-in than it being closed source.

I have yet to get a good response to how to make money in a world where everything is open source.


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.

[0]: https://github.com/microsoft/TypeScript/issues/39459


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.


> Does Microsoft disallow people from using the Microsoft marketplace for VS code extensions in their own editors?

Yes: https://www.gitpod.io/blog/open-vsx/


Yep. It's the same tactic Signal uses - sure, you can fork it, but the fork can't legally use their servers.


Yeah, but I think the largest benefit of Signal’s Open Source model is something different - it’s that their security claims are verifiable.


they don't want to pay the server costs for you.


they also don't want to let me spin up my own server and interoperate


I think you can spin up your own server: https://github.com/signalapp/Signal-Server


but you can't interoperate with the Signal server - it is a separate silo.

It is like using two different messengers then


well that should kinda be obvious?

Will Linus pay for your internet bill if you use Linux on your router?


> I think very few people realize that many parts of it are closed source

Which parts are closed-source?


Not your parent, but this is a good starting point: https://underjord.io/the-best-parts-of-visual-studio-code-ar...


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.


That’s the other part I can’t figure out: where can people pay for this?


I presume it will be a piece of their larger strategy of moving development activity to the cloud by integrating the VSCode/Codespaces+Github+Azure and providing all kinds of conveniences such as language support, git support, easy CI/CD, etc. In that world of integrated deveopment (IDE++, if you will), it wouldn't make sense to sell access to component pieces.


My guess is that Microsoft really intends their strategy to be the best for developers, and this is justified as part of that support. ie make Windows the best development tool, and dollars will follow. I think it's smart. Building and deploying software on mac or mac/linux docker containers with a linux/docker/aws target certainly has lots of room for improvement, and I'm happy to see someone compete on that.


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.


Just because something used to happen a long time ago, doesn't mean it can't or isn't happening anymore. Cults, MLMs, and scams in general are older than the 90s and still going strong.


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.


It’s worse because Microsoft is pushing it as a standard and yet undermining the very arguments they made when they proposed it with their actions. The way they have it now, they get to use all the other LSP implementations “for free” while no other editors get to use their servers. You will note that the old one was open source–Microsoft deliberately closed this one. I really want to believe differently, but it really seems like they kept it open for as long as it took people to adopt LSP and then decided they didn’t have to promote it anymore.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: