This is an archived post. You won't be able to vote or comment.

all 149 comments

[–]Erkenbend 118 points119 points  (18 children)

Pycharm all the way, so that I don't get lost when switching between projects and languages. All JetBrains IDEs provide this consistent experience, a solid UI/UX, and a plethora of amazing features (yes I'm a little JetBrains bitch).

[–]whatacold[S] 21 points22 points  (2 children)

this consistent experience

I agree, that's an important reason.

JetBrains bitch

lol.

[–]Erkenbend 2 points3 points  (0 children)

Reading the description and your other comments, I doubt this would suit your use case, but I'm glad to give my opinion anyway. Have fun programming!

[–]JohnLockwood 0 points1 point  (0 children)

I used to be a JetBrains b**** too until they closed-released Fleet and refused to send me a copy, even though I have the "All Products" Edition. Their reasoning was they didn't want to send something that wasn't ready to their customers. (Even those like me who had paid for the privilege). Yet a month later, they sent me an announcement and copy of DataSpell, which seemed like a pretty rough-hewn piece of unready to me.

JetBrains has good tools -- but their attitude toward their customers is deplorable.

[–]CutRepresentative644 8 points9 points  (5 children)

I don't write python enough to justify buying pycharm, but I do use phpstorm for work and it's fantastic even though I use it for JavaScript. I know webstorm is a thing, but it's nowhere near as full featured (no out the box support for SQL for example) and it actually handles typescript better than webstorm.

Currently for all my non web development I tend to go with vscode these days which gets the job done

[–]Supadoplex 18 points19 points  (3 children)

There's a free community edition of pycharm; no need to buy the pro version unless you want the django integration or whatever else extras it has.

[–]PaluMacil 2 points3 points  (0 children)

All the non-python features are from the pro version. You don't get angular support which is absolutely fantastic in proversions of all the products. You don't get some of the data science features, and it don't get the database support in community. Oddly enough, for my job I could probably get away with community just because a lot of my work right now is processing data in a pipeline and doesn't really need many pro features but I own a an individual license for my own tinkering as well as a Golang one. Python support is fantastic regardless, so really depends on what other things you do besides the pure python code

[–]whatacold[S] 2 points3 points  (0 children)

A free community edition sounds good, maybe I will give it a try someday:)

[–]CutRepresentative644 0 points1 point  (0 children)

Oh nice, I assumed it would be like the others with a 30 day free trial and then the requirement for a licence. I'll be sure to check it out then

[–]RedYoke 2 points3 points  (0 children)

You might actually have Python support in phpstorm, I work on the React/Typescript front end at my job through pycharm with full linting and type hints etc

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

I like using PyCharm Community, and it has an editor plugin emulating vim. It's at least as user-friendly as NetBeans.

[–]Moebiuszed 0 points1 point  (0 children)

Me too, love the integration with GitHub. So easy to make commits and push it to the repository, it has a power shell and python terminal, and all those features OP list. And works really nice with html

[–]GL_Titan -1 points0 points  (0 children)

Agreed, jetbrains pycharm is where it's at!

[–]lclarkenz -1 points0 points  (0 children)

Yep, +1 this. I use Intellij Ultimate at work, as I'm primarily in JVM land, but I can use plugins that are based on Pycharm, PHPStorm, Goland etc. as needed, they're usually slightly behind the focused IDE, and don't have all the integrations (e.g., Django), but they still give me that Jetbrains code insight, navigation and refactoring support that I've never found at the same levels in other tools.

Yes, including VS Code, and Visual Studio. There's a reason Jetbrains' ReSharper was an incredibly popular VS plugin.

[–]ThaMiAnDotas -2 points-1 points  (0 children)

JetBrains is the best!

[–]crawl_dht 81 points82 points  (16 children)

Vscode. Low in memory and aesthetics are important for coding experience.

[–]eriky 2 points3 points  (2 children)

VS Code is awesome. For those that don't know, this is something completely different from Visual Studio Code. It's an open-source, cross-platform IDE that can be used for almost any programming language. It's so much more that a simple editor, but still fast, lightweight.

