Feedback from a potential PyCharm switcher #21756
Replies: 3 comments
-
First, a quick thanks for the feedback! We do appreciate it.
Based on your phrasing I take it you're not using a Jupyter notebook. Are you using the interactive window or Python's REPL?
Correct.
I assume you mean the comment markers? Otherwise we do have Jupyter support via the Jupyter extension.
Could you open feature requests on the main vscode repo for these things? https://github.com/microsoft/vscode
That would be feedback for Pylance: https://github.com/microsoft/pylance-release . Would you mind opening issues there? |
Beta Was this translation helpful? Give feedback.
-
Thank you for sharing this thoughtful feedback, @davidgilbertson! Have you had a chance to try the new Data Wrangler extension for VS Code? Data Wrangler was released in preview in March 2023 and aims to simplify and expedite the data preparation process. Would love any feedback on how this extension improves your workflow and/or ways it can be improved. |
Beta Was this translation helpful? Give feedback.
-
I had watched the video and raised my eyebrows in delight a few times, but unless I missed something, doesn't really help me with that "live view" of the data I'm working on. |
Beta Was this translation helpful? Give feedback.
-
Hi team. I've spent the last 2 days assessing VS Code to see if I can make the switch from IntelliJ. I've done this in the past (every few years since launch) but this is my first time as a Python dev, so I thought I'd leave some feedback for the team. I've logged a few issues too, these are more general thoughts.
In summary, I'm going back to PyCharm, but it was a close call. I'm spending some time to leave feedback because I like VS Code and it seems like in a few more years it will surpass PyCharm. Hopefully what follows is constructive and doesn't come across too negative.
My use case is mostly data science, leaning more toward application code than tinkering in Jupyter notebooks. So when comparing the two I'm thinking about how quickly can I work and navigate, and how easily can I view my work (code, dataframes and charts).
Viewing data
Dataframes
With code and charts, VS Code and PyCharm are about on par, the major shortcoming in VS Code is being able to view my data.
In PyCharm, my setup is code on the left, with this set of panels on the right at all times:
Data on top, executed code (interactive) in the middle, variables down below. Clicking to the right of a variable (View as DataFrame) puts it as a new tab up the top. These are live views, so if I re-execute a code cell (or change something interactively), the view updates (PyCharm is buggy and doesn't register changes to columns, but other changes show automatically).
In VS Code, both the executed code view and data view are just tabs. The data view is several clicks to get to, doesn't auto update (and if you click refresh it resets all the columns widths), doesn't work with
Period
types, doesn't work with multi-index columns, and doesn't have colours, which are super important for mentally parsing huge dataframes, spotting outliers, seeing patterns, etc.The colours in PyCharm are ugly and not configurable, but even with small dataframes like these results from a hyperparameter search, they make it so much easier to see what's going on:
So for my current project, it means viewing dataframes simply doesn't work (I'm using Periods), and the bugs for these things are all quite old, and it looks like not much has changed in two years.
Variables
The variables view in PyCharm is on par with the debugger variables view in VS Code, but that view isn't available when running my code interactively. If the debugger had a setting to "break at end of file" it would almost be workable and I'd just debug all the time. It's like there's two half-good options:
But not both at the same time!
Also, the "interactive" variable view is not always there. I have to click to show it, and it can only be shown in a sidebar, and the dataframe viewer is not a live view of the current state of that variable. Again I guess this is because there's isn't one "interactive code window" with multiple tabs, they're all their own tab with the Jupyter-backed thing. This also means it won't focus wherever my code ran so I have to go looking through tabs to find where my code ran.
Executing code - fine grained control
In PyCharm I can:
In VS Code, I can sort of run a cell, but if I have one
# %%
cell marker in a file, stuff below that is considered a cell, but not stuff above. I've found just adding# %%
to the top of every file is a reasonable workaround. So that's all good enough, but where does it run? Again, since the interactive window is 'just a tab', it gets lost and isn't brought to the front. Overall though, this is not so far behind PyCharm and the interactive viewer is maybe a bit better that PyCharm's Python Console in some ways (nicely formatted dataframes, Jupyter style error traces).There's plenty of little niggles, like when I hit the up arrow to get the previous execution result in the interactive window's input box, it puts the cursor at the start. Meanwhile in PyCharm there's not just up arrow for history but an optional window where I can search all history of inputs for that session. I didn't realise before switching to VS Code but I used this at least a few times a day.
Search
Find UI
This is not specific to the Python VS Code so I'll be brief. Search is way behind IntelliJ. No scopes, no filetype filter (separate from path filter) no filtering for code/comments/strings. And the PyCharm UI of a popup window just seems to align well with the transient nature of search (with the option to open the results in a permanent tab).
Finding things in general
Search, the explorer view, "find symbols", open file etc all seem to ignore installed packages. I'm frequently searching and browsing through installed packages, either as a faster way to get to docstrings, or just to better understand how something works (or why it doesn't). In PyCharm,
site-packages
is searchable by default, but I found it quite difficult to navigate with VS Code. I get the impression that there's an underlying performance concern and general reluctance to just index everything, I spent maybe half a day just trying to get things working (various settings, includes and excludes) and still, I can't jump to a symbol in a package (without first importing it and then jumping to declaration) like I can in PyCharm.Other minor things
No autocomplete for file paths. This is so useful, I missed it already after only 2 days.
Weak auto-complete. PyCharm seems to know what I want most of the time, I fiddled with a lot of the settings in VS Code and installed the IntelliCode extensions, but even with basic things like auto-completing a boolean VS Code falls short. If I type
F
it should be clear that I'm going to typeFalse
...PyCharm gets it:
VS Code suggests
F
"regex" as the top result - whatever that means:And PyCharm knows my DataFrame columns (some of the time)
(To be fair, PyCharm is quite buggy in this department).
These are all minor, but I found myself having to actually type things out a lot more with VS Code than I would with PyCharm. And I know I'm being a sook but typing all those characters felt like hard work!
In summary
In VS Code, I'm not able to see/visualize/explore my data as well as I can in PyCharm, which ultimately means I can't work as effectively. But I've subscribed to the VS Code release notes and have high hopes!
Beta Was this translation helpful? Give feedback.
All reactions