47 comments

[ 3.4 ms ] story [ 85.7 ms ] thread
Is this list only for cross-platform IDEs and editors? Because Visual Studio community edition with VS tools for Python is a very powerful (and zero cost) option if you're on Windows.
Yes, the IDEs presented in the article are all cross-platform. This way, they can be of use to all of our readers, especially considering the popularity of Linux among software developers. But we might add some subsections in the future, so thanks for the feedback!
I’m not a Windows fan, but I would like to hear how all the tools compare even if they are only single platform.

I’m willing to treat a computer and operating system as an appliance and use it for a specific task if it offers the best tools for a given language.

"I’m willing to treat a computer and operating system as an appliance and use it for a specific task if it offers the best tools for a given language."

Or if it's the only tool for the task, as is the case with macOS for cross-platform mobile app developers. Visual Studio on macOS is "somewhat required" to make iOS apps from Xamarin but the editing/development experience on Windows is vastly superior. Just have to use the right tool for the job...

“Just have to use the right tool for the job...”

Sort of a vacuous statement that people really need to retire.

If you only have one tool, it’s an open and shut case. If there’s more than tool, there’s a discussion to be had.

VSC is cross platform and runs happily on MacOS, Linux, and Windows. It's remote development capabilities let me run it on a MacOS laptop and develop code on a Linux server. It's replaced every other IDE for me since plug-ins let me do Python, C/C++, Fortran, CMake, Java, etc. equally well.

Edit: Visual Studio Code

Visual Studio Community does not run on Linux.

Visual Studio Code does though.

Microsoft naming sucks so, so very much. There's so many instances of tangentially-related products that get lumped under a brand name and unless one is intimately aware of these evolutions it causes a huge amount of needless confusion.
Wait how do I run it on my mac and develop on a linux server?
Click on the Extensions icon on the left side of the window. Search for and install the Remove Development pack. Reload VSC. Click on the Gear icon, then Command Palette. Type "connect" and you should see an option for "Remote-SSH: Connect to Host…" Select that and you're off to the races. VSC will install extensions in ~/.vscode-server on your remove Linux server.

Remote development with TRAMP was the main thing that kept me on Emacs. Once VSC offered a credible alternative, I switched.

Is there an equivalent for Vim?
Out of the box, you can edit remote files with

> :e scp://user@myserver[:port]//path/to/file.txt

It creates a temporary copy and upload it on save.

For more complicated editing, sshfs would be the way to go. I don't know if there's a plugin that can simplifies all this... probably someone somewhere did something but is it stable and maintained?

VS code or visual studio community? Assuming you mean the former
VS Code in Python for me is very poor at refactoring/renaming. Very slow, mostly can't find all the instances of a symbol, etc etc.

Every once in awhile I want to reach for VS Code as more lightweight alternative to PyCharm, but PyCharm just blows it out of the water in almost every category except resource usage.

OP is talking about full Visual Studio, not VS Code.
Ah, I see. I would have to imagine full Visual Studio is even more resource-intensive than PyCharm though I haven't done development on Windows in several years.
Are you using Jedi or the Microsoft Python Analysis Engine?

My understanding is that in VSCode if you disable Jedi then it will use the same engine that desktop VS uses.

I will have to try this! It's been awhile but I was just using whatever was default or suggested for VSCode.

The "refactoring library" was named rope, and I always figured that was the source of my issues.

> Are you using Jedi or the Microsoft Python Analysis Engine?

This is the sort of info that is glaringly missing from articles like this one.

Extensible editora are nice and all, but they are only as useful as the plugins you install. Otherwise, text editors such as vim, vscode or sublime are just that: plain old text editors.

