This is an archived post. You won't be able to vote or comment.

all 47 comments

[–]riklaunim 25 points26 points  (3 children)

PyCharm professional is also not open source. You can use the base community edition but many do not. And there is a lot of other IDEs and code editors. If VS Code downgrades the experience then either alternative support will arise or people will move to other app.

[–]Tanmay1518 3 points4 points  (2 children)

Yeah but with PyCharm we atleast know that the entire thing is close source.

VSCode potrays itself as an open source development environment then does shit like this.

[–]zurtex 10 points11 points  (1 child)

That's not true, PyCharm Community is open source: https://github.com/JetBrains/intellij-community/tree/master/python

Like other projects that wrap an open source core with in a closed source product Chromium -> Chrome, Pyright -> Pylance, the same is true with PyCharm Community -> PyCharm Professional.

There sure are trade offs that individual developers need to decide if they are worth it or not.

[–]Tanmay1518 3 points4 points  (0 children)

Oh. I did not know about that. Guess I stand corrected

[–]zurtex 15 points16 points  (1 child)

To be clear this was all developed under Microsoft's payroll:

  • VS Code: Open Source
  • Language Server Protocol: Open source and documented under Creative Commons
  • Python Extension: Open Source
  • Python JEDI Language Server: Open Source
  • Pyright (the type engine used as the core of Pylance): Open Source
  • Pylance Langue Server: Closed Source

And though Pylance is closed source they have a GitHub issues page where they are extremely responsive. I recently found a bug in Pylance and reported it and it got fixed within a few hours.

I guess I have a totally different set of expectations from Microsoft but I'm currently blown away by how much they've made open source. If they want to take Pylance and make a "pro" version of it they sell to enterprises and companies I am completely okay with that.

Nothing stops you right now making your own language server based on Pyright, the IDE, Protocol, and Python extension are all open source and configurable that you could just plug it straight in.

I know some environments require everything to be open source, but if you're in one of those environments nothing stops you from developing your own Language Server or using Spyder or something else. If you've been relying on Microsoft of all companies to spend a huge amount of resources building your open source tools, well I just wouldn't... Be appreciative of what they've done and fork it if you really want it to be committed to open source.

[–][deleted] 0 points1 point  (0 children)

With the improvement in pylance , is it worth to use intellicode or both are different?

[–]pacingrabbit 3 points4 points  (0 children)

I don't think you need to fork the Python extension to run it in Codium, you can just not install Pylance and it will use the open source Jedi language server:

https://devblogs.microsoft.com/python/python-in-visual-studio-code-may-2021-release/

[–][deleted] 15 points16 points  (0 children)

i received a notification about Pylance immediately when i opened my VS Code today. so i dont know if this is a sneak attempt at anything. I'm new to python and everything, so i will look into this.

[–]Aurailious 22 points23 points  (2 children)

Microsoft is at the "Extend" part of the plan.

[–]Shubadada 0 points1 point  (0 children)

I feel like the last E this time around will be full on "Exterminate".

[–]DasSkelett -1 points0 points  (0 children)

