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 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...
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.
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.
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.
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 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.
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?
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!
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.
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.
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.
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.
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.
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.
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.
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!
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.
47 comments
[ 3.4 ms ] story [ 85.7 ms ] threadI’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...
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.
Edit: Visual Studio Code
Visual Studio Code does though.
Let's also mention VSCodium, which is vscode built without the metrics
https://news.ycombinator.com/item?id=19650109
Remote development with TRAMP was the main thing that kept me on Emacs. Once VSC offered a credible alternative, I switched.
> :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?
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.
My understanding is that in VSCode if you disable Jedi then it will use the same engine that desktop VS uses.
The "refactoring library" was named rope, and I always figured that was the source of my issues.
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.
It's only permitted for certain combinations of uses and users, though, on top of not being cross-platform.
[0] https://github.com/L0stLink/anvil
https://www.spacemacs.org/
https://www.geany.org/
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.
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/
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!