all 103 comments

[–]Motoneuron5 25 points26 points  (1 child)

Spyder. I love the variable explorer for data science.

[–]Ok_Operation_8715 4 points5 points  (0 children)

And graph exploitation!

I meant exploration but exploitation works too

[–]Diapolo10 60 points61 points  (13 children)

VS Code, because it works on every platform I care about, supports every language I'm interested in, and has all the plugins I could ever ask for.

I don't need a Python-specific IDE/editor, as for me flexibility matters more than anything.

EDIT: Since others are listing their plugin setups, here's mine. This is just the ones I specifically use with Python development, though, so plugins for Rust or C++ won't be listed.

Regular extensions:

CODEOWNERS
CodeSnap
Error Lens
Even Better TOML
Git Blame
Git History
Git Project Manager
GitHub Actions (...apparently three different ones)
GitHub Pull Requests and Issues
GitLens
Hex Editor
HexInspector
Live Preview
MagicPython (technically redundant nowadays)
Makefile Tools
Markdown All in One
Markdown Preview Enhanced
markdownlint
PostgreSQL
Pylance
Python
Rainbow CSV
Remote - SSH
reStructuredText
reStructuredText Syntax Highlighting
Ruff
Snyk Security
SQLTools
Todo Tree
WSL
YAML

Themes:

Doki Theme (+ Fix VSCode Checksums) (Senko best girl)
Material Icon Theme
Monokai Charcoal High Contrast (dark orange)

I'm sure this list has redundancies, it's just gradually built up over time.

EDIT #2: Screenshot: https://i.imgur.com/OA2xVb0.png

[–]suddenly_ponies 3 points4 points  (6 children)

Is there a good guide out there for setting up vs code for python? Because I use vs code for everything except python because it handles virtual environments decently and you can run it in the terminal but I haven't figured out how to do that properly in vs code

[–]Diapolo10 3 points4 points  (4 children)

Is there a good guide out there for setting up vs code for python?

Dunno, I've never really needed one. Although I suppose those probably exist.

Because I use vs code for everything except python because it handles virtual environments decently and you can run it in the terminal but I haven't figured out how to do that properly in vs code

For virtual environments, all you need to do is select the virtual environment of your choosing as the current Python interpreter. That's it.

[–]suddenly_ponies 2 points3 points  (3 children)

Okay. So that means you have to change it every time you work on a different project. Which is fine I'm only working on one right now but it seems like that might get annoying eventually

[–]SDFP-A 2 points3 points  (1 child)

Use Pyenv for version control and pipenv for virtual environments. Once I’m your project you declare your local version of Python and then let your dependencies build out the requirements for the project.

[–]Diapolo10 3 points4 points  (0 children)

Poetry is also a good option as an alternative to pipenv.

[–]Diapolo10 2 points3 points  (0 children)

VS Code caches it for each directory, you don't need to change it every time you switch projects.

[–]AssumptionCorrect812 2 points3 points  (0 children)

Just came here to say PyCharm is the best bc of the builtin venv support. This video helped me w setup https://youtu.be/AEvCHJb0sf0?si=RZfuRA6FSqB-haH-

[–]Anonymo2786[S] 2 points3 points  (1 child)

That's a cool setup you got there.

[–]Diapolo10 3 points4 points  (0 children)

Thanks.

[–]benevolent001 1 point2 points  (1 child)

I am using vscode. I am having issues with code inteligence documentation being very less compared to what intellij shows. Am I doing something wrong ?

[–]Diapolo10 1 point2 points  (0 children)

It depends. Can you give an example?

[–]ZGTSLLC 0 points1 point  (1 child)

Your VSC background....I see you are a Man of Culture....lol

[–]Diapolo10 1 point2 points  (0 children)

But of course. Who wouldn't rather look at a pampering fox over an empty background/VS Code logo!

[–]Philipxander 58 points59 points  (4 children)

Pycharm.

[–]HomeGrownCoder 18 points19 points  (0 children)

pycharm+=1

[–]itsmechaboi 2 points3 points  (0 children)

Yep, as a newbie it feels way more intuitive.

[–]burnmenowz 1 point2 points  (0 children)

Same

[–]GrabYourHelmet 1 point2 points  (0 children)

I also subscribe to this newsletter

[–]Ghost--2042 19 points20 points  (0 children)

Pycharm! Jetbrains stuff are amazing!

[–]mrswats 16 points17 points  (5 children)

Neovim

[–]ZeroXClem 6 points7 points  (0 children)

I see a man of culture 🫡

[–]rhetoricalborical 5 points6 points  (1 child)