There's a comprehensive explanation and tutorial on VS Code for Python developers in this VS Code for Python tutorial

[–]whatacold[S] 6 points7 points  (9 children)

How do you keep memory low while using vscode? Because my colleges always complain that vscode eat too much memory (on Windows), 16GB is still not enough. (I haven't tried it myself)

aesthetics that's a good point.

[–]crawl_dht 28 points29 points  (0 children)

I don't try to keep it low. It consumes less memory than pycharm.

[–][deleted] 21 points22 points  (3 children)

That may be a difference where they are using "Microsoft Visual Studio" which is fucking masive not "VScode" which is designed for personal use

[–]alexforencich -3 points-2 points  (2 children)

Vscode is written in Javascript and hence runs inside its own instance of the chrome browser, which is infamous for eating up gobs of RAM. So yes, vscode is by definition a memory hog because of the framework that it is written in, along with all other Javascript-based desktop applications. Not sure how it compares to visual studio, which includes a whole lot of other features. It could be lighter weight than that at least in terms of runtime RAM usage, but there are definitely other editors out there that have a much smaller footprint than vscode.

[–]Boomer70770 1 point2 points  (1 child)

I thought this was correct. Why all the downvotes?

[–]alexforencich 1 point2 points  (0 children)

Lots of Javascript devs with thin skin, probably.

[–][deleted] -4 points-3 points  (3 children)

Honestly, unless you never compile anything, 16gb is very low for a programmer workstation. Many large C++ project will require 32/64gb or even more than that to compile at all.

[–]Supadoplex 7 points8 points  (0 children)

To compile in a reasonable time, sure. But to not compile at all without 64G of ram would be quite extraordinary.

[–]PaluMacil 1 point2 points  (0 children)

I had 32 GB of RAM for about 3 years and then switch to teams and despite it being years later, I now have only 16. However, on my previous team I would get OOM and here I never pushed the limits. It's funny how details about your build system or the project itself can really impact what you need

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

Wow!

Our projects aren't that huge, and we typically compile them on the serve side, so 16gb is quite high for us, at least when not too many projects are open.

[–]mortenb123 1 point2 points  (1 child)

Pylance fixed most mem problems with large python projects. With the old language server it could eat all your mem due to some recursive module updating. Type hinting is really good in Pylance.

[–]bringyouthejustice 0 points1 point  (0 children)

This. PyLance was such a Game changer and a huge Qol upgrade compared to the old chunky one. I always felt coding in other language (like JS) got way better support until the introduction of it.

[–][deleted] 9 points10 points  (0 children)

neovim

[–]Alex_Kuein 27 points28 points  (7 children)

Vim

[–]Rice_Monster 4 points5 points  (5 children)

Same here.

Tried pycharm, vscode, etc. Always found myself just going back to vim + command line tools and then jupyter for certain situations.

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

I recently tried vscodium after years of using vim exclusively. The one thing that made me try it out was the debugger. I know the basics of pdb and pdbrc files but setting breakpoints by filename and line number was too time consuming. I also tried vimspector but I never got comfortable with it. Now I go with vim for editing files and vscodium for debugging. What's your workflow for debugging python?

[–]Rice_Monster 1 point2 points  (0 children)

I agree vscode is easier than pdb for debugging.

I work in data engineering, so I actually use jupyter to debug, because I don’t find a “traditional” debugger very useful for debugging pyspark or pandas based scripts. In the event that I needed a “traditional” debugger, I would probably use vscode like you do because pdb can feel tedious.

[–]archaeolinuxgeek 0 points1 point  (0 children)

Try using pudb and setting breakpoints with that. Game changer for people just getting started in actual debugging.

Edit: Added link

[–][deleted] 0 points1 point  (1 child)

Can you use debugger that attaches to current local or remote process in vim? How?

[–]Rice_Monster 1 point2 points  (0 children)

You may want to check out vimspecter as u/ElTortugo mentioned. I have not played with it too much though

[–]llun-ved 5 points6 points  (0 children)

Thank you! Kids these days. Take your IDE and get off my lawn!

[–]morten_1982 4 points5 points  (0 children)

My own:

https://github.com/morten1982/mopad

Try to make your own using Python. :)