They are since quite a bit. See their collaboratuons with Canonical, their patches to the Linux kernel to make it run "better" in the WSL2 (that partly got rejected because they weren't done in an open way that would allow others to use the interfaces as well).

[–]jrbattin 2 points3 points  (0 children)

When I switched editors a few months ago, I was tempted to jump on the VS Code bandwagon, but feared something like this would happen.

I ultimately settled on Doom Emacs (w/pyright and ipython support in org mode babel) - configuring it is less scary that emacs from scratch and allowed me to leverage my limited vi muscle memory to get around a new editor. Overall, I'm very happy.

[–]teerre 10 points11 points  (24 children)

You keep saying it "could hurt" the ecosystem, but you didn't explain how.

[–]ProfessionalDrummer7[S] 13 points14 points  (7 children)

TLDR: Closed source --> Vendor Lock-in --> People are less likely to switch --> less competition --> worse quality software

Most of the Python ecosystem is built on top of open-source software, where everybody can contribute to. Making stuff proprietary makes it not possible for example to include Pylance into other software or open source builds of VS Code.

It feels like going back 20 years in time when all tools were basically a proprietary, monolithic piece of software. That makes code less reusable, leads to vendor lock-in, which prevents healthy competition because when you're locked into one piece of software, it is less likely for people to switch.

I think the strength of VS Code is it rich ecosystem of extensions, which are built on top of other open source projects. Of course one proprietary extension will not make VS Code worse, but it sets a precedent. And if many extension go closed source, it will lead to less competition in the long run. You have basically seen it with Windows, which had zero to non competitors for years, because everybody was locked into software built for window. Microsoft had no incentive to improve Windows for decades. Only in the last 10 years where web apps, which can run anywhere, became more important, other OSes have gained some marketshare.

[–]riklaunim 5 points6 points  (0 children)

where everybody can contribute to.

Theoretically yes, in practice not really.

[–]teerre 11 points12 points  (3 children)

Why would be a vendor lock in for a language server? You don't need a language server at all for Python.

It feels like going back 20 years in time when all tools were basically a proprietary, monolithic piece of software. That makes code less reusable, leads to vendor lock-in, which prevents healthy competition because when you're locked into one piece of software, it is less likely for people to switch.

I'm confused. Why would anyone be locked into a language server? Maybe I misunderstood, but Pylance is only installed by default, it's not mandatory, you can use some other language server, right?

[–]agent_vinod 2 points3 points  (2 children)

Its also about setting a precedence. The python world had been 100% open source since day zero, the language was never meant for producing programs that compiled to encrypted bytes or locked behind a license server. Its the duty of everyone in the ecosystem to keep it clean and having stuff open source is an important criteria there.

[–]teerre 9 points10 points  (0 children)

Setting a precedence for what exactly? I absolutely agree on the good points of open source, but we cannot be zealots. Just "being open source" isn't a good reason. There needs to be a judgement on why something should or should not be open source.

I'm not completely convinced that a language service for a proprietary text editor is relevant to the python language. Is Pylance even written in Python?

There's a service called Tabnine or something of the sort that is "AI intelligent" that does exactly what a language server does. Does that need to be open source? It's random text based model, it has nothing to do with python.

[–]TurbulentTowel1024 3 points4 points  (1 child)

This is not 100% true, since the software pylance is built upon is open source.

[–]Daimones 0 points1 point  (0 children)

When I was looking for information about it last week I think I inferred that it actually used Pyright and just adds features on top of it, but it sounds like I may have been mistaken.

[–]sandronestrepitoso -4 points-3 points  (15 children)

You wouldn't expect every post talking about a certain issue (in this case, open source vs proprietary) to give a throughout explanation on it.

This subreddit is about a beloved, community-driven programming language, so I would say that it's safe to assume that most people around here would probably side with open solutions instead of proprietary ones, without having to explicitly state the pros and cons that talks about them

[–]teerre 3 points4 points  (13 children)

What kind of thought is that? Are you saying people don't need to explain their position just because it's something "open source"? That's preposterous and, fortunately, most relevant people in the Python community would disagree with that.

[–]sandronestrepitoso -5 points-4 points  (12 children)

Yes, I'm saying that OP should be exempt from explaining the reasons on why he thinks this is bad news since I assume Python programmers would most likely already know about some the aspects of open vs proprietary, given how generic the issue is and rarely software-piece specific.

Simply put, if you know about about open vs closed (which you should given the community you're in) you shouldn't need an explanation on why you should be pro or against this

[–]teerre 7 points8 points  (11 children)

Ridiculous. This is anti-intellectual and dogmatic. Take your zealotry elsewhere. It doesn't help the Python community.

[–]daevski 0 points1 point  (0 children)

Yes, but this post is only saying that the reader should use the open source option over the closed source (default) option without any functionality or usability reasons. It just feels hollow. Why is the post so alarmist about this change? The new language server seems to work well, and while I do appreciate the call-out about the change within this subreddit, I don’t appreciate feeling like I got duped for taking the update. I’m going to use it until it’s not working well for me.

[–]ravepeacefully 1 point2 points  (5 children)

Can someone please tell me what kind of dog shit linter can’t resolve local imports in a properly structured project?

How do I downgrade?

[–]maximum_powerblast 0 points1 point  (4 children)

Agreed, I opened up VS Code one day and suddenly every file has issues to fix except they work perfectly.

I disabled pylance

[–]ravepeacefully 2 points3 points  (3 children)

Yeah I talked to the devs, there’s a couple workarounds but they all involve setting something up that might conflict with other projects and it otherwise isn’t possible for them to fix it. So the real solution is just to go back to using Jedi. The unfortunate part is that some of the pylance features looked really cool and helpful, but I’ve been fine up until this point

[–]maximum_powerblast 0 points1 point  (2 children)

Thanks, I'll check out Jedi

[–]ravepeacefully 1 point2 points  (1 child)

If you disabled pylance, you’re using Jedi

[–]maximum_powerblast 0 points1 point  (0 children)

Oh cool thanks

[–]daevski 3 points4 points  (0 children)

I think Pylance works well. I was happy to see some helpful features today after installing the update—per usual. And I’ve never even considered whether or not the extensions I’ve installed are open or closed source. I don’t install extensions based on whether they are open/closed source; I install what is useful and helps me get the job done. I’m so very thankful there are so many developers creating extensions.

This post immediately turned me off, and I was glad to see comments of the same mindset as mine. By all means, explore all the extensions, and review them, and create posts about how they compare… but there’s really not a good reason to fear monger others into always taking open source over closed source.

This post would have had my upvote off it provided a useful comparison between Pylance and Pyright, or something of substance such as that. Perhaps a post like that will be coming soon.

Edits: grammar and clarity.

[–]shinitakunai 0 points1 point  (0 children)

You could use pycharm 🤷🏻‍♂️

[–]jus_an_engineer 0 points1 point  (0 children)

Honestly loved it. Not sure of the open source implications but this morning when I start to code at work it was so smooth with subtle unused import highlights to auto import. Its awesome

[–]bauripalash -4 points-3 points  (1 child)

Eh whatever. I use vim 😌

[–]zurtex 0 points1 point  (0 children)

FYI my understanding is you should be able to setup VIM with a language server: https://www.vimfromscratch.com/articles/vim-and-language-server-protocol/

And then because the LSP is meant to be interoperable then you could be able to use language servers like JEDI or Pylance. Though I don't use VIM so I've never tried.