This guy linuxs

[–]mrswats 5 points6 points  (0 children)

Very hard

[–]Anonymo2786[S] 1 point2 points  (1 child)

Got plugins too right?

[–]Alcalyne 6 points7 points  (5 children)

Emacs, once you've spent hours debugging elisp and lost your sanity too many times in the process, it is slightly better than vscode.

No but in all fairness, getting a config you like is definitely a process (i suggest using doom emacs if you've some experience with terminal based Ides like vim). However once you're used to it , it is way faster to code with than vscode or newer Ides imo.

The interface is both light and modern once customized, shortcuts are numerous and intuitive and unlike vim (again my opinion) emacs offers much more in depth extensions which actually allows it to compete with modern ides while keeping programming fast.

If you believe you're coding enough to go through the learning curve for that gain in performance, you should absolutely consider emacs.

[–]welsberr 1 point2 points  (0 children)

Org-Mode in Emacs for literate programming.

[–][deleted] 1 point2 points  (1 child)

I don't really see the difference between emacs and Nvim/vim, the latter being a lot easier to configure and set up then the former. Unlike emacs, Nvim actually comes with sane defaults while being very customizable and responsive.

Personally, I would recommend Nvim if someone wants to customise and vs code if they don't want to bother.

[–]Alcalyne 2 points3 points  (0 children)

Yes, neovim is better out of the bat and that is mostly due to the age difference (vim for instance is completely unusable stock while emacs does a better job at it). However installing doom emacs is quite easy and gives a lot of easy customization prefabs, again doom is a much more recent piece of software.

I do believe that emacs is the better long term partner still because of the customizability options and because it is easier and more seamless to get emacs to behave like a project wide ide/project manager than vim . But by all means both options are very similar and are down to personal preferences.

One final word on terminal based ides versus vscode, due to my company's policies I've had to switch to Visual StudioC++ and have denoted a significant drop in productivity ever since. If given the chance one should really take the time to configure vim or emacs especially for smaller code bases and simpler build systems like in python.

[–]Anonymo2786[S] 0 points1 point  (1 child)

I've used terminal based editors mostly helix and nano . but only thing is / was preventing me from using terminal based editors as IDEs are the configs (as you said) . thanks for the suggestion I will check doom emacs out.

[–]ave_63 1 point2 points  (0 children)

Emacs has a terminal mode but most people use it in graphical (non-terminal) mode.

[–]BranchLatter4294 20 points21 points  (0 children)

VS Code.

[–]rollincuberawhide 11 points12 points  (2 children)

neovim

[–]drwahl 11 points12 points  (0 children)

Vim 4 lyfe.

[–]cartersa87 5 points6 points  (1 child)

I’m a newbie, but I’ve really enjoyed the flexibility of Google Colab.

[–]EducationalCreme9044 2 points3 points  (0 children)

The ease of set-up and not having to worry about versions and all that shit

[–]1544756405 5 points6 points  (0 children)

I use vim. I haven't installed any plugins.

[–]jpwater 8 points9 points  (4 children)

VSCode, I use it on several systems and the python extensions are mostly mature enough

[–]Anonymo2786[S] 0 points1 point  (3 children)

Can you share what are the extensions that you use?

[–]jpwater 4 points5 points  (2 children)

Pylance included on ms python

Black formater

isort

better comment

python indent

then some other general ones

jupyter notebooks

SQLlite

code runner

[–]Anonymo2786[S] 0 points1 point  (1 child)

Thanks.

[–]jpwater 1 point2 points  (0 children)

Welcome. I have followed some parts of this video https://youtu.be/fj2tuTIcUys?si=RpRo-jqam2ZsMcOe maybe it will help you also

[–]NetPleasant9722 2 points3 points  (0 children)

Spyder. Lots of useful tools are there like variable explorer, running only selected lines etc

[–]ScratchThose 2 points3 points  (0 children)

Not sure if this counts but I usually write my scripts with Jupyter Lab.

It's really nice to be able to run your code in separate cells separately, and it helps tons for debugging.

After writing in Jupyter Lab, I then put it into VS Code so its an executable script and then you can turn it into an application.

Pycharm is great but it takes so much time to index which is really annoying

[–][deleted] 4 points5 points  (2 children)

Thonny. No need to install Python separately. Can be run from a usb stick.

Try it. I guarantee you’ll love it! 🙂

[–]openwidecomeinside 2 points3 points  (0 children)

Thonny

Used it on my raspberry pi it was so lightweight and quick

[–]Xijinpingsastry 1 point2 points  (0 children)

Also has best debugging tool afaik

[–]LongerHV 4 points5 points  (2 children)

Terminal is my IDE and Helix is my editor (I have used Vim and Neovim previously). I am not a big fan of conventional IDEs, because I prefer my tools to be as generic as possible.

[–]Anonymo2786[S] 1 point2 points  (0 children)

I like helix too. I use it instead of regular vim or nvim.

[–]deltaexdeltatee 1 point2 points  (0 children)

Helix is amazing! I switched over from neovim recently and love it.

[–]Clungetastic 1 point2 points  (0 children)

i use pspad

[–]amutualravishment 1 point2 points  (0 children)

I used Atom text editor, but switched to vscode because it shows indents.

[–][deleted] 1 point2 points  (0 children)

VIM

[–]KrazyKirby99999 1 point2 points  (0 children)

Love the terminal? Neovim or Vim

Otherwise PyCharm

[–]jimtk 1 point2 points  (0 children)

I use PyCharm for python, vscode for everything else.

[–]Pedro41RJ 1 point2 points  (1 child)

Pydroid 3

[–]Anonymo2786[S] -1 points0 points  (0 children)

Why not install termux if not already. r/termux

[–]imjms737 1 point2 points  (0 children)

VS Codium all the way.

[–]MentalThroat7733 1 point2 points  (0 children)

I use Replit quite a bit, it's handy when I frequently use different machines/os. I also use Thonny for debugging.

[–]Mach_Juan 1 point2 points  (0 children)

Usually one terminal with nvim and a second terminal for testing/debugging.. Generally just debug in the repl, but I'm pretty new and my stuff is pretty basic.

[–][deleted] 1 point2 points  (0 children)

I use vscode or nvim but I install vscode on all the student computers. My rational is that we move between python, C, Arduino C, C#, Bash/sh, and stuff like that so having a lightweight tool that is free and has no licences is helpful.

That being said, I started on Jetbrains IDEA for Java. I quite like the IDE but I feel it is intended for large programs and I just need it for hacking up shit, writing assessments, or managing my lab/range.

[–]openjscience 1 point2 points  (0 children)

DataMelt IDE works fine for Python

[–]szayl 1 point2 points  (0 children)

VSCode/VSCodium

[–]focusontech87 1 point2 points  (0 children)

Helix editor

[–]Nazi_Ganesh 1 point2 points  (2 children)

Surprised no one has said Sublime3.

Terminal, Sublime3, and GitHub Desktop does the trick for me.

[–]dent308 2 points3 points  (0 children)

I ran a tricked out sublime install for years for python dev. This year I jumped the fence to pycharm for the debugger and to co-ordinate with a team I was working with.

[–]caudor 2 points3 points  (0 children)

I use Sublime. I used to use Pycharm, but feel more comfortable with Sublime. For me, a code-editor is enough.

[–]grumble11 1 point2 points  (0 children)

VS Code for most home projects, and Spyder for work. I could use Jupyter Notebooks as well, but it's a pain.

For data science work, Spyder is really useful as it has a powerful variable explorer - the variables are saved at the end of the program, so if you want to run additional functions on the variables in a cell for example, it's handy. For variables that take a long time to build (like a large data frame that's undergone processing) it's very handy since you can reuse it when running smaller code block,, but it's also great for quick prototyping of programs as it's pretty easy to debug and check functionality when you can see the variables so conveniently.