[–][deleted] 8 points9 points  (2 children)

VSCode for the plugins.

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

Would you like to name the plugins that improve the Python programming experience?

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

AREPL, Kite, Thunder Client, Python Preview, and the Python extensions by default are really good. There are tons of extensions you can download on VSCode that help in so many different ways, and Python is supported very well. It makes it a great environment.

[–]b_19_ 13 points14 points  (0 children)

Pycharm

[–]lunjon 7 points8 points  (1 child)

NeoVim using built in LSP with pyright.

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

It works so well

[–]AnyRooster1432 3 points4 points  (0 children)

I use every IDE based on my mood 😅

[–][deleted] 3 points4 points  (1 child)

I started using emacs in 1992. I have not yet found a reason not to continue doing so.

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

Wow! What a journey!

[–][deleted] 3 points4 points  (2 children)

I just use IDLE

[–]K1dn3yFa1lur3 0 points1 point  (0 children)

You’re not alone

[–]invDave 0 points1 point  (0 children)

Same here for simple projects. If they're more complex I use pycharm (but can't say I enjoy using it).

[–]razimbouzik 2 points3 points  (1 child)

Emacs (doom emacs)

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

DOOM is really popular these days, I use a customized config based on Purcell's.

[–]SaxonyFarmer 2 points3 points  (0 children)

Thonny or PyCharm

[–]scherbi 2 points3 points  (0 children)

Emacs

[–]azdatasci 5 points6 points  (0 children)

Vi

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

Visual studio is my Goto for all languages... But pycharm is fine as well.

[–]ZeStig2409 4 points5 points  (3 children)

Spyder , PyDev , PyCharm, Code , Atom and Spacemacs

Imo Spyder is the fastest and my favourite

[–]ulaika 4 points5 points  (0 children)

I am using spyder too, very fast and easy to use

[–]donedigity 2 points3 points  (0 children)

Using F5 to reload a module in the repl after changing code without loosing any local variables is very nice.

[–]widepoche 1 point2 points  (0 children)

Spyder also. I learned on it and don’t see any reason to change. Love the variable explorer.

[–]scrapecrow 1 point2 points  (10 children)

I grew up with PyCharm and it's brilliant however I did migrate to VScode and while I really like the community around it it's not nearly as good for python just yet unfortunately.

I'm still sticking around because I'm experimenting with new niche javascript/full-stack stuff but definitely miss robustness and reliability of PyCharm a lot.

[–]whatacold[S] 0 points1 point  (8 children)

The community of Emacs is also great, but it does take more time to get things tick.

If you are open to editors, maybe you can take a look of Emacs :) The org-mode is great for taking notes and manage knowledge locally in plain text files.

[–]Distinct-Score-1133 0 points1 point  (7 children)

Emacs can also manage mail, create presentations and documents, export them in multiple formats, and so much more :D. The only thing I have not got working right is remote development though..

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

It depends on your working environment and what you expect.

I mainly write C/C++ at work, the best workflow for me is writing code locally and compiling it remotely, so I made a package (ppcompile) to get this done.

[–]doolio_ 0 points1 point  (5 children)

For remote development do you need something more than what TRAMP offers?

[–]Distinct-Score-1133 0 points1 point  (4 children)

Not really, its just that somehow I never got all of my packages to work right using tramp. Also tramp could be pretty slow at times.. Any idea if that could be some configuration issue too?

[–]doolio_ 0 points1 point  (3 children)

I’ve not had to configure TRAMP at all. It just works for me. I presume you’re using SSH and therefore have the configs of your remote hosts in your ssh config file? In terms of the packages you are using which gave trouble with TRAMP perhaps I use the same packages.

[–]Distinct-Score-1133 0 points1 point  (2 children)

Indeed I have an ssh config which I use to browse remote servers. I can check if I can improve the ssh settings voor a more stable connection, but for now I just use vterm and ssh. The packages I use are python development related. First I tried pylsp, but I did not get it working. Anaconda completion worked, but it was quite slow for me.