yes the list is certainly not exhaustive. i don't see activepython from active state in there. they've been in the game forever and mu is a newcomer but a really interesting one!
The claim is that the list is 'best' not 'all'. If you included all then you wouldn't be able to have an argument about the ones that got left off.
Visual Studio Enterprise is my main dev environment (C#/C++) so I use Visual Studio with Python tools as my main Python environment as well. On Linux is use VSCode, which I like a lot too but I wish they weren't so different. The VS part of VSCode is really a misnomer.
> Visual Studio community edition with VS tools for Python is a very powerful (and zero cost) option if you're on Windows.

It's only permitted for certain combinations of uses and users, though, on top of not being cross-platform.

I know it's supposedly shameful, but I really like Eclipse as a Python IDE. I am pretty good with vim but still prefer Eclipse when I'm navigating huge projects across dozens of separate projects and submodules. I know about ctrl-p and NERDTree but ctrl-shift-r in eclipse is just better for me. I also find the pydev debugger to be awesome. I launch it from unit tests to find all my problems.
Eclipse is definitely powerful, so once you know it and you aren't bothered by the long startup times, there's no shame in using it.
Nothing wrong with that. I have been using vim for close to 10 years and will take intelliJ + ideaVim over vim if the language is well supported. It's night and day difference.
Eclipse is a solid choice, especially if you have more than one reason to use it. I used it simultaneously for Java, some embedded systems development and Python so the learning curve paid off.
I never could get Eclipse to work. To me, it was always a memory and CPU hog spending way too much time doing the simplest things. I do install it once in several years to find out if they fixed performance yet, but to no avail.
Sounds like a pain. I never had problems like this even on underpowered dev machines.
The reviews for vim and emacs miss that you can use the LSP (Language Server Protocol) to get some (or a lot) the code navigation and refactoring support you'd find in VSCode or PyCharm.
Or all. And you don't need lsp for that, Jedi works just fine.
My vote is for Spyder. It gives you everything you need in a very convenient, Python-centric way. The ability to see and inspect variables (especially lists, dicts, and pandas dataframes) in a grid view is a huge productivity win. I wish they would make the line profiler the default and also have built in support for Jupiter notebooks (these are available through plugins but it’s buggy and bad). Also stability took a big step back in the new version 4. But whenever I try anything else I quickly come back to Spyder.
I love Spyder but I could never get it to play well with virtual environments and a non-anaconda python installation. I wonder if that has improved
My long-time favorite for Python has been Geany. Especially these days, it feels very lightweight and responsive, but it has a pretty decent plugin ecosystem.

https://www.geany.org/

The article only glosses over Sublime. Even at shareware, the only thing it does is a single pop up asking for purchase every 25 saves.
(comment deleted)
The list they assembled doesn't seem to follow their own data.

Notepad++ was very popular at Stackoverflow, but isn't even mentioned in their list, while emacs didn't show up in the data but gets a mention.

I use Notepad++ on Windows because it's fast and open source. I use it in conjunction with FileLocator Pro to search projects.

I tried PyCharm but I just couldn't deal with all the extra crap all over everything.

Not included in this article, but ActiveState just recently released Komode IDE 12 for free, with the condition that you sign up for their ActiveState online platform. I've been trying it out for the past few days but haven't done anything serious in it yet. I'm mainly a SublimeText user and have a fairly customized environment there, so getting familiar with something else that has its own practices and quirks takes a little while.

In any case the program seems pretty powerful and supports lots of languages and development workflows. It's based on Mozilla Firefox somehow and it looks like lots of features are implemented in JavaScript and Python under the hood.

I probably wouldn't switch to it out right, but am interested in it as another tool to use here and there.

Interested to hear if anyone else has experience and anything to say about it.

https://www.activestate.com/products/komodo-ide/

I was a Sublime Text user for a long time, and still use it for a lot of quick one-off stuff (basically if the Python script will go in one file, I'll write it in ST). Managing larger projects with modules and larger footprints got more difficult in ST, so I tried PyCharm and found it nice but really resource-intensive: slow to start, slow to get things done. VSCode has been a good middle ground: it's got the IDE features of PyCharm but the faster startup and small(er) resource footprint to be closer to Sublime.

One of my fellow teachers this term pointed out Wing (https://wingware.com/), which I haven't tried but was developed specifically as a Python IDE. It looks promising!

Geany works very well for me.
I'm disinclined to trust what they write as their section titled "Jupyter Notebook" is actually talking about "JupyterLab". They claim it's created by "Jupyter Labs" who don't exist so they're clearly just confused.