Hacker News new | ask | show | jobs
by lindbergh 1169 days ago
Interesting. I heard many good things about Pycharm, but it kind of looks bloated? How does it compare to VS Code (which is quite good (notebook and repl support mostly), but not great, in particular regarding the debugging experience)?
11 comments

People always use bloated as an argument against something. Bloated framework, bloated linux distro, bloated ide…

What really is the problem with having all “the plugins installed”/features, nicely integrated, always compatible, reasonably configurable, maintained and with support vs inflating a minimal editor (framework, *) yourself, without all the advantages mentioned earlier.

Yes it may cost some cheap memory, vs costs of fixing plugins yourself.

My advice: Embrace it. Everything just works. Bloated in many cases is a non argument.

Disclaimer: long time bloated fan. Pycharm, django, monoliths. I rather spend time fixing things that matter.

> Everything just works

That's... That's a huge stretch. I've been on an outdated version of pycharm for nearly a year now because they broke support for docker-compose in a pretty huge way. Moreover, I have yet to have a pycharm project where I didn't need to create my own docker override file.

Interesting, i recall doing that in the early days of the docker integration. It is pretty solid now. Also might have been the weird way that project was setup, but i do not remember the specifics.

Also cannot judge it because you gave no examples.

Maybe your project is an outlier?

PyCharm has a great debugger. I am a longtime Pycharm user and have used VScode from time to time for python, and it seems like only now VSCode is catching up.

Pycharm is still better though in the general language support department. However I feel that if you were already a VSCode user, VSCode has become good enough. Pycharm like other IntelliJ based IDEs has many other QoL features which I can't find anywhere else. But if you haven't been using them already I doubt they would seem to make a difference.

For me, it comes down to the cohesiveness of the whole thing. VSCode plugins often feel janky.
The VSCode add-on manager also discriminates against users using VSCodium (The open source build of VSCode without Microsoft's proprietary "telemetry"). They simply will not let you install certain add-ons.
For large codebases PyCharm is superior, as VS Code usually chokes in its JavaScript memory usage before PyCharm's Java. You need to load large symbol datasets in the memory and VS Code seem to be struggling with this.

PyCharm autocompletion, autoimport, red underline errors and type hinting tools are also better than in VS Code.

VS Code Jupyter Notebook integration as better. PyCharm tends to do very badly with complex notebooks.

Using both 5+ years.

+ refactoring in PyCharm works

+ much better git support

A VS Code setup with all the plugins required to make it do all the things I use daily in PyCharm is far more bloated. The debugger (including REPL) in PyCharm is phenomenal, the way Docker and other integrations work is almost seamless, the git GUI is way better (smart merge!)...

Yes, the memory usage is higher, but spending like 50 € on an extra RAM stick to run the program I spend 70 % of my work (and often free) time in seems pretty reasonable.

It's the best IDE you can ever use, not affiliated.

The number of little 'intends' that make your life easier is just next level.

If you are using other IDEs of the intelliJ set you can use all the familiar refactory workflows etc.

I use PyCharm for my job as well as for personal projects, and it handles large codebases with type annotations very well. I would compare it to Visual Studio (not Code) in the sense that it’s a batteries included deal, which means larger initial size but I use maybe two plugins.
Re type annotations, is there some non-default setting or plugin I am overlooking?

As a long time pycharm user who recently switched to vscode, I have found pycharm's understanding of type annotations to be borderline broken.

  def foo(value: Optional[str]) -> None:
      print(value.replace("bar", "baz"))
mypy and vscode both point out this will fail when value is None, but my pycharm seems to think this is perfectly fine.
To be honest I don’t use the type annotations given by the IDE that much, and I also only encounter them in my work code base (pymongo), so I can’t comment on that part. I was mainly commenting just on its ability to handle large code bases.
The IntelliJ git interface makes a lot of sense, and makes many helpful operations easy, like “compare what I have now to this particular commit”. The VSCode git interface, even with plugins like GitLens, seems to make these operations hard to get to, and how VSCode manages diffs with the staging area involved is totally bananas.

Aside from that, PyCharm has a slightly better debugging interface but otherwise it’s quite close to VSCode for Python development. Sane version control is a bit aside though.

Don't forget "compare selection to clipboard"
I think that while it takes forever to boot up from cold, those monolith-style classic IDEs with their centralized caching (and most important, centralized AST caching) outrun (by a lot) those Language Server Protocol based text editors when you're jumping around and editing code.

Going around code is faster. Global search is faster. Autocomplete is faster. Refactoring is faster.

Using the Java Language Server Protocol in VS Code was very painful even for very trivial Java Spring Boot projects.

Granted, their boot and first pass of project analysis is really slow.

That being said I still use VS Code very often (as a cool text editor, not as IDE), and I have no clue how VS Code boots and feels so snappy when most other Electron apps that I use feel like unresponsive slow garbage.

VS code support for multiple Python environments and dependency handling (be that requirements.txt or pyenv or…) is really quite terrible compared to Pycharm.
VS:Code is not bloated yet. With all plugins accumulated for a certain project type it might be more bloated the visual studio memory wise. So the bloatedness deepends on what one is doing with it
Jetbrains IDEs are an industry standard, and has a quantified ROI on time saved.

First thing to think about: Pycharm is an IDE, VSCode is an editor. You're going to bloat VSCode to get anywhere near the functionality of Pycharm.

I believe jetbrains products have made me a better developer as it should provide more context and intellisense to give you guidance away from code smells and bad practices, without becoming a crutch (moreso for statically typed languages).

Also, very fond of the keybindings on macos as they mirror chrome, os, and electron applications.