4 ms·
Why didn't MS just contribute to the existing one, instead of writing its own from scratch?
by EdwardDiego 4y ago
Why didn't MS just contribute to the existing one, instead of writing its own from scratch?
- formerly_proven 4y agoImperialism, basically. Contributing to open source means you don't wholly own the project you contributed to, and that constrains what you can do with it.
- jsmeaton 4y agoThe existing one was an open source Microsoft project. Then they built a new closed-source version as a replacement. To be fair, pylance is orders of magnitude better with regards to performance. But I just don’t get what the reasoning was to make pylance closed source. It’s baffling.
- lin83 4y agoI believe the previous Python support extension started out as an independent open source project until Microsoft hired its main developer. > It’s baffling. Vendor Lock in? Same reason you can't use the VSCode marketplace of mostly open source extensions on a non-Microsoft build of VSCode or any of the remote work features.
- jsmeaton 4y agoThe Python extension itself is not closed source and is still maintained by the original developer that MS hired. It’s the language server that went from an OSS Microsoft project (that replaced the initial Jedi server) to the closed source LSP server. Lock in doesn’t make sense to me. The main competition is Pycharm which has its own set of tooling. I can somewhat understand the remote extensions being closed source considering they need to interface with a server. It makes no sense for Python. My guess is that Pylance is also used within Visual Studio proper, and the VS product owners are pushing for closed addons.
- saghm 4y agoIdk, it seems pretty clearly like lock-in to me. Microsoft first came up with LSP when VS Code was a lot newer, so they made it an open standard to help them get market share by enabling language developers to more easily support their editor. Now that they're a much bigger player in the text editor space (which VS proper never really played as hard in, not being cross platform and being much heavier weight), they're trying to build a moat to ensure that they don't lose that to other players, which means making it harder for anyone to re-use the tools they used to gain share in the first place.
- WorldMaker 4y agoMy understanding is that pylance bundles in several ML models that back a lot of its performance increases over pyright and it is the ML models and closed-source data science that caused the LSP closure. I think data science also is best when it itself is open/open-source, and peer reviewed. I can understand why Microsoft wants to make that a moat to protect expensive data science and ML research boundaries and it doesn't seem that baffling to me if that is indeed the reason why they closed source pylance, even as I question if it was the best choice.
- jsmeaton 4y agoThanks for this, it was definitely news to me. If this is the case then it makes slightly more sense, but is still disappointing.
- bergheim 4y agoI don't understand this. It makes sense "because ML"?
- WorldMaker 4y agoUnfortunately, yes. I know a lot of companies (here on HN, my current employer, etc) are talking about ML like it is cheap and easy to build, but you get what you pay for and right now it looks from budgets that Microsoft is paying for a lot of high quality effort. Again, I think it would be beneficial if more of this work was done out in the open, in part to open it to good critique and peer review, and in part to make it more obvious to everyone (including companies such as my current employer) that proper data science is still an expensive investment that requires a ton of work and hidden costs. But the catch-22 there is of course the more expensive the investment the greater the desire to protect it and keep it secret (at least in the short term where it seems a competitive advantage).
- jsmeaton 4y agoNo, because it's no longer "just code". Bundling in assets (ML models, server keys, etc) makes it more difficult to open source something. So, while I don't agree that it should be closed source, it makes a little more sense to me why they might have gone that way.
- meibo 4y agoRealistically it's probably also code reuse from their enterprise products(Visual Studio) which are very good at C# analysis.
- lozenge 4y agoPylance (and the open source less featured version, pyright) is architected after the Typescript language server. Which makes sense as they're both languages with unsound type systems, optional type annotations, and use type inference. By being written in TS it also runs in a web browser which is their Next Big Thing. There isn't an Existing One, more like many existing ones with their own tradeoffs. Jedi is designed to infer the variable in your currently editing LOC. It can't type check and report issues on entire files/projects. It's also a one man project.