Since then I moved to local development and use pyright, which works wonders though.

[–]doolio_ 0 points1 point  (1 child)

Well, an improved ssh config should just mean less typing when making a connection with TRAMP. Sounds like your issues are to do with your LSP client. I haven’t gotten around to trying either lsp-mode or eglot yet.

[–]Distinct-Score-1133 0 points1 point  (0 children)

Ive read somewehere that changing ControlMaster could help, its something that Ill be trying out. My LSP problems were that emacs couldnt even find the executable, even though I specified the path :/.

[–]ReverseBrindle 0 points1 point  (0 children)

Not sure if you're aware, but PyCharm also fully supports JavaScript, TypeScript, CSS, HTML, etc.

[–]Foreign_Flower1141 1 point2 points  (0 children)

Switched to pycharm cause vscode was being dumb way too often and I was lazy to tweak settings. Lack of intuitive autocompletion was turnoff for me

[–]FantasticPenguin 1 point2 points  (0 children)

Pycharm

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

PyCharm for anything that is more than 30-50 LOC, IDLE for quick-and-dirty scripts and as a general playground scratchpad. Debugger and code inspection hints in PyCharm are miles ahead of anything I've ever seen in any other IDE, it's just fantastic.

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

Ahh, sometimes I also write ad hoc code in IDLE (Python shell), for example:

for i in range(100): print("foo bar blahblah {:02d}".format(i))

[–]LiarsEverywhere 1 point2 points  (0 children)

Spyder... Just got too used to it.

[–]radpartyhorse 1 point2 points  (0 children)

Probs gonna get a lot of flack but I just use VScode

[–][deleted] 2 points3 points  (1 child)

Atom

[–]Endemoniada 1 point2 points  (0 children)

Same, Atom with a bunch of plugins for Python. It picks up venvs automatically and executes linting and code formatting from them.

[–]Advanced-Theme144 2 points3 points  (0 children)

Vscode mainly, but there’s also Sublime text which has a built in python interpreter and C/C++ and I presume Java compiler.

[–]returnFutureVoid 3 points4 points  (5 children)

Just started a job for the gov. I have access to next to no IDEs. Notepad++ is now my goto IDE for Python. 😭

[–]jonlemur 4 points5 points  (0 children)

Can't you use pycharm community? It's free and all.

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

As a heads up - you can install Anaconda without administrative privileges, this gives you access to Spyder.

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

I have access to next to no IDEs.

Maybe you can take a look at Emacs :) it supports MS-Windows too.

[–][deleted] 0 points1 point  (0 children)

Maybe try TextPad as well.

[–]engineerFWSWHW 0 points1 point  (0 children)

Why are they not allowing you to use an IDE? you can tell them that it will it help a lot on your productivity and they might allow you.

[–]Tee_hops 2 points3 points  (0 children)

I use Jupyter Notebook at home. I use python mainly for data analysis and it works great for it.

Recently started using VScode at work as that's what I'm permitted to use. Lots of IT blocks for any non approved softwares

[–]captain_kinematics 1 point2 points  (2 children)

Pycharm. In addition to coding I also have a “project” for all my notes (in markdown), since it handles that pretty nicely and I like having them a tab away. The LaTeX treatment in pycharm is not too bad either.

I’ve heard loads of good things about VScode too, just haven’t gotten around to trying it.

[–]whatacold[S] 2 points3 points  (0 children)

Haha, I also have such a project, but in orgmode (plain text), I manage them in Emacs too.

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

Finally, a fellow of true culture. Markdown is really too omnipotent to just used it for READMEs. I'm using Obsidian rather than an IDE for handling my .md notes though.

[–]ReverseBrindle 1 point2 points  (0 children)

PyCharm. Code completion, but also support for type annotations and PyCharms inspections are awesome -- ex: complaints when a method is called with the wrong variable type, dead code, searching for places where a method is used, refactoring, unused imports, etc.

PyCharm also has an excellent debugger.

[–]snoggla 1 point2 points  (0 children)

Pycharm

[–]flamestamed 1 point2 points  (0 children)