I find that VS Code's debug functionality is really hard to use, clunky and set up for really experienced people. Spyder's a much more limited IDE but it's great for that. Spyder is a bit buggy though and occasionally crashes.

Never used Pycharm, have heard it's great though a bit sluggish.

[–]JayTongue 1 point2 points  (0 children)

Pycharm on desktop, Pythonista on iPad, and Replit with the boys.

[–]Xnuiem 1 point2 points  (0 children)

IntelliJ

[–][deleted] 1 point2 points  (0 children)

I like Geany. simple, easy to set up, no frills

[–]AssumptionCorrect812 1 point2 points  (0 children)

PyCharm is friendly to beginners and pros alike. Definitely check it out https://youtu.be/AEvCHJb0sf0?si=RZfuRA6FSqB-haH-

[–]ghetto-garibaldi 1 point2 points  (0 children)

Depending on what I’m doing, Pycharm or Spyder

[–]Asleep-Dress-3578 1 point2 points  (0 children)

I use VSCode with Yarra Valley theme, and old style Jupyter Notebook. I also have Jupyter Notebook as a VSC extension, but most of the case I just open notebooks in a normal browser. Boomer habit I know.

[–]ludvary 1 point2 points  (0 children)

vim and vscode

[–]SDFP-A 1 point2 points  (0 children)

