Initial Thoughts on PyCharm

I am frustrated by VSCode lately. I might share the reasons in another post someday. For the moment, I turned to PyCharm and try to adopt it as my primary IDE for Python projects. So far, many things are really wonderful, like the refactoring tools, the AI toolbox, the constant level of memory usage and the editor in general.

But some things are at best called confusing, and I am not sure how to solve or deal with them.

  • Bad support for tailwind CLI — The tailwindcss plugin does not handle the standalone tailwindcss CLI very well. (Yes, I am the django-tailwind-cli guy.) It is my preferred way to use it. The workaround can at best called clunky. Many people are reporting this for years. So I am not sure if anything will change soon. Can I deal with this in my extension and automate the necessary steps?
  • Pulling the “wrong” virtual environment — A surprising “feature” is, that PyCharm does not automatically use a project level virtual environment like VSCode or Sublime do. PyCharm instead tries to find an appropriate virtual environment, but in most situations it finds the wrong one. And it seems as I am not alone. I am switching a lot between projects and importing them into PyCharm. This has resulted in numerous errors, as I tend to forget about this oddity. Let’s see if this calms down after I have imported all the projects.
  • Project level settings — PyCharm has many settings, I prefer to set globally as a setting on the project level. For example, I use pytest in all my Django projects. I have to disable the standard Django test runner in each project individually. I understand the reasoning behind this, but for me, it is again something I need to remember.

I am willing to learn to accept these things, as the most annoying behavior of VSCode is solved with PyCharm. Working with our biggest Django application in VSCode burns memory like hell (>15 GB RAM after a few hours) if you want to use all the cool features from the Python extension. PyCharm, on the other hand, stays at 3-3.5 GB even after a long day of working with the code base. This is a game changer for me.

I love how it lets me tweak it to get the slick UI I want to have. And it feels good that I can support the PSF and DSF by buying a license. This time, I guess I used the PSF discount.