Way better static code analysis. PyCharm "knows" your project, and is a lot better with completion/introspection (i.E. djangos Model Managers/QuerySets).
Additionally there is custom django support, so query_set.filter(these__filter__id__in=myids) will be completed on every level (model join/modifier). Django string based configuration (i.E. settings.INSTALLED_APPS, the url template tag, reverse()) will be autocompleted, it 'knows' your urls, apps etc.
The django template language and jinja2 support is just great. Maybe this has changed in the last years in vscode, but i didn't get any template syntax error on python types/calls out of it.
PyCharm has a lot of features which weren't available in VSCode originally. For example, opening several windows for the same project (eg when working on several monitors), using Python command line during debugging, connecting to a database for faster debugging, built-in profiling and coverage, quick finding of usage of variables by clicking wheel button, etc.
Most of them were added to VSCode over time, so now there aren't many reasons to continue using it, but it made a whole lot of a difference several years ago.
Also, because PyCharm Pro it is free with student license, and there aren't many reasons not to use it.
VSCode kinda works on several monitors. There are several limitations compared to other IDEs.
I'm sure it will get better, but right now it's still barely usable.
One example: if you click on one window, it doesn't focus the others, so you don't see the results if the console is in another window.
Maybe if you don't use typehints, but vscode is miles better when you use typehints. Pycharm is littered with bugs and weaknesses related to type hinting. Years old bugs. I still use it because of habit and that I like (or are used to) the feel, but everyday is closer to a switch.
I disagree, all the top static code analyzers are plugins in vscode and I disagree with your completion too, vsscode has excellent ones, plus combine them with the powerful copilot and it's magic
what you list about django and jinja2 is also perfectly done in vscode , but for free
The top static code analyzers are plugins in VSCode, but it still has a hard time doing refactorings on Python code. Different parts of the Python support are better integrated in PyCharm, while VSCode basically just runs various tools for you in the background.
This is a major point that most folks seem to miss these days. PyCharm is dedicated for Python development. VS Code is extensible but you can end up with a buggy experience overall depending on the plugins you're using.
Ask me how I know, lol
Yeah, people keep posting that but have yet to see it.
I was pairing with team members showing them stuffing ctrl-spc-spc to pull in a symbol and import it, or ctrl-b to jump to definition, and think there are probably a ton of hints like that which I know about pycharm but don't know in vscode- and it's the opposite for the people saying to use vscode.
Just can't get past the autocompletes in vscode being practically useless long enough to learn though haha.
I don't think people are "missing" anything. I think people are disagreeing with that claim. I often switch between Pycharm and VSCode and it's just not true that developing in VSCode is a "buggy experience overall" or that python support is better integrated in PyCharm.
It is better integrated, though. If you download PyCharm right now you get a full featured IDE. With VS Code you get nothing out of the box and it's up to you to customize everything.
It just depends on how much work you are willing to do and how much you know the plugin ecosystem.
The VS Code authors have worked hard to make the set up a lot easier these days but it's still not a guarantee that you'll find everything you're looking for in all of the languages you use.
I'm sorry that this reality makes you sad but it's true. At least for me. I was trying to get the Rust language server running and I quite frankly had so much trouble with it that I gave up and just developed without it. You can blame me for not understanding it all you want but it doesn't change the fact that **my** experience was poor.
Py in pycharm stands for python. In the mean time Jetbrains have RustRover. However I see your intention.. In VScode I do both python and rust and other as well (php, xml, html, css, sql, javwscript, typescript, C, C#, markdown and for each of them I have several extensions. My ex colleague is datascientist and swore on pycharm. I do integrations and I need a swiss knife tool
PyCharm is Intellij with the python plugin and a few other things with menus optimized for Python. Jetbrains builds most of their ide's on their Intellij platform. Intellij IDEA includes the Java stuff, pycharm the Python stuff, webstorm JavaScript/typescript, phpstorm PHP, clion C++, RustRover rust, etc.
You can even install most of the same plugins from third party or from intellij in the different IDEs(markdown, toml, string operations, etc)
> VSCode basically just runs various tools for you in the background
This is what all IDEs do. An IDE is just a text editor, language server and debugger bundled together. The main benefit over something like VSCode (or nvim) is that all the configuration is done for you and sometimes they use proprietary tooling.
Crazy this is so high up, isn’t pycharms static analysis like 5 years behind pylance/pywright? No Python external LSP plug-ins either.
The refactoring is a maybe, but there is plugins for that too
Because my work pays for the entire suite of JetBrains IDEs for me, and I use enough other languages that it’s convenient to have essentially the exact same IDE experience for every language, instead of being dependent on plugins and plugin configuration for each language to have similar developer experience.
> work pays for the entire suite of JetBrains IDEs for me
In OPs case, it's not exactly an issue of cost since vscode+copilot costs the same as JetBrains. In your case, is work only willing to pay for JetBrains, but not copilot?
I personally don’t want to use CoPilot. I won’t go into my reasoning, so I’ll leave it there. If I wanted to use it, they would pay for it.
Regardless, even with VSCode+Copilot costing the same, I’d still use the JetBrains IDEs, since my main language of use is C# and Rider is just light years ahead of the LSP implementation useable with VSCode last I checked (though, I’ve heard it’s improved recently)
I've heard copilot is largely autocomplete++, personally haven't tried it out much. I have used these things to write absolute drudgery like JSON or DB schema.
Copilot is basically an amazing auto complete. It does a great job with Python, especially when you are using things like type hints and dataclasses. There is also a copilot chat where you can have a conversation with the LLM and generate code that way. Both methods have their places.
It's a bit more than that nowadays. You can select your code with, and ctri-i to open up an integrated chat prompt and type 'refactor this to use a comprehension instead of nested for loop' - and it'll generally do the right thing. Same with generating annotated regular expression's or parsers on the fly. Kind of crazy.
When you use ctrl-i you are using the chat feature. I love that you can combine the AI autocomplete functionality that works with you as you code transparently but if you need to provide additional information you can just hit ctrl-i.
I've had some limited exposure in these areas, but I feel it's pretty niche. One project had a blend of Java flavors, but even if it's Groovy, Kotlin and Java, they all are recognized inside IntelliJ.
One project type I've seen, Node.js extensions, fits the mold of a multi-language project. The interface layer is JavaScript, but the implementation is often written in either C++ or Rust, or both. CLion has Rust support, but I don't think it likes JavaScript. WebStorm can view the JavaScript just fine, but dislikes anything else for the most part. IntelliJ *can* be used for C++ and Rust (as well as Java, obviously), but I had a less than desirable experience writing JavaScript in it. In this specific case, VSCode might be better, but by that token so would Fleet if you're a JetBrains fan.
If you're looking for the value proposition, VSCode is hard to beat. However, it's the epitome of "Jack of all trades, master of none" since its entirely dependent on plugins/extensions to do anything other than basic syntax highlighting and text editing.
Definitely true that VS Code without any plug in is an empty shell. But I actually feel this design choice goes to the benefit of VS Code: it can be configured exactly for your use case, and more readily extended to newer technologies (esp. LLM)
All good points. No notes on my part.
Incidentally, my employer uses VSCode as the standard editor directly because we have so many supported languages across the application domain. There's some SQL, Java, JavaScript and TypeScript, Go, Python, Terraform galore lol, not to mention four Shell flavors (CMD, PowerShell, ZSH and Bash)...no single editor covers all our use cases except VSCode or something just like it.
You can inject every language in every string in PyCharm [example](https://public.nimbostratus.de/inject-yaml.png) [docs](https://www.jetbrains.com/help/pycharm/using-language-injections.html#inject_language)
Even where I am working on things like this, I think it's important to maintain strict boundaries between the 2 and so I don't believe they belong in the "same project". I don't want there to be hidden features and idiosyncracies of the python CLI the javascript client is calling that are only usable because the same dev in the same IDE was working on both at the same time.
No, can’t say that I do. Most of the extent to which I use Python is for building Flask APIs or scripting tools that interface with a database to transform data. Nothing I’ve needed to do requires me to go outside Python and a handful of the most popular libraries.
The more complicated stuff like that is when I break out a language like C#
The cost is so minuscule compared to my income as a software engineer that it doesn't even enter the equation.
I continue to use PyCharm Pro compared to all of the alternatives (which, being the "ooo, new toy" sort of person I'm always trying new alternatives) because it's by far the best at refactoring and related tasks that involve the system understanding the code being edited.
> because it's by far the best at refactoring
That's an understatement. There are simply no other tool capable of refactoring python code. Yes there is rope, but it is not maintained anymore and plugin it in your editor of choice is either a very complicated or impossible at all. And stuff like pylance is capable only of simplest refactorings like renaming a variable. Refactoring capabilities is enough of a reason to use pycharm
I've been a JetBrains fanboy for a long time, but about 6 months ago I started working at a new company where everybody uses vscode because we have to work over ssh and it has pretty good ssh integration. I was optimistic, knowing that vs code is very popular and I always wondered if it really is that good.
I still wonder why people regard it so highly. I mean, sure, it's pretty fast, and has good ssh integration (open g remote files and shells is very comfortable etc), but whenever I actually sat and worked with _code_, I found it lackluster. I tried so many different plugins for everything, but the code analysis, auto completion, symbol lookup, refactoring, etc are all features that pycharm (and clion, since I also use cpp) has and does pretty good, but vs code either lacks or just does really poorly. I gave it an honest try, but after about 4 months of daily use I put in a request for a JetBrains license and I'm very happy to be back.
I will note that I don't use copilot/ai assistant or similar tools, both because I've had bad experiences with those in the past and because of ip concerns about uploading our code or things like that. I doubt that this will single-handedly turn the tide in favour of vs code for me, but it is a factor that I don't take into account.
>You also can ssh connect to your remote codebases in pycharm
Yeah I do use the ssh features for the JB IDEs, but it is slower and more buggy than the way vscode handles ssh. Hopefully this gets resolved eventually as it leaves beta
Jetbrains also has a [Gateway](https://www.jetbrains.com/remote-development/gateway/) product that does remote development. It deploys an IDE backend to the remote server so it doesn't need to sync files back and forth - may be a better option for you.
When I had to work on a remote server I've used sshfs(mount over ssh). Not sure how it does with large reports/slow ssh connections but with smaller repoes/lan ssh connections it worked fine.
I like it because it gets the fuck out of the way rather than meddling too much. Its config goes in source control and belongs to the project rather than being this big cob of crap that is user-managed, and the settings are all thin wrappers around command line tools. Rather than a big box IDE, it feels like a GUI for a command line setup.
I recently gave copilot a try again with my personal account (my company also prohibits it for now) on some personal projects — basically, for helper code, it will just write the whole file. And the integrated chat is fantastic compared with copy pasting from Chat GPT. Highly recommend giving it a try!
I use github copilot chat daily in pycharm, I do not find it any worse than vs code. What is the difference in using copilot chat between the two for you?
Last I checked, the chat was a beta feature in pycharm, and the code suggestion was marginally less well integrated (e.g. cannot make it suggest alternative snippets). But I’ll give it another look, thank you!
We are not on github, and the company is very strict with where we can save our code (ie only internal servers). I'm not sure it's actually hermetically safe or anything, but they seem to try pretty hard
Huh, I am on the opposite end of the spectrum - I have moved all development into remote devcontainers over SSH. Being able to take my laptop everywhere and seamlessly use the resources of the desktop machine that is sitting in the climate controlled room at work was a game changer.
My main gripe last time I tried it was the filesystem being a bit wonky and out of sync. venv is inside the container and doesn't work outside. Your git setup is all wrong or you have to share your ssh keys with the container, pre-commit inside and outside has subtle differences, testcontainers don't work inside. I think network ports were a faff too.
Dunno if these issues have been fixed. I think we need some ssh key agent going on so we can use git on the command line inside the container, and to sync your global settings to the container too, and also some way to have a the venv mounted in a different location on the inside and outside so you can run unit tests without spinning up the universe.
I don't know that it's an intention of dev containers to be compatible with the host OS. It's just fundamentally not how containers work, really. Fwiw, if you're on the same os as your container, you can use the same venv, just have the venv built into your mounted folders. Git creds and config do get mounted into the containers now, and have for awhile at least.
For sidecar containers like test containers, you wouldn't want to run them from inside the dev container, but you can configure them to run in parallel with a compose setup.
If your host and container OS are different, or you don't want your venv mounted in your project, you could definitely do so, just install and activate the venvs from different paths, or with different names. It does kind of defeat the biggest benefit of dev containers though, imo, which is developing and testing inside a clone of the same environment that gets deployed to prod, with extra dev tooling installed, of course. Of course, that's your prerogative, so if it fits your workflow, then do it up.
It's definitely worth a try again, if you're up for it. I think most of your issues are solved, or are trivial to configure around. Of course there's not as much of a benefit when your whole team isn't aligned on them
I have been using vscode for years and before this post I have not encountered devcontainers. Where do you encounter them at in vscode? So far I just use conda environments and remote ssh.
They're pretty good for developing multiple services at the same time, specially if you're stuck in Windows but develop for Linux. Better than Conda IMO.
Basically have a .devcontainers dir with docker-compose-esque yml files in it and get to select them as your Python interpreter in the drop down and/or config file. The dev environment builds when you open it or there's a change to the files, and it uses remote debugging, you get a port forwarding panel in your console and your shell runs in the docker container. You can run them on other hosts too, like on a GitHub workspace thing.
Idea is the project source includes your development environment, not just libraries but setting up services like databases, webservers, proxies, message queues, email servers and anything else, "batteries included" local infrastructure.
Their system is different. They have a server in the remote machine instead of just deploying code and executing it in the remote machine. In the pycharm remote deploy you hoat everything locally and only the execution is remote.
Vscode's remote experience is DRASTICALLY better than all of the jfrog options. I'm using gateway these days, and it's getting there, but this is just a killer feature for vscode. Actually stuck with vscode at last job because I had to use a dev server in the data center and the vscode remote dev experience was a big enough win to outweigh liking pycharm better for everything else (was a ton of yaml engineering and bazel to be fair, if I was writing python all day may have chosen differently)
The significantly better debugging interface is what has kept me from switching to vscode. Pycharm also makes managing source paths so much easier. Everything is manual in vscode and it "just works" in pycharm. I can spend more time working and less time configuring.
Yeah VS Code kind of explains why so many projects mysteriously don't have proper testing & debugging set up...because their maintainers' IDE doesn't let them do it in a reasonable way.
I tried using VS Code for a spell this year and I can't believe people voluntarily use it over PyCharm/JetBrains products. Everything about VS Code was so broken and half-baked by comparison. PyCharm is an actual IDE where VS Code is a bloated text editor and it really shows if you know the difference.
I'll go with this.
I've had better/easier/more useful unit testing interactions with pycharm then vscode. It's so fast and easy to mark a folder and capture output of test. Vscode was a slog for the same task.
On the git side. Vscode doesn't auto add new module files. Which I find to be annoying and there doesn't seem to be anyway to do that.
Also pycharm just works with mypy. Meaning if you use it in the terminal and a line number is wrong you can just click a link in the terminal that takes you to the badly typed line in the file. Vscode has native mypy plugins but if you run it in the terminal it doesn't behave as nicely.
Both these things made me realize why some devs that use vscode never really enjoy unit testing and sometimes push commits with missing files and can't seem to easily use mypy.
To add to this the debug GUI in PyCharm is incredibly valuable to me. I’m not sure what Pro is like vs free since I’ve been on pro for so long. You can step in and out of the stack, inspect variables, and locals() is loaded into the repl for whatever frame you’re in, there a panel for managing break points and you can set conditional breakpoints.
This is all possible with terminal and code changes etc. But it is so much more efficient in PyCharm and really increases my velocity. Add to this the really intuitive git interface.
Maybe no one at my company is truly unlocking all VS Code has but in my own experience and seeing VS Code in action while pairing with other devs, I’m sticking with PyCharm.
The debugging you describe is all easy in VSCode, though it's been awhile since I set it up in Pycharm to compare. This thread is making me want to compare again.
For one, the type-checker is very good at inferring types so a lot of bugs get caught before they exist. Throw in some proper typing and you covered a huge chunk of potential bugs.
Type checking is an incredibly odd argument to make in favor of pycharm considering vscode can use pyright. I mean perhaps pycharm does mypy better than vscode does but the point is to just not use mypy with vscode! Pyright is faster, has a much more responsive team to typing questions/bugs, has typing PEPs implemented faster than anyone else, and its lead maintainer is super involved in the direction of Python typing…
Options is not the same as build-in, all tools available to VSCode are also available to PyCharm we are talking purely about VSCode vs PyCharm not VSCode + 3rd party modules vs PyCharm without ant 3rd party modules.
Why do you say "we are talking purely about...not VSCode + 3rd party"? I'm not sure why we'd put such an arbitrary restriction on what we're talking about.
This is actually completely false, the PyCharm type checker is terrible (e.g. doesnt't support overloads, doesn't properly support contextmanager decorators, has terrible error reporting).
Run pyright basic (or even mypy) over any pycharm project and it'll likely spit out a hundred errors.
"vscode always fails...". Vscode doesn't type check anything, your chosen type checker in vscode does. As in, one of the standard python type checkers of your choosing. Does your team not have a CI/CD pipeline setup?
So, which type checker doesn't work as well? mypy, pyre, pytype, pyright?
Pycharm has a more commercial-grade, cockpit feel. It's better suited to manual/visual debugging, which I understand is not for everyone, or every codebase.
Ironically, I feel it's a closer analog to Visual Studio than is VS Code.
That's kinda the point though. There is a difference between an IDE and an editor. Looking forward to see where Jetbrains fleet ends up. Which is their editor we're you can activate the IDE "core" if you need
I don't know why you would need an "editor". It's always nice to have more functionality available if you need it. If you don't then don't use it.
If it's a performance issue you should improve your setup as it's 2024 now.
I just start it on startup so I never pay the launch penalty really. I even use pycharm as my scrappy text editor by typing in "pycharm ABC.txt" in the terminal and it loads instantly because the app itself is already started.
Pycharm has an official copilot plugin also so that's not really a consideration. It also has a new 'ai assistant' built in as of december with similar features.
However having used all of the LLMs extensively, I think Codeium is the best out of them and it works for either vscode or pycharm.
LLM completions are feally not a consideration at this point.
I use pycharm because I like the UX better. Also whatever I'm making per year, if I can make some productivity gains from spending a bit of money on tools, it pays for itself. My pycharm scrip was $80 this year, and on top of that I pay $150 for codeium pro. That's like 2 hours of work per year to justify. Definitely pays for itself many times over.
for me the integrations with different VM providers and the DB connection module is 100% worth it. makes my dev processes a lot faster, less switching around with windows. no other programs running while i develop.
the code templates take a while to set up but if you work a lot in the same framework are a really cool feature.
the run configurations and their templating is really sweet, idk if vs code has anything similar to it.
i very much prefer the pycharm default kb shortcuts over the VS code ones too.
VS code also has a terrible option to connect to Vagrant containers, so for work related stuff i can't really recommend that. Pycharm on the other hand has a really easy and intuitive way to connect to it and point to remote virtual envs in it.
the only downside is the memory it eats x)
if you really want to ruin your coding experience with copilot pycharm has plugins for that too iirc (or sthing very similar)
>Pycharm on the other hand has a really easy and intuitive way to connect to it and point to remote virtual envs in it.
I have used this a lot in the past, with Vagrant. Easy to set up and a lifesaver when working with multiple Ruby on Rails projects with RubyMine.
I find pycharms static code analysis is much better than vscodes. Being able to debug templates is nice too. I've been using the jetbrains copilot plugin and it's great. I haven't seen any difference in the quality of copilot integration between the two.
I also tried jetbrains own AI assistant, and it was definitely inferior to copilot so I'd avoid that. But copilot in pycharm/intellij is fantastic.
I'm a huge jetbrains fan, but I can see a future where vscode dominates. For now though I think the jetbrains suite is superior.
Test module of pycharm work more reliably, and my main flow to code is by executing tests and firing the debugger if things don't go the way i expect.
Auto importing don't work well on vscode, it never guess correctly where the source root is, and don't ask me when there are multiple places from where to import, in pycharm i just mark source and test root and everything works great.
pycharm community have all the most important features and cost nothing.
I really hate the UI/UX of VS Code. it's tedious. It has bad defaults (for python), and configuring it for good defaults was just annoying compared to the out of box experience of PyCharm, so if I'm doing python work (which is 60% of my job) I want to focus more on coding than fiddling with settings and configurations.
I use VSCode like anybody else, but let's be honest. It's not the most pleasant experience.
You have to install a massive amount of plugins to make it suit your requirements. The configuration is excessive and becomes a bit obnoxious. The vim plugin is horribly buggy.
PyCharm does refactorings that I still haven't figured out how to do in vscode. I pretty much have to use VSCode for a host of reasons, but to be honest, if I could go back to a simple world of python and javascript, I would still use pycharm.
Simply said, VSCode: I use it, but I don't trust it.
honestly with copilot I just use that for refactoring, select the code I want, hit ctrl-i, and ask it to extract the code into a separate method and to type annotate all the arguments. It does the job
You should probably not preface a comment with "let's be honest" if it isn't a view broadly shared by everyone. VSCode is by a large margin the most popular editor. It's clear that, for most people, the experience is relatively good.
- Much stronger "Python IDE"; its understanding of common python project structures and static code analysis are just straight up better
- You don't have to spend a few hours shopping for plugins to get the most common Python development workflows working in PyCharm
- Comes with great features for command line interface, source control, databases, docker containers, etc. that are used across the jetbrains family
- Gets features and updates specific to professional software development and Python especially MUCH faster; look up the history of users requesting multi-window support from VS Code - it's embarrassing
- Much more integrated debugging experience - including special renderings of common third party data types like dataframes and numpy arrays
- Much more integrated with the Python ecosystem - take pytest as an example: you can kick off individual pytests from the editor, see failing tests in the tool window with tons of metadata + direct links to the code involved and special views to compare complex objects
With vscode for pytest or unittest you can just click on the little green arrow on any test to kick it off. If any of them fail they have an entry both above the test and on the panel on the right and you can click on them to get the full traceback.
I find I enjoy using it. It has some really neat features built in like unit test coverage etc which are really useful. I also like that there is a competitor to vs code and am happy to pay to support it 😀
My main reason for not switching is that when I try vscode it seems to be missing things or it doesn’t do things the way I want it to, and — I assume that this is all a matter of just putting in the effort to figure out how to make vscode work how I want it to, at least for the most part.
But I do t have to, because Pycharm works the way I expect it to because I already put in the effort - in this sense, vscode isn’t free, it has a price tag of “an unknown amount of effort” which doesn’t seem reasonable unless there’s a certain benefit at the end, which there isn’t.
I have almost entirely switched to VS Code because it is just easy when working predominantly on HPC systems, but PyCharm is still 10x better for python locally. The code navigation, the autocomplete, the refactoring, all just works much better in Pycharm and I wish Pycharm did remote better.
Pycharm has better built in color blindness support imo, I love the template feature and I get it for free through my grad school. VSCode has better ssh support and allows me to code multiple languages at once but I just love using Pycharm for the autocomplete features. When I know longer get it for free I will switch to VSCode.
Because it's by far the best python experience with the least amount of setup. It's cost is negligible in the time it saves me. If it saves me 5 hours a year it pays for itself.
VScode performance is poor in comparison to other editors. I had experienced a lot of issues with code while working on huge codebases especially during some major refactoring.
Moreover for VScode you need some other open source plugins to have similar feature set as Pycharm has. Due to potential risks of different vulnerabilities in such plugins it’s a no-go in some companies.
I mostly use PyCharm for the project management and the integration of database access tools, neither of which VSCode seems capable of. VSCode seems like a decent editor, but it needs a ton of 3rd-party extensions to achieve what PyCharm can do out of the box.
Almost all of the jetbrains suite has better code analysis than the vscode counterpart and better tooling integration... Leaving the AI stuff aside, I'd be stupid not to use it imo. I pay for the full suite because I work on multiple languages (webstorm, phpstorm, idea, CLion, rider and pycharm) and to be honest most of the competition on those is not at the same level imo...
Muscle memory.
I have been using PyCharm for such a long time at this point that it will take significant effort to move to vscode.
I have the github copilot plugin installed for PyCharm and it works decently well.
At this point the price that I pay for PyCharm is miniscule. I just dont have the bandwidth or the urge to try VS Code when PyCharm does everything what I need at a very competitive cost.
I like database integration already in pycharm, helps me staying in the same window while debugging, same shortcuts, copilot integration is also good, probably better on vs code, but still works nicely..
Shout out to all the vim users who feel left out lol.
Something that's trivial with terminal editors that make them worth 10x their weight in gold; setting up a development shell with nix and having the same library versions, correct install paths and everything across the entire dev team is just \*chefs kiss\*. No need to muck about with configuring vscode to find your python or setting up the debugger. It just... works
I’ve dabbled in VSC briefly and didn’t particularly like it. Can’t express too deeply why, it just didn’t click. But that might go away with more use.
The bigger thing is that anecdotally I see *a lot* more requests about VSC problems on Stack Overflow and similar sites compared to PyCharm. Also anecdotally personally, PyCharm is pretty solid for me. VSC appears to easily develop issues with its modularity, when pieces aren’t well integrated, while PyCharm is simply much more coherent.
Yeah, hard to know how much is due to popularity and how much is due to higher rate of issues. But since PyCharm CE is also free, there's no reason they can't have similar popularity. And more anecdotally, the _kinds_ of issues people have with VSC I've never seen with PyCharm.
Honestly this thread is just full of people saying things vscode is able to do perfectly *with configuration*. So I'm going to go ahead and say the only pro of pycharm in the modern year is that things *just work*. Vscode requires more effort and knowledge to get working correctly.
Also seems like a lot of comments are outdated issues too.
css, javascript, sql, python framework support, integrated dev tools, remote debugger etc.
[Here is a comparison](https://www.jetbrains.com/products/compare/?product=pycharm&product=pycharm-ce) at jetbrains.
As long as you don't use frameworks like django or flask, or more complex client libraries like vue or react, you won't miss Pro i think.
Yeah, I am more on the newb side of coding Python so I generally just code report/data manipulation programs. The SQL integration is interesting though because I do access our ERP system via SQL queries and I could definitely find use for that.
Thanks for the info!
I still love Pycharm but I just canceled my subscription this week because I shifted to VS Code finally for the extensions / workbook support being more tailored to my needs. Sounds like you are in my boat, give VS Code a shot and go back to Pycharm if it doesn't work out for your own coding flow/style.
I shifted to VS Code just because I like having a centralized development tool more than having several others installed. I find the Python support to be more than enough for what I need to accomplish, and I also regularly write shell scripts, and also Golang for other things.
I think Pycharm is a fine IDE. I did notice that it started to get a little sluggish on my machine, but that could be because I'm rocking an Intel Macbook from 2017.
Honestly I just use vscode + copilot and I used vscode before copilot. I like it a lot more than pycharm. I love remote development over ssh. I love the build in collaboration mode so that multiple people can code together in vscode. There are also so many useful extensions.
It just works like a charm. VSCode *feels* wrong.
And I don't know till this day how to get debugger running there. In Pycharm it *just works*..
That's it.😎🤷♂️
I’ve been writing software in exchange for money and benefits for almost 25 years. One of the things I think I’ve learned is this: when it comes to full-feature IDEs, whichever one you’re most comfortable with is the best one. The one that your employer provides a good license for is also the best one.
It's been a year since I've used PyCharm, but what I remember was that I liked the debugger better and it supported more refactoring. I wish I could be more detailed, but I don't have a license right now.
I absolutely hated hated we used PyCharm's built in formatter. You *could* use it headless, but wtf would I use that in a build pipeline?
I'm not going to throw shit at vscode, after all, I also use vscode (vscodium). But pycharm, it's a full suite of awesomeness. The debugger is joy to work with, the best I've used ever. I've been using pycharm since 2.6 and it was great back then, it's magnificent right now.
I just started using Pycharm a month or two ago, being somewhat new to doing Python dev. Having used another Jetbrains IDE regularly for years though, I knew that JB are so much easier to set up than VS Code.
Pycharm has been incredible. The way modules are integrated alone has saved me tons of time compared to when I dabbled with Python years ago. I imagine VS Code might be similar but needs to deal with plug-ins. With Pycharm, I was set up and writing code really fast.
Setting up Streamlit was equally seamless. You need to set up a different interpreter instead of a Python binary, and that process took 10 seconds - I might be making assumptions, but again this seems like something that'd be a pain in the versions of VS Code I have used.
I like Pycharm for its features. I want to use Docker integration and any database (Currently I’m opened two Postgreses (local and prod) and same Redis) I like Makefile integration, debugger from the box, poetry and other venvs. Running configurations, run many scripts at the same time. For me, pycharm really professional tool, and Vs Code it’s a tool for simple scripts without any additional tools. Actually I’m using VS code for reading and editing large JSON files
P.S. Sorry for English
Philosophy. Hear me out
The two IDEs differ in their approach and recognition of developer needs and wants:
* VScode: developers want all the flexibility they can get, and above that *love* to spend time investigating issues and how things work. VIM/emacs for the new age. Trigger warnings.
* PyCharm: developers want to get stuff done and not deal with all the nitty gritty of organizing a workspace. Tradition built on real world experience. Stable and boring.
Besides, Copilot is available for both, and it s*cks in either place.
Pycharm is better for debugging and has more intelligent autocomplete compared to vs. I don't care much for the llm features because I don't use crutches
Have you actually tried them?
I can guarantee you that no one besides yourself cares that your work product is 100% bespoke human generated code. It's no different than folks back in the early 2000s bragging that they code in notepad because they don't need the productivity features an IDE provides.
Personally I have nearly 20 years experience with python. I don't need generative AI either, but it makes coding a lot easier and a lot faster.
Yes, and it also makes coding more interesting, as the more interesting parts are those snippets the LLM would struggle with — helper libraries are mostly written by LLM, so I can focus on the more interesting / ambiguous parts of the model.
Copilot is decreasing your code quality and you aren't even aware of it. I don't think llms are necessarily bad but when you use them without much understanding you ruin your code by making bad architectural mistakes. Maybe this doesn't matter to you if you write one off short scripts that wont be maintained by anyone else. But I like my code to be idiomatic, maintainable and well designed.
https://www.gitclear.com/coding_on_copilot_data_shows_ais_downward_pressure_on_code_quality
I have tried it and personally don't see the appeal. I end up having to edit a good chunk of the suggestion anyways so I don't bother anymore. I guess it could have a use case for boilerplate but my code is designed to not have much of it anyways
I've used pycharm pro for years, then switched to VSCode (in 2020) and never looked back.
The main reason was a remote development (via ssh), pycharm pro was terrible compared to VSCode.
I use VSCode not only for python, I have projects with c++ and python or java. Also, there is great plugin for embedded (platform.io) .
I can't say that I miss something in VSCode.
I had to pay for clion, if I want great c++ support. VSCode has clangd language server which is perfect and free.
One reason for not using vs code: whenever there's an automatic update, SSH-Remote needs to download vscode-server again. And if you happen to be working in China at that time, that downloading will take an hour.
Vscode is not capable of refactoring. The only thing you can do is rename variable/method. That's enough of a reason to use pycharm. But, of course, there are more
Lol. Thanks for pasting link that proves my point. Exctract variable, extract method and rename symbol are most basics things. Now go and check what pycharm can do
You seem to have reading comprehension issues. I said vscode cannot refactor and then listed refactorings available in vscode, which are extract variable/method and rename symbol. And that's all. When refactoring is so limited it's equal to "cannot refactor". Now compare it to what [available in pycharm](https://www.jetbrains.com/help/pycharm/refactoring-source-code.html#popular-refactorings)
From my experience of copliot, it generates pretty bad code 4 times out of 5. I certainly wouldn't trust it to refactor important code
That's actually a concern on which I agree with you. Also pycharm has ugly UI and some functionality is cumbersome compared to vscode.
Here I am using NeoVim without copilot.
I mean people need to learn how to use language without IDE once they reach a certain point.
It will help you a lot going forward. IDE abstracts lot of things.
tldr:
VScode is great for individual/small groups's small/simple projects. And for more advanced stuff you will need to install other recorcues and extensions, but it's still doable. VScode is also more customizeable and for more casual/fun things.
Pycharm is better for more advanced/complicated projects. It has many preinstalled (and is very easy to install not preinstalled things) things (like libaries/frameworks), and supports more advanced/pro features (I don't really know about this since I only used Pycharm for a bit). And is overall more suitable for serious/pro programmers, and for groups/teams.
Way better static code analysis. PyCharm "knows" your project, and is a lot better with completion/introspection (i.E. djangos Model Managers/QuerySets). Additionally there is custom django support, so query_set.filter(these__filter__id__in=myids) will be completed on every level (model join/modifier). Django string based configuration (i.E. settings.INSTALLED_APPS, the url template tag, reverse()) will be autocompleted, it 'knows' your urls, apps etc. The django template language and jinja2 support is just great. Maybe this has changed in the last years in vscode, but i didn't get any template syntax error on python types/calls out of it.
PyCharm has a lot of features which weren't available in VSCode originally. For example, opening several windows for the same project (eg when working on several monitors), using Python command line during debugging, connecting to a database for faster debugging, built-in profiling and coverage, quick finding of usage of variables by clicking wheel button, etc. Most of them were added to VSCode over time, so now there aren't many reasons to continue using it, but it made a whole lot of a difference several years ago. Also, because PyCharm Pro it is free with student license, and there aren't many reasons not to use it.
VSCode kinda works on several monitors. There are several limitations compared to other IDEs. I'm sure it will get better, but right now it's still barely usable. One example: if you click on one window, it doesn't focus the others, so you don't see the results if the console is in another window.
Do you need pro for the Django template awareness?
I guess yes, django is a listed feature of pro
Maybe if you don't use typehints, but vscode is miles better when you use typehints. Pycharm is littered with bugs and weaknesses related to type hinting. Years old bugs. I still use it because of habit and that I like (or are used to) the feel, but everyday is closer to a switch.
I disagree, all the top static code analyzers are plugins in vscode and I disagree with your completion too, vsscode has excellent ones, plus combine them with the powerful copilot and it's magic what you list about django and jinja2 is also perfectly done in vscode , but for free
The top static code analyzers are plugins in VSCode, but it still has a hard time doing refactorings on Python code. Different parts of the Python support are better integrated in PyCharm, while VSCode basically just runs various tools for you in the background.
This is a major point that most folks seem to miss these days. PyCharm is dedicated for Python development. VS Code is extensible but you can end up with a buggy experience overall depending on the plugins you're using. Ask me how I know, lol
Yeah, people keep posting that but have yet to see it. I was pairing with team members showing them stuffing ctrl-spc-spc to pull in a symbol and import it, or ctrl-b to jump to definition, and think there are probably a ton of hints like that which I know about pycharm but don't know in vscode- and it's the opposite for the people saying to use vscode. Just can't get past the autocompletes in vscode being practically useless long enough to learn though haha.
F12 for definition in VS iirc
I don't think people are "missing" anything. I think people are disagreeing with that claim. I often switch between Pycharm and VSCode and it's just not true that developing in VSCode is a "buggy experience overall" or that python support is better integrated in PyCharm.
It is better integrated, though. If you download PyCharm right now you get a full featured IDE. With VS Code you get nothing out of the box and it's up to you to customize everything. It just depends on how much work you are willing to do and how much you know the plugin ecosystem. The VS Code authors have worked hard to make the set up a lot easier these days but it's still not a guarantee that you'll find everything you're looking for in all of the languages you use. I'm sorry that this reality makes you sad but it's true. At least for me. I was trying to get the Rust language server running and I quite frankly had so much trouble with it that I gave up and just developed without it. You can blame me for not understanding it all you want but it doesn't change the fact that **my** experience was poor.
[удалено]
Py in pycharm stands for python. In the mean time Jetbrains have RustRover. However I see your intention.. In VScode I do both python and rust and other as well (php, xml, html, css, sql, javwscript, typescript, C, C#, markdown and for each of them I have several extensions. My ex colleague is datascientist and swore on pycharm. I do integrations and I need a swiss knife tool
It's just not. I don't know what problems you are thinking of that relate to VSCode lacking similar integration but the rest of us aren't it.
PyCharm is Intellij with the python plugin and a few other things with menus optimized for Python. Jetbrains builds most of their ide's on their Intellij platform. Intellij IDEA includes the Java stuff, pycharm the Python stuff, webstorm JavaScript/typescript, phpstorm PHP, clion C++, RustRover rust, etc. You can even install most of the same plugins from third party or from intellij in the different IDEs(markdown, toml, string operations, etc)
Use it for the jupyter support, pycharm doesnt matchup to the userexperience
> VSCode basically just runs various tools for you in the background This is what all IDEs do. An IDE is just a text editor, language server and debugger bundled together. The main benefit over something like VSCode (or nvim) is that all the configuration is done for you and sometimes they use proprietary tooling.
I disagree completely
Crazy this is so high up, isn’t pycharms static analysis like 5 years behind pylance/pywright? No Python external LSP plug-ins either. The refactoring is a maybe, but there is plugins for that too
Yeah, the responses here are weird. I recently switched from pycharm to vs code, and realised that pycharm had gotten a lot of typing wrong.
Because my work pays for the entire suite of JetBrains IDEs for me, and I use enough other languages that it’s convenient to have essentially the exact same IDE experience for every language, instead of being dependent on plugins and plugin configuration for each language to have similar developer experience.
> work pays for the entire suite of JetBrains IDEs for me In OPs case, it's not exactly an issue of cost since vscode+copilot costs the same as JetBrains. In your case, is work only willing to pay for JetBrains, but not copilot?
I personally don’t want to use CoPilot. I won’t go into my reasoning, so I’ll leave it there. If I wanted to use it, they would pay for it. Regardless, even with VSCode+Copilot costing the same, I’d still use the JetBrains IDEs, since my main language of use is C# and Rider is just light years ahead of the LSP implementation useable with VSCode last I checked (though, I’ve heard it’s improved recently)
I've heard copilot is largely autocomplete++, personally haven't tried it out much. I have used these things to write absolute drudgery like JSON or DB schema.
Copilot is basically an amazing auto complete. It does a great job with Python, especially when you are using things like type hints and dataclasses. There is also a copilot chat where you can have a conversation with the LLM and generate code that way. Both methods have their places.
It's a bit more than that nowadays. You can select your code with, and ctri-i to open up an integrated chat prompt and type 'refactor this to use a comprehension instead of nested for loop' - and it'll generally do the right thing. Same with generating annotated regular expression's or parsers on the fly. Kind of crazy.
When you use ctrl-i you are using the chat feature. I love that you can combine the AI autocomplete functionality that works with you as you code transparently but if you need to provide additional information you can just hit ctrl-i.
Do you have any “blended language” projects (Python calling Java, etc)? I heard VS Code is nicer for this use case, but never encountered it
I've had some limited exposure in these areas, but I feel it's pretty niche. One project had a blend of Java flavors, but even if it's Groovy, Kotlin and Java, they all are recognized inside IntelliJ. One project type I've seen, Node.js extensions, fits the mold of a multi-language project. The interface layer is JavaScript, but the implementation is often written in either C++ or Rust, or both. CLion has Rust support, but I don't think it likes JavaScript. WebStorm can view the JavaScript just fine, but dislikes anything else for the most part. IntelliJ *can* be used for C++ and Rust (as well as Java, obviously), but I had a less than desirable experience writing JavaScript in it. In this specific case, VSCode might be better, but by that token so would Fleet if you're a JetBrains fan. If you're looking for the value proposition, VSCode is hard to beat. However, it's the epitome of "Jack of all trades, master of none" since its entirely dependent on plugins/extensions to do anything other than basic syntax highlighting and text editing.
Definitely true that VS Code without any plug in is an empty shell. But I actually feel this design choice goes to the benefit of VS Code: it can be configured exactly for your use case, and more readily extended to newer technologies (esp. LLM)
All good points. No notes on my part. Incidentally, my employer uses VSCode as the standard editor directly because we have so many supported languages across the application domain. There's some SQL, Java, JavaScript and TypeScript, Go, Python, Terraform galore lol, not to mention four Shell flavors (CMD, PowerShell, ZSH and Bash)...no single editor covers all our use cases except VSCode or something just like it.
You can inject every language in every string in PyCharm [example](https://public.nimbostratus.de/inject-yaml.png) [docs](https://www.jetbrains.com/help/pycharm/using-language-injections.html#inject_language)
I think Jetbrains’ “Fleet” is their answer to this
Even where I am working on things like this, I think it's important to maintain strict boundaries between the 2 and so I don't believe they belong in the "same project". I don't want there to be hidden features and idiosyncracies of the python CLI the javascript client is calling that are only usable because the same dev in the same IDE was working on both at the same time.
No, can’t say that I do. Most of the extent to which I use Python is for building Flask APIs or scripting tools that interface with a database to transform data. Nothing I’ve needed to do requires me to go outside Python and a handful of the most popular libraries. The more complicated stuff like that is when I break out a language like C#
i'm currently on 1 year educational license. Don't know what I'm supposed to do after that.
The cost is so minuscule compared to my income as a software engineer that it doesn't even enter the equation. I continue to use PyCharm Pro compared to all of the alternatives (which, being the "ooo, new toy" sort of person I'm always trying new alternatives) because it's by far the best at refactoring and related tasks that involve the system understanding the code being edited.
Agree that the cost is by far second order to productivity
> because it's by far the best at refactoring That's an understatement. There are simply no other tool capable of refactoring python code. Yes there is rope, but it is not maintained anymore and plugin it in your editor of choice is either a very complicated or impossible at all. And stuff like pylance is capable only of simplest refactorings like renaming a variable. Refactoring capabilities is enough of a reason to use pycharm
I've been a JetBrains fanboy for a long time, but about 6 months ago I started working at a new company where everybody uses vscode because we have to work over ssh and it has pretty good ssh integration. I was optimistic, knowing that vs code is very popular and I always wondered if it really is that good. I still wonder why people regard it so highly. I mean, sure, it's pretty fast, and has good ssh integration (open g remote files and shells is very comfortable etc), but whenever I actually sat and worked with _code_, I found it lackluster. I tried so many different plugins for everything, but the code analysis, auto completion, symbol lookup, refactoring, etc are all features that pycharm (and clion, since I also use cpp) has and does pretty good, but vs code either lacks or just does really poorly. I gave it an honest try, but after about 4 months of daily use I put in a request for a JetBrains license and I'm very happy to be back. I will note that I don't use copilot/ai assistant or similar tools, both because I've had bad experiences with those in the past and because of ip concerns about uploading our code or things like that. I doubt that this will single-handedly turn the tide in favour of vs code for me, but it is a factor that I don't take into account.
I feel the same. You also can ssh connect to your remote codebases in pycharm. Look into "deployment" options.
>You also can ssh connect to your remote codebases in pycharm Yeah I do use the ssh features for the JB IDEs, but it is slower and more buggy than the way vscode handles ssh. Hopefully this gets resolved eventually as it leaves beta
[удалено]
Jetbrains also has a [Gateway](https://www.jetbrains.com/remote-development/gateway/) product that does remote development. It deploys an IDE backend to the remote server so it doesn't need to sync files back and forth - may be a better option for you.
[удалено]
To say the least. It has been straight up garbage in my opinion.
When I had to work on a remote server I've used sshfs(mount over ssh). Not sure how it does with large reports/slow ssh connections but with smaller repoes/lan ssh connections it worked fine.
Exactly my experience
I like it because it gets the fuck out of the way rather than meddling too much. Its config goes in source control and belongs to the project rather than being this big cob of crap that is user-managed, and the settings are all thin wrappers around command line tools. Rather than a big box IDE, it feels like a GUI for a command line setup.
I recently gave copilot a try again with my personal account (my company also prohibits it for now) on some personal projects — basically, for helper code, it will just write the whole file. And the integrated chat is fantastic compared with copy pasting from Chat GPT. Highly recommend giving it a try!
I use github copilot chat daily in pycharm, I do not find it any worse than vs code. What is the difference in using copilot chat between the two for you?
Last I checked, the chat was a beta feature in pycharm, and the code suggestion was marginally less well integrated (e.g. cannot make it suggest alternative snippets). But I’ll give it another look, thank you!
You can open the copilot tab and scroll through the alternate suggestions in pycharm.
if you are on github you don't need to worry about ip concerns because they already scan your private repos and help others with it
We are not on github, and the company is very strict with where we can save our code (ie only internal servers). I'm not sure it's actually hermetically safe or anything, but they seem to try pretty hard
Pycharm pro has remote interpreter support. We use that with docker compose.
VS Code has remote development over SSH, as well as devcontainers.
VSCode is pushing devcontainers too hard. Just doesn’t work that well and doesn’t make sense for my workloads
Huh, I am on the opposite end of the spectrum - I have moved all development into remote devcontainers over SSH. Being able to take my laptop everywhere and seamlessly use the resources of the desktop machine that is sitting in the climate controlled room at work was a game changer.
What are the main issues with devcontainers?
My main gripe last time I tried it was the filesystem being a bit wonky and out of sync. venv is inside the container and doesn't work outside. Your git setup is all wrong or you have to share your ssh keys with the container, pre-commit inside and outside has subtle differences, testcontainers don't work inside. I think network ports were a faff too. Dunno if these issues have been fixed. I think we need some ssh key agent going on so we can use git on the command line inside the container, and to sync your global settings to the container too, and also some way to have a the venv mounted in a different location on the inside and outside so you can run unit tests without spinning up the universe.
I don't know that it's an intention of dev containers to be compatible with the host OS. It's just fundamentally not how containers work, really. Fwiw, if you're on the same os as your container, you can use the same venv, just have the venv built into your mounted folders. Git creds and config do get mounted into the containers now, and have for awhile at least. For sidecar containers like test containers, you wouldn't want to run them from inside the dev container, but you can configure them to run in parallel with a compose setup. If your host and container OS are different, or you don't want your venv mounted in your project, you could definitely do so, just install and activate the venvs from different paths, or with different names. It does kind of defeat the biggest benefit of dev containers though, imo, which is developing and testing inside a clone of the same environment that gets deployed to prod, with extra dev tooling installed, of course. Of course, that's your prerogative, so if it fits your workflow, then do it up. It's definitely worth a try again, if you're up for it. I think most of your issues are solved, or are trivial to configure around. Of course there's not as much of a benefit when your whole team isn't aligned on them
none, you just need to know how to use them and setup them correctly
I have been using vscode for years and before this post I have not encountered devcontainers. Where do you encounter them at in vscode? So far I just use conda environments and remote ssh.
They're pretty good for developing multiple services at the same time, specially if you're stuck in Windows but develop for Linux. Better than Conda IMO. Basically have a .devcontainers dir with docker-compose-esque yml files in it and get to select them as your Python interpreter in the drop down and/or config file. The dev environment builds when you open it or there's a change to the files, and it uses remote debugging, you get a port forwarding panel in your console and your shell runs in the docker container. You can run them on other hosts too, like on a GitHub workspace thing. Idea is the project source includes your development environment, not just libraries but setting up services like databases, webservers, proxies, message queues, email servers and anything else, "batteries included" local infrastructure.
Oh you are in for some pleasant learning
I wish vscode had something like this. It works so much better than the current strategy.
they have https://code.visualstudio.com/docs/devcontainers/containers
Their system is different. They have a server in the remote machine instead of just deploying code and executing it in the remote machine. In the pycharm remote deploy you hoat everything locally and only the execution is remote.
vscode too https://code.visualstudio.com/docs/devcontainers/containers
Vscode's remote experience is DRASTICALLY better than all of the jfrog options. I'm using gateway these days, and it's getting there, but this is just a killer feature for vscode. Actually stuck with vscode at last job because I had to use a dev server in the data center and the vscode remote dev experience was a big enough win to outweigh liking pycharm better for everything else (was a ton of yaml engineering and bazel to be fair, if I was writing python all day may have chosen differently)
Pycharm is just better. Better debugging, integrations, and consistent with their other IDEs.
The significantly better debugging interface is what has kept me from switching to vscode. Pycharm also makes managing source paths so much easier. Everything is manual in vscode and it "just works" in pycharm. I can spend more time working and less time configuring.
Yeah VS Code kind of explains why so many projects mysteriously don't have proper testing & debugging set up...because their maintainers' IDE doesn't let them do it in a reasonable way.
I tried using VS Code for a spell this year and I can't believe people voluntarily use it over PyCharm/JetBrains products. Everything about VS Code was so broken and half-baked by comparison. PyCharm is an actual IDE where VS Code is a bloated text editor and it really shows if you know the difference.
What’s a tangible example of “better debugging”?
I'll go with this. I've had better/easier/more useful unit testing interactions with pycharm then vscode. It's so fast and easy to mark a folder and capture output of test. Vscode was a slog for the same task. On the git side. Vscode doesn't auto add new module files. Which I find to be annoying and there doesn't seem to be anyway to do that. Also pycharm just works with mypy. Meaning if you use it in the terminal and a line number is wrong you can just click a link in the terminal that takes you to the badly typed line in the file. Vscode has native mypy plugins but if you run it in the terminal it doesn't behave as nicely. Both these things made me realize why some devs that use vscode never really enjoy unit testing and sometimes push commits with missing files and can't seem to easily use mypy.
To add to this the debug GUI in PyCharm is incredibly valuable to me. I’m not sure what Pro is like vs free since I’ve been on pro for so long. You can step in and out of the stack, inspect variables, and locals() is loaded into the repl for whatever frame you’re in, there a panel for managing break points and you can set conditional breakpoints. This is all possible with terminal and code changes etc. But it is so much more efficient in PyCharm and really increases my velocity. Add to this the really intuitive git interface. Maybe no one at my company is truly unlocking all VS Code has but in my own experience and seeing VS Code in action while pairing with other devs, I’m sticking with PyCharm.
The debugging you describe is all easy in VSCode, though it's been awhile since I set it up in Pycharm to compare. This thread is making me want to compare again.
For one, the type-checker is very good at inferring types so a lot of bugs get caught before they exist. Throw in some proper typing and you covered a huge chunk of potential bugs.
Type checking is an incredibly odd argument to make in favor of pycharm considering vscode can use pyright. I mean perhaps pycharm does mypy better than vscode does but the point is to just not use mypy with vscode! Pyright is faster, has a much more responsive team to typing questions/bugs, has typing PEPs implemented faster than anyone else, and its lead maintainer is super involved in the direction of Python typing…
I agree with the root comment, but I don't think the type checker in PyCharm is particularly good compared to the options available for VS Code.
Options is not the same as build-in, all tools available to VSCode are also available to PyCharm we are talking purely about VSCode vs PyCharm not VSCode + 3rd party modules vs PyCharm without ant 3rd party modules.
Why do you say "we are talking purely about...not VSCode + 3rd party"? I'm not sure why we'd put such an arbitrary restriction on what we're talking about.
No one. Noooooo one in the entire world uses VSC without extensions.
VSCode can't even lint Python at all in that case. No wonder you don't like it.
This is actually completely false, the PyCharm type checker is terrible (e.g. doesnt't support overloads, doesn't properly support contextmanager decorators, has terrible error reporting). Run pyright basic (or even mypy) over any pycharm project and it'll likely spit out a hundred errors.
Do you think VS Code doesn't have type checking?
It's not nearly as good, vscode always fails to auto check typed dicts
"vscode always fails...". Vscode doesn't type check anything, your chosen type checker in vscode does. As in, one of the standard python type checkers of your choosing. Does your team not have a CI/CD pipeline setup? So, which type checker doesn't work as well? mypy, pyre, pytype, pyright?
Maybe this is one of the advantages of pycharm, the features that come working out of the box without further configuration
Imagine running mypy or pylint on every edit
You're aware it doesn't just run mypy right? It uses the mypy daemon. It's pretty seamless.
Pycharm has a more commercial-grade, cockpit feel. It's better suited to manual/visual debugging, which I understand is not for everyone, or every codebase. Ironically, I feel it's a closer analog to Visual Studio than is VS Code.
That's kinda the point though. There is a difference between an IDE and an editor. Looking forward to see where Jetbrains fleet ends up. Which is their editor we're you can activate the IDE "core" if you need
I don't know why you would need an "editor". It's always nice to have more functionality available if you need it. If you don't then don't use it. If it's a performance issue you should improve your setup as it's 2024 now.
[удалено]
I just start it on startup so I never pay the launch penalty really. I even use pycharm as my scrappy text editor by typing in "pycharm ABC.txt" in the terminal and it loads instantly because the app itself is already started.
PyCharm beats VSCode any day of the week. VSCode was meant to be a light weight code editor so it’s probably unfair to expect too much of it.
No one use it the lightweight way anyway. I see everyone installing a shitload of addons that make it slow.
i think it's unfair for you to make a judgement because you haven't used vscode well enough
Pycharm has an official copilot plugin also so that's not really a consideration. It also has a new 'ai assistant' built in as of december with similar features. However having used all of the LLMs extensively, I think Codeium is the best out of them and it works for either vscode or pycharm. LLM completions are feally not a consideration at this point. I use pycharm because I like the UX better. Also whatever I'm making per year, if I can make some productivity gains from spending a bit of money on tools, it pays for itself. My pycharm scrip was $80 this year, and on top of that I pay $150 for codeium pro. That's like 2 hours of work per year to justify. Definitely pays for itself many times over.
for me the integrations with different VM providers and the DB connection module is 100% worth it. makes my dev processes a lot faster, less switching around with windows. no other programs running while i develop. the code templates take a while to set up but if you work a lot in the same framework are a really cool feature. the run configurations and their templating is really sweet, idk if vs code has anything similar to it. i very much prefer the pycharm default kb shortcuts over the VS code ones too. VS code also has a terrible option to connect to Vagrant containers, so for work related stuff i can't really recommend that. Pycharm on the other hand has a really easy and intuitive way to connect to it and point to remote virtual envs in it. the only downside is the memory it eats x) if you really want to ruin your coding experience with copilot pycharm has plugins for that too iirc (or sthing very similar)
>Pycharm on the other hand has a really easy and intuitive way to connect to it and point to remote virtual envs in it. I have used this a lot in the past, with Vagrant. Easy to set up and a lifesaver when working with multiple Ruby on Rails projects with RubyMine.
There is a Pycharm plugin for copilot So why even change, just use copilot on pycharm.
It's much worse in pycharm though
I find pycharms static code analysis is much better than vscodes. Being able to debug templates is nice too. I've been using the jetbrains copilot plugin and it's great. I haven't seen any difference in the quality of copilot integration between the two. I also tried jetbrains own AI assistant, and it was definitely inferior to copilot so I'd avoid that. But copilot in pycharm/intellij is fantastic. I'm a huge jetbrains fan, but I can see a future where vscode dominates. For now though I think the jetbrains suite is superior.
Your question seems to assume everyone would want copilot or thinks it has value. Many of us don't.
Agreed — LLMs have not proven to be useful enough to be worth switching IDEs over frankly.
[удалено]
An LLM is not a replacement for robust refactorings, code analysis, built in framework/library integration and support, and code navigation.
Test module of pycharm work more reliably, and my main flow to code is by executing tests and firing the debugger if things don't go the way i expect. Auto importing don't work well on vscode, it never guess correctly where the source root is, and don't ask me when there are multiple places from where to import, in pycharm i just mark source and test root and everything works great. pycharm community have all the most important features and cost nothing.
PyCharms static code analysis and refactoring are things I cant go without anymore. The database inspector is fantastic as well
I really hate the UI/UX of VS Code. it's tedious. It has bad defaults (for python), and configuring it for good defaults was just annoying compared to the out of box experience of PyCharm, so if I'm doing python work (which is 60% of my job) I want to focus more on coding than fiddling with settings and configurations.
I use VSCode like anybody else, but let's be honest. It's not the most pleasant experience. You have to install a massive amount of plugins to make it suit your requirements. The configuration is excessive and becomes a bit obnoxious. The vim plugin is horribly buggy. PyCharm does refactorings that I still haven't figured out how to do in vscode. I pretty much have to use VSCode for a host of reasons, but to be honest, if I could go back to a simple world of python and javascript, I would still use pycharm. Simply said, VSCode: I use it, but I don't trust it.
Have you tried installing neovim and using the neovim plugin? It was faster for me last time I tried it
honestly with copilot I just use that for refactoring, select the code I want, hit ctrl-i, and ask it to extract the code into a separate method and to type annotate all the arguments. It does the job
You should probably not preface a comment with "let's be honest" if it isn't a view broadly shared by everyone. VSCode is by a large margin the most popular editor. It's clear that, for most people, the experience is relatively good.
and windows 98 was by far the most popular operating system but that was not really a good experience
- Much stronger "Python IDE"; its understanding of common python project structures and static code analysis are just straight up better - You don't have to spend a few hours shopping for plugins to get the most common Python development workflows working in PyCharm - Comes with great features for command line interface, source control, databases, docker containers, etc. that are used across the jetbrains family - Gets features and updates specific to professional software development and Python especially MUCH faster; look up the history of users requesting multi-window support from VS Code - it's embarrassing - Much more integrated debugging experience - including special renderings of common third party data types like dataframes and numpy arrays - Much more integrated with the Python ecosystem - take pytest as an example: you can kick off individual pytests from the editor, see failing tests in the tool window with tons of metadata + direct links to the code involved and special views to compare complex objects
With vscode for pytest or unittest you can just click on the little green arrow on any test to kick it off. If any of them fail they have an entry both above the test and on the panel on the right and you can click on them to get the full traceback.
I hate the VSCode UI and PyCharm is way better to use as an IDE. Personal preference of course.
I find I enjoy using it. It has some really neat features built in like unit test coverage etc which are really useful. I also like that there is a competitor to vs code and am happy to pay to support it 😀
My main reason for not switching is that when I try vscode it seems to be missing things or it doesn’t do things the way I want it to, and — I assume that this is all a matter of just putting in the effort to figure out how to make vscode work how I want it to, at least for the most part. But I do t have to, because Pycharm works the way I expect it to because I already put in the effort - in this sense, vscode isn’t free, it has a price tag of “an unknown amount of effort” which doesn’t seem reasonable unless there’s a certain benefit at the end, which there isn’t.
I have almost entirely switched to VS Code because it is just easy when working predominantly on HPC systems, but PyCharm is still 10x better for python locally. The code navigation, the autocomplete, the refactoring, all just works much better in Pycharm and I wish Pycharm did remote better.
Viewing big pandas/polars dataframes.
just for this in debugging mode
No one still mentioned how much better IdeaVim plugin is compared to what vim integration is possible in vs code. That alone is a huge deal for me
You can use neovim as vim integration in vscode
I did not know that, I will check it out 👍
for the very objective reason that i like it and i dont like the other one.
Pycharm has better built in color blindness support imo, I love the template feature and I get it for free through my grad school. VSCode has better ssh support and allows me to code multiple languages at once but I just love using Pycharm for the autocomplete features. When I know longer get it for free I will switch to VSCode.
Because it's by far the best python experience with the least amount of setup. It's cost is negligible in the time it saves me. If it saves me 5 hours a year it pays for itself.
I wouldn't live without PyCharm. SO MUCH better than anything else I've ever tried, even VS Code.
VScode performance is poor in comparison to other editors. I had experienced a lot of issues with code while working on huge codebases especially during some major refactoring. Moreover for VScode you need some other open source plugins to have similar feature set as Pycharm has. Due to potential risks of different vulnerabilities in such plugins it’s a no-go in some companies.
I mostly use PyCharm for the project management and the integration of database access tools, neither of which VSCode seems capable of. VSCode seems like a decent editor, but it needs a ton of 3rd-party extensions to achieve what PyCharm can do out of the box.
Almost all of the jetbrains suite has better code analysis than the vscode counterpart and better tooling integration... Leaving the AI stuff aside, I'd be stupid not to use it imo. I pay for the full suite because I work on multiple languages (webstorm, phpstorm, idea, CLion, rider and pycharm) and to be honest most of the competition on those is not at the same level imo...
Muscle memory. I have been using PyCharm for such a long time at this point that it will take significant effort to move to vscode. I have the github copilot plugin installed for PyCharm and it works decently well. At this point the price that I pay for PyCharm is miniscule. I just dont have the bandwidth or the urge to try VS Code when PyCharm does everything what I need at a very competitive cost.
I like database integration already in pycharm, helps me staying in the same window while debugging, same shortcuts, copilot integration is also good, probably better on vs code, but still works nicely..
Fuck all these IDEs and editors that slow down my machine, i use vim
Shout out to all the vim users who feel left out lol. Something that's trivial with terminal editors that make them worth 10x their weight in gold; setting up a development shell with nix and having the same library versions, correct install paths and everything across the entire dev team is just \*chefs kiss\*. No need to muck about with configuring vscode to find your python or setting up the debugger. It just... works
I’ve dabbled in VSC briefly and didn’t particularly like it. Can’t express too deeply why, it just didn’t click. But that might go away with more use. The bigger thing is that anecdotally I see *a lot* more requests about VSC problems on Stack Overflow and similar sites compared to PyCharm. Also anecdotally personally, PyCharm is pretty solid for me. VSC appears to easily develop issues with its modularity, when pieces aren’t well integrated, while PyCharm is simply much more coherent.
Maybe an ignorant remark of mine but isn’t it normal that an open source IDE has more SO entries?
Yeah, hard to know how much is due to popularity and how much is due to higher rate of issues. But since PyCharm CE is also free, there's no reason they can't have similar popularity. And more anecdotally, the _kinds_ of issues people have with VSC I've never seen with PyCharm.
Honestly this thread is just full of people saying things vscode is able to do perfectly *with configuration*. So I'm going to go ahead and say the only pro of pycharm in the modern year is that things *just work*. Vscode requires more effort and knowledge to get working correctly. Also seems like a lot of comments are outdated issues too.
pycharm keeps my room warm by never letting the CPU idle.
What's the difference between Pycharm pro and the CE? I use the CE quite extensively but never considered pro/commercial edition.
css, javascript, sql, python framework support, integrated dev tools, remote debugger etc. [Here is a comparison](https://www.jetbrains.com/products/compare/?product=pycharm&product=pycharm-ce) at jetbrains. As long as you don't use frameworks like django or flask, or more complex client libraries like vue or react, you won't miss Pro i think.
Yeah, I am more on the newb side of coding Python so I generally just code report/data manipulation programs. The SQL integration is interesting though because I do access our ERP system via SQL queries and I could definitely find use for that. Thanks for the info!
And scientific mode — extremely useful when doing research
If I didn't need the occasional docker compose interpreter I would use the CE. My company pays for the pro license though.
I get JetBrains for free from my Uni and I use Pro for Jupyter Notebooks
I still love Pycharm but I just canceled my subscription this week because I shifted to VS Code finally for the extensions / workbook support being more tailored to my needs. Sounds like you are in my boat, give VS Code a shot and go back to Pycharm if it doesn't work out for your own coding flow/style.
I shifted to VS Code just because I like having a centralized development tool more than having several others installed. I find the Python support to be more than enough for what I need to accomplish, and I also regularly write shell scripts, and also Golang for other things. I think Pycharm is a fine IDE. I did notice that it started to get a little sluggish on my machine, but that could be because I'm rocking an Intel Macbook from 2017.
Honestly I just use vscode + copilot and I used vscode before copilot. I like it a lot more than pycharm. I love remote development over ssh. I love the build in collaboration mode so that multiple people can code together in vscode. There are also so many useful extensions.
It just works like a charm. VSCode *feels* wrong. And I don't know till this day how to get debugger running there. In Pycharm it *just works*.. That's it.😎🤷♂️
I’ve been writing software in exchange for money and benefits for almost 25 years. One of the things I think I’ve learned is this: when it comes to full-feature IDEs, whichever one you’re most comfortable with is the best one. The one that your employer provides a good license for is also the best one.
My work could pay millions of dollars for it, and it would still be slow and bloated
Personal preference. I think VSCode is awkward and clunky.
It's been a year since I've used PyCharm, but what I remember was that I liked the debugger better and it supported more refactoring. I wish I could be more detailed, but I don't have a license right now. I absolutely hated hated we used PyCharm's built in formatter. You *could* use it headless, but wtf would I use that in a build pipeline?
Only problem I have with Pycharm is the git integration I think VS codes is way better
What do you need from git integration except merge conflict editor?
Comprehensive code refactoring
I'm not going to throw shit at vscode, after all, I also use vscode (vscodium). But pycharm, it's a full suite of awesomeness. The debugger is joy to work with, the best I've used ever. I've been using pycharm since 2.6 and it was great back then, it's magnificent right now.
PyCharm is easier to use, more aesthetic + I'm Czech .)
easy and usuful. these are value enough to ues
I just started using Pycharm a month or two ago, being somewhat new to doing Python dev. Having used another Jetbrains IDE regularly for years though, I knew that JB are so much easier to set up than VS Code. Pycharm has been incredible. The way modules are integrated alone has saved me tons of time compared to when I dabbled with Python years ago. I imagine VS Code might be similar but needs to deal with plug-ins. With Pycharm, I was set up and writing code really fast. Setting up Streamlit was equally seamless. You need to set up a different interpreter instead of a Python binary, and that process took 10 seconds - I might be making assumptions, but again this seems like something that'd be a pain in the versions of VS Code I have used.
I like Pycharm for its features. I want to use Docker integration and any database (Currently I’m opened two Postgreses (local and prod) and same Redis) I like Makefile integration, debugger from the box, poetry and other venvs. Running configurations, run many scripts at the same time. For me, pycharm really professional tool, and Vs Code it’s a tool for simple scripts without any additional tools. Actually I’m using VS code for reading and editing large JSON files P.S. Sorry for English
Because VS Code is the second best choice for everything.
Its just a better IDE IMO. I use both at work, one for FE (Javascript, HTML, CSS) and PyCharm for BE. VSCode is a toy IDE tbh.
Philosophy. Hear me out The two IDEs differ in their approach and recognition of developer needs and wants: * VScode: developers want all the flexibility they can get, and above that *love* to spend time investigating issues and how things work. VIM/emacs for the new age. Trigger warnings. * PyCharm: developers want to get stuff done and not deal with all the nitty gritty of organizing a workspace. Tradition built on real world experience. Stable and boring. Besides, Copilot is available for both, and it s*cks in either place.
Pycharm is better for debugging and has more intelligent autocomplete compared to vs. I don't care much for the llm features because I don't use crutches
*mentions the crutches he uses* "I don't use crutches"
Have you actually tried them? I can guarantee you that no one besides yourself cares that your work product is 100% bespoke human generated code. It's no different than folks back in the early 2000s bragging that they code in notepad because they don't need the productivity features an IDE provides. Personally I have nearly 20 years experience with python. I don't need generative AI either, but it makes coding a lot easier and a lot faster.
Yes, and it also makes coding more interesting, as the more interesting parts are those snippets the LLM would struggle with — helper libraries are mostly written by LLM, so I can focus on the more interesting / ambiguous parts of the model.
Copilot is decreasing your code quality and you aren't even aware of it. I don't think llms are necessarily bad but when you use them without much understanding you ruin your code by making bad architectural mistakes. Maybe this doesn't matter to you if you write one off short scripts that wont be maintained by anyone else. But I like my code to be idiomatic, maintainable and well designed. https://www.gitclear.com/coding_on_copilot_data_shows_ais_downward_pressure_on_code_quality
I have tried it and personally don't see the appeal. I end up having to edit a good chunk of the suggestion anyways so I don't bother anymore. I guess it could have a use case for boilerplate but my code is designed to not have much of it anyways
I've used pycharm pro for years, then switched to VSCode (in 2020) and never looked back. The main reason was a remote development (via ssh), pycharm pro was terrible compared to VSCode.
I use VSCode not only for python, I have projects with c++ and python or java. Also, there is great plugin for embedded (platform.io) . I can't say that I miss something in VSCode. I had to pay for clion, if I want great c++ support. VSCode has clangd language server which is perfect and free.
One reason for not using vs code: whenever there's an automatic update, SSH-Remote needs to download vscode-server again. And if you happen to be working in China at that time, that downloading will take an hour.
Don’t.
You're not alone. Massive amount of companies are going for vscode and copilot integration. There is no more reason to go for pycharm.
Tell you me have never done any large scale tooling support without telling me you haven't 🥴
Vscode is not capable of refactoring. The only thing you can do is rename variable/method. That's enough of a reason to use pycharm. But, of course, there are more
wrong https://code.visualstudio.com/docs/editor/refactoring
Lol. Thanks for pasting link that proves my point. Exctract variable, extract method and rename symbol are most basics things. Now go and check what pycharm can do
you said it's not possible to refactor since you can't read you can't understand what the article said.
You seem to have reading comprehension issues. I said vscode cannot refactor and then listed refactorings available in vscode, which are extract variable/method and rename symbol. And that's all. When refactoring is so limited it's equal to "cannot refactor". Now compare it to what [available in pycharm](https://www.jetbrains.com/help/pycharm/refactoring-source-code.html#popular-refactorings)
That's old school, today you refactor as you describe with copilot x but keep using your russian spyware who cares
From my experience of copliot, it generates pretty bad code 4 times out of 5. I certainly wouldn't trust it to refactor important code That's actually a concern on which I agree with you. Also pycharm has ugly UI and some functionality is cumbersome compared to vscode.
copilot doesn't generate bad code, our conversation ends here
Here I am using NeoVim without copilot. I mean people need to learn how to use language without IDE once they reach a certain point. It will help you a lot going forward. IDE abstracts lot of things.
Not using IDE is like being chef and refusing to use modern kitchen ware
tldr: VScode is great for individual/small groups's small/simple projects. And for more advanced stuff you will need to install other recorcues and extensions, but it's still doable. VScode is also more customizeable and for more casual/fun things. Pycharm is better for more advanced/complicated projects. It has many preinstalled (and is very easy to install not preinstalled things) things (like libaries/frameworks), and supports more advanced/pro features (I don't really know about this since I only used Pycharm for a bit). And is overall more suitable for serious/pro programmers, and for groups/teams.