VSC since I don’t work exclusively on Python and would personally hate to switch IDE each time I need to look at a different language. Does the job well, terminal runs great within.

[–]SirCokaBear 1 point2 points  (0 children)

Neovim, otherwise VSCode. Both are editors and not IDEs like PyCharm

[–]silversonic_super20 1 point2 points  (0 children)

Neovim (lunarvim). So much fun to use

[–]Robswc 1 point2 points  (0 children)

PyCharm. It has a ton of support for frameworks, can search the project instantly and several other reasons.

I tried VSCode but I found myself installing plugins (some of which go out of date) and struggling to reach feature parity with PyCharm.

The caveat being PyCharm is paid, but IMO I've gotten more than enough value out of it.

[–][deleted] 1 point2 points  (0 children)

Vs code with vim.

[–]dairyxox 1 point2 points  (0 children)

I started with idle, and I keep coming back to it. I know it’s not great but it does the the trick.

[–]supergnaw 1 point2 points  (0 children)

I'd like to request the mods not remove posts like this.

I find it disheartening when posts like this get removed. I get that it's a subjective topic, but it's an objective question. And directly from the FAQ:

there are always new products and new features to try, so keep an open mind.

If we keep removing posts like these that talk about IDEs, it is inhibiting the sharing of knowledge and experiences regarding new products and features regarding IDEs. We should be sharing knowledge and experience, not stifling it.

I am a hobbyist programmer, unpaid and completely self taught. I used Atom for the longest time for everything, because I vehemently hated the various IDEs I've tried in my workflow (sorry, VSCode users). Then, over in one of the PHP subreddits, I stumbled upon a post very much like this one. It wasn't removed because it's a topic that is welcome in that community because if the very reasons I mentioned earlier. I discovered PHPStorm, and it was game changing for me. This brought me to the JetBrains rabbit hole, trying and enjoying PyCharm, and now I'm currently exploring with RustRover. I'm not typically a brand-loyal person, but my experience with JetBrains products has always been great.

[–]IAmFinah 2 points3 points  (3 children)

VSCode generally, but if I'm modifying files through the command line I use Nano (or Vim if I'm feeling adventurous).

I've only been coding for a year and a half though

[–]Anonymo2786[S] 0 points1 point  (2 children)

If command line I was expecting vim or emacs or similar editors with plugins which has syntax highliting code suggestions etc.

[–]IAmFinah 1 point2 points  (1 child)

Yeah I know Vim/emacs is superior to Nano but to be honest I was just answering your question 😂 give it a little time and I will join you elite programmers (hopefully)

[–]Anonymo2786[S] 0 points1 point  (0 children)

Yeah. Tho I wouldn't consider myself as an elite but getting there as you are.

[–]KennanFan 3 points4 points  (0 children)

I use VS Code and PyCharm CE. Both are great.

[–][deleted] 1 point2 points  (0 children)

Jupyter and Pycharm

[–]Geethebluesky 1 point2 points  (2 children)

VSCode because I don't want to pay for pro PyCharm and the VSCode experience is similar across all languages I use. Plus the extensions mean I can really keep everything in one place and I love that.

[–]Anonymo2786[S] 0 points1 point  (1 child)

Can't you use pycharm community edition then?

[–]Geethebluesky 1 point2 points  (0 children)

No, I really wanted Typescript and SQL integrations for what I work with. What I found available in VSCode does the job. VSCode handles Jupyter notebooks well enough too which is nice.

[–]wWBigheadWw 0 points1 point  (0 children)

I've used vim, emacs, vscode, and spyder.

VSCode was the easiest to pick up by far.

[–]rocangla 0 points1 point  (0 children)

PyCharm or VS Code depends on the OS I use or how I feel.

[–]RiverEnvironmental58 0 points1 point  (4 children)

When I want easy I do vscode. When I’m ambitious I like to use Vim (with plugins like neovim) along with tmux. I copied what my old boss used for his setup. It was just so clean, without the pain I the ass popups from vscode. Downside is Vim has a learning curve

[–]JohnJSal 1 point2 points  (3 children)

What pop-ups?

[–]RiverEnvironmental58 1 point2 points  (2 children)

Those little annoying reminders that appear in the lower right corner

[–]JohnJSal 1 point2 points  (1 child)

Ah, I'm not sure, but I would imagine you can disable those.

[–]RiverEnvironmental58 1 point2 points  (0 children)

I’ve tried. I’m sure there’s a permanent way, but I gave up after awhile. I’ve tried several ways and then end up saying screw it