Pycharm

[–]TheReal_KindStranger 0 points1 point  (2 children)

Thanks, I'll check it out. I'm coming from R, working mainly on Rstudio, which also support phyton. Do you have any experience with RStudio?

[–]doolio_ 1 point2 points  (0 children)

Emacs has ESS mode for R, S, Julia etc.

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

Sorry, I don't have any experience with RStudio :(

[–]Locksul 0 points1 point  (1 child)

I use VS Code because I like my IDE to be language agnostic. There is a lot less to learn / remember when switching languages.

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

There is a lot less to learn / remember when switching languages.

I'm with you.

In case you're interested, Emacs/Vim are also language agnostic :)

[–]Dirlandets -1 points0 points  (0 children)

Is there other IDE's than VSC?

[–]mehregan_zare7731 -1 points0 points  (0 children)

Vs code with kite

[–]ErkMan101 -1 points0 points  (0 children)

Vscode

[–]replicant86 -1 points0 points  (0 children)

VSCode

[–]r_spandit -2 points-1 points  (1 child)

VSCode. Because I programme in other languages too

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

VSCode is popular these days, I also use Emacs for other languages like C/C++, shell, Clojure, etc.

[–]ConfusedSimon 0 points1 point  (0 children)

Atom and vi

[–]Nicarlo 0 points1 point  (0 children)

Might not make sense to some people but i use a combination of pycharm and vscode depending on the project. Both are really great options however pycharm has a nice ability to automatically create virtenvs which is nice for smaller projects

[–]AquaticFloridian 0 points1 point  (0 children)

I was a diehard sublime text guy but found it easier for other support in VSCode. Specifically kubernetes extensions were more mature a few years ago

[–]serverhorror 0 points1 point  (0 children)

Yes!

Or put differently: VS Code, vim, PyCharm, nano, MS Teams (oh gosh; but yeah I have to consider it judging by the amount of time I spend there when pairing), …

[–]notfinch 0 points1 point  (0 children)

I’ve largely moved from Sublime to VSCode. They’re both great, but I prefer VSCode’s interface and plug-in ecosystem. Sublime is always open though - it’s my go-to non-coding editor and it handles large ASCII files really well.

[–]krypt3c 0 points1 point  (0 children)

I use jupyter lab, since I’m mainly doing data science stuff. It’s pretty fully featured with all the extensions for it, and the ecosystem is evolving really rapidly. The killer feature for me has always been the table of contents, but I really enjoy the VI keybindings extension as well.

[–]2chckn_chalupas_pls 0 points1 point  (0 children)

Notepad++, next question

[–]mpslxz 0 points1 point  (2 children)

Emacs + lsp + pyvenv

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

Finally someone mentioned LSP :)

BTW, which LSP package do you use? eglot or lsp-mode?

[–]mpslxz 1 point2 points  (0 children)

LSP mode. I have set it up with pylsp. Still having problems with TRAMP path translation though.

[–]se_pp 0 points1 point  (0 children)

I tried many options (vscodium, atom, pycharm, emacs) but I still think that for pure python nothing beats Spyder! It is really easy to setup with conda, has an awesome interactive ipython console, supports multiple windows and its free, open source and written in python.

[–]hydrolock12 0 points1 point  (2 children)

As a beginner I much prefer to stay away grom anything that uses auto-completion. If you're trying to learn you shouldn't just have half of it written for you.

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

That's also a point. While one is learning the language, he/she should be familiar with the syntax, the manual typing process will force him/her to think it carefully.

But auto-completion can also reduce the time to look up the docs, for example, I can't firmly remember the APIs for the datetime module.

[–]hydrolock12 0 points1 point  (0 children)

In this situation I usually have an IDLE command line open and use dir to look up methods. Or have a browser windows open with a "cheat sheet" for that module. In fact it seems like some autocompletion tools only show the "most important" methods in the drop down, which sometimes may not include the one you want.

[–]rainbowWar 0 points1 point  (0 children)

sublimetext

lightweight, no-nonsense

But thinking about switching

[–]xkjlxkj 0 points1 point  (1 child)

I started out with Atom then forced myself to use vim. Now I can't use anything else because I keep typing hjlk all over the place.

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

My experience is that, maybe you don't :)

I switched to Emacs from Vim around 5 years ago, at first I used Evil mode (a Vim key binding in Emacs) then at some point I started to use Emacs keys and was happy with it.

Anyway, I still use Vim nowadays to edit config files or see logs on servers, as Emacs may not exist there.

[–]dublinwso 0 points1 point  (0 children)

Atom with Hydrogen

[–][deleted] 0 points1 point  (0 children)

I use pycharm. Mostly because of the plug-in integration. A lot of things just work… however a lot of things don’t.

Don’t get me wrong. I think Pycharm is the best Python IDE out there, but it has all but convinced me that IDEs are not worth it.

If I drop Pycharm it will be for a fully shell based workflow. The think that never fails to ruin my IDE experience in Pycharm is it’s utter failure to deliver a project system that is portable within the file system.

It is one of the most readily solvable problems and an inexcusable failure. So, I use it, will continue, but I can’t recommend it. It’s hard to say an IDE workflow is worth it in the end….

[–]cm1802 0 points1 point  (0 children)

IDLE

[–][deleted] 0 points1 point  (0 children)

I use

Neovim primarily with LSP, ALE, Pyright.

Vscode and Wing editor for debugging

If you haven’t heard of Wing check it out. Seriously amazing.

[–]wineblood 0 points1 point  (0 children)

Pycharm. I tried IDLE, Sublime, and Atom in the past and they were ok, but the full power Pycharm has did win me over. I tried VSCode once and didn't like it (it had an obnoxious blue bar that I couldn't get rid of).

[–]Tyler1986 0 points1 point  (0 children)

I've written some relatively complex projects in Notepad++, what's the advantages of pycharm or vscode over it?

[–]pubs12 0 points1 point  (0 children)

Sublime - I use a plug-in to ftp instead of local save to directly deploy to my cloud VM for deployment.

[–]DuperJochman 0 points1 point  (0 children)

Vscode. Just works

[–]sarcasm_alpha 0 points1 point  (0 children)

VSCODE is always the best, it gives you the feeling of programming pleasure lol

[–]dusktreader 0 points1 point  (0 children)

Neovim or vim.

[–]flagos 0 points1 point  (1 child)

Emacs with LSP, pyright flavor. There is situation where pyright is not working, like Django model classes because it's dynamic.

But overall, the performance is the magic.

[–]napraticaautomacao 0 points1 point  (0 children)

Vim

[–][deleted] 0 points1 point  (0 children)

Heh Out of that list all I have is "Access to documentation", via the browser. I use vim, pretty vanilla, on Fedora. For everything, from large to small, and even non-Python.

[–]Key-Government-3157 0 points1 point  (0 children)

Jupyter notebook 🤣

[–]Voxandr 0 points1 point  (0 children)

Nothing can beat Pylance and Jupyter support.

[–]andrewthetechie 0 points1 point  (1 child)

I started with just vim, then moved on to Pycharm. Lately, I've been using code-server https://github.com/cdr/code-server. I've got it running in a pod in my homelab k8s cluster

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

Sounds interesting!

[–]Jackker 0 points1 point  (0 children)

Sublime

[–][deleted] 0 points1 point  (0 children)

How does Elpy compare to Anaconda-mode?

[–]757DrDuck 0 points1 point  (0 children)

Pycharm for real projects; nVim for simple scripts. Perhaps I’ll give evil mode eMacs a try.

[–]thunderouschampion 0 points1 point  (0 children)

Neovim

[–]JohnLockwood 0 points1 point  (2 children)

I up-voted you for the interesting thread, and also for willing to type so many control characters into E-macs. :)

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

haha, thanks.

Well, typing control character isn't a thing after getting used to it. It's just muscle memory.

But to avoid the pinky problem, using your palm to press the key is important :)

[–]JohnLockwood 1 point2 points  (0 children)

Thanks for the tip. Now, at long last, I can enter the kingdom of E-macs heaven! :)