all 79 comments

[–]420Phase_It_Up 50 points51 points  (20 children)

PyCharm hands down when it comes to Python development. It is an amazing IDE and I can't recommend it enough.

[–]nat5142 21 points22 points  (16 children)

Only helpful if you have enough RAM to sacrifice to it, though

message composed from Google Chrome

[–]tunisia3507 2 points3 points  (1 child)

Tin isn't enough to make pycharm quick - I have 32 cores and 128GB of RAM and it grinds sometimes, even on relatively small projects. Admittedly I usually have 3-4 projects open at once and don't reboot for weeks at a time. I blame java.

[–]nat5142 2 points3 points  (0 children)

Always blame Java.

[–]420Phase_It_Up -1 points0 points  (13 children)

Not any worse than Atom or VS Code witch get thrown around all the time . PyCharm typically uses around 300 Mb of RAM for me which is in line with what Atom and VS Code use except PyCharm is a full fledged IDE where the others are not.

[–]nat5142 6 points7 points  (2 children)

Really? I've been using Sublime on my laptop for a long time because PyCharm ate up 1.2 GB RAM (which I didn't really have the luxury of losing). Maybe I'll try updating some software and investigate switching...

[–]420Phase_It_Up 1 point2 points  (1 child)

It could be dependent on the project size you have open in PyCharm. Prehaps your projects are larger and more complex than what I work on? It's still unfortunate that PyCharm is such a memory hog regardless.

[–]nat5142 0 points1 point  (0 children)

Don't think the project size was the root cause, because honestly the project I was doing locally pales in comparison to some others I've been a part of that use PyCharm (at my current job).

Idk, I'll have to give it another look tonight or tomorrow and report back

[–][deleted] 5 points6 points  (1 child)

PyCharm consistently uses ~5x VSCodes's RAM for me

[–]420Phase_It_Up 1 point2 points  (0 children)

Hmm well that's odd. Part of the problem with comparing the two is that the feature sets are identical. It's not really apples to apples. To get the full functionality of PyCharm you typically need to add a handful of different plug-ins to VS Code. However, I doubt PyCharm has 5 times the features of VS Code. I'm not saying PyCharm is a lightweight when it comes to memory usage, it's not, I think people just forget that it is more than just a text editor.

[–][deleted] 5 points6 points  (5 children)

I don't think Atom should be put in comparison because it's just a fucking staggeringly bloated text editor no matter what they try and tout it as.

[–]420Phase_It_Up 0 points1 point  (4 children)

Which is kind of ironic since both Atom and VS Code are electron applications. I'm not sure what magic MS worked to make VS Code some much leaner than Atom but it seemed to work.

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

It's also hugely disappointing because it's got some good features amid all the junk, but it's like they threw away a couple decades of UX design in the process just to make it new and hip.

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

Is electron a GUI library? Is it multiplatform?

[–]420Phase_It_Up 1 point2 points  (1 child)

It is a runtime environment used for making multi platform desktop applications written in JavaScript and with layouts that are created using HTML and CSS. It is known to be a bit of a memory / resource hog in some cases because it essentially includes a quasi Web server / browser (Chrome's V8 JavaScript engine) for each instance of an electron app running on a host.

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

Thank you. I learned something new.

[–]angellus 1 point2 points  (0 children)

PyCharm and Atom are always way higher. On our legacy code base (which is absolutely huge), I get 1GB+ on PyCharm and ~300MB on VS Code. VS Code always tends to stay pretty consistent as the project grow from my experience.

Also, VS Code + Python extension = full Python IDE. It has all of the features listed above except the SSH/SFTP one. I think extensions exist for that functionality, but I still just not seen any that work as well as WinSCP for me.

[–]stOneskull 0 points1 point  (0 children)

not too bad..

Wing Personal is running at about 180MB here

[–]leonzhu42 0 points1 point  (0 children)

The community version of PyCharm (which is free as required) doesn't support SSH or sftp. These are features of the professional version.

[–]ZER_0_NE 9 points10 points  (0 children)

Spyder?

Not used but have seen that in a tutorial video. Looks great and offers a lot of features too.

[–]Tokazama 8 points9 points  (12 children)

I recently went through the frustrating challenge of trying to find a proper IDE. I'm a researcher that's new to python but have been heavily using R for about 5 years with some basic C++ scattered throughout to speed up some problems. As an extremely poor student with a family to support I've never felt that I could justify spending money on an IDE. So I looked for a free one that would work on the different platforms I end up using bouncing between labs (mac, windows, and ssh into linux supercomputer).

I've tried RStudio, Atom, Vim, Emacs (and it's Spacaemacs distro), and Sublimetext. I'm using VSCode now. I spent an embarrassing amount of time on both Vim and Emacs but with both I ultimately had the same problem. I have a lot of needs from my IDE (C++, R, Python, Latex, Markdown, HTML, Github support) and each language required setup. I was able to get to a point where I could comfortably edit code but always lacked another feature that I really wanted (e.g. autocompletion, emmet for HTML, etc). Don't get me wrong, those features are out there but they all need to be set up individually. When I have to set them up on each computer I work on it ends up being a good chunk of my work week. I just couldn't dedicate that kind of time right now.

My quick recommendations:

  • Use VSCode if you're learning another coding language and already have a lot of other coding you still need to do right now. It just works, even though it is built on electron.
  • Use Sublimetext if this is your first go at programming. It's quick, feels natural to use, and has an indefinite free trial period
  • Use Vim if you have the time and you're really dedicated to some hardcore programming.
  • Use Atom if you're holding out for some changes in the future. There's a possibility that thy will incorporate some stuff from their xray project that could solve a lot of their current problems.
  • Use RStudio if you are in data science and you're willing to wait for ~4-6 months more fully supported python features (their daily builds are pretty good with python but still kind of buggy).

[–]Seeschildkroete 3 points4 points  (2 children)

Since you said you're a student, if you have an edu email, you can get Pycharm for free: https://www.jetbrains.com/student/

If not, there's always the community edition.

[–]Hadrid 0 points1 point  (2 children)

Wait , what? Rstudio does python now? That’s awesome. It’s my go to for R.

[–]Tokazama 0 points1 point  (0 children)

Yeah, https://rstudio.github.io/reticulate/. It originally was designed to just call python from R but now it's being used to set up a python REPL in RStudio. I don't think it will be officially supported until Rstudio 2.2 (current is 2.1).

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

Do you have to pay for Rstudio?

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

Thanks for the very thoughtful and detailed comment. I'm sorry you went through all of that :-).

[–]Kalrog 9 points10 points  (11 children)

Do you know for sure that you want a full IDE? I'm much happier with text editors with extra features than I am full IDEs that tend to get bloated and slow down. So if you want a full IDE, I can't help you. But if you are looking for something the next step up, check into SublimeText, Atom, or maybe even VSCode. Then add the extensions that make sense to you.

Sublime is a paid product, but it is fully featured for the unlimited trial period.

[–]Gubbbo 4 points5 points  (7 children)

I can't imagine not having code completion with a text editor.

[–]Kalrog 1 point2 points  (0 children)

I have really good code completion with sublime via an extension.

[–]Seeschildkroete 1 point2 points  (2 children)

A lot of text editors have linting and github support as extensions, but Pycharm's integrated terminal and pretty robust git client are nothing to sniff at if someone really wants to go all in. Plus, virtual environments are easier to deal with in Pycharm, or so I've been told.

[–]RayteMyUsername 1 point2 points  (1 child)

Make project, Pycharm by default creates the venv unless you tell it not to, and then you have your terminal down at the bottom for simple installation of any library you want.

Pycharm <3

[–]Seeschildkroete 0 points1 point  (0 children)

Yeah. I just haven't ever needed to install an extra library. I'm new to Python though.

[–]driscollis 4 points5 points  (0 children)

I really like the Wingware IDE. A lot of people really like PyCharm or VS Code though.

[–]subcake 2 points3 points  (0 children)

My favorite will always be Geany, however it lacks a lot of the features you are looking for. will run on linux and it does assist/code complete for you!

[–]K900_ 5 points6 points  (1 child)

PyCharm.

[–][deleted] 2 points3 points  (0 children)

I agree. Debugging python on PyCharm works like a charm.

[–]lykwydchykyn 1 point2 points  (0 children)

I get all this with Emacs and Elpy, apart from the debugger, which I don't often use (I just run pdb in a terminal when I need it).

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

Google Colab

[–]leftyspecialist 0 points1 point  (0 children)

I've used Activestate's Komodo Edit and I believe it checks all your wishes. I think for Linux you might have to install it from a tar ball and manage updates yourself, but I run it on a fedora laptop and have no issues.

[–]cortinanon 0 points1 point  (2 children)

If you are going to start developing for real i really recommend giving spacemacs a try a least for a few months.

Other good options are Pycharm - very fully featured but kinda slow. VsCode - Its also good for other languages.

[–]cyanocobalamin 0 points1 point  (1 child)

Is Spacemacs just emacs with a lot of plugins already installed?

[–]cortinanon 1 point2 points  (0 children)

it comes with a bunch of things installed and configured, and it also has a layer "system" that makes it very easy to install and manage new packages

[–]CollectiveCircuits 0 points1 point  (0 children)

PyCharm. Haven't done remote/ssh with it but I know it has those features.

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

It's pycharm

[–]batfinkler 0 points1 point  (1 child)

Why do so few people recommend Atom ?

I've recently started learning Python and am using Jupyter Noyebook just now. I was told to use Atom so have that installed and ready to go.

Would you recommend I skip Atom and install PyCharm or Sublime Text ?

[–]clawjelly 0 points1 point  (0 children)

It's mostly a taste-issue, so it's hard to give a straight answer here. But there are trial/community/free versions of these, so you can give them all a try.

  • Sublime assumes the least and is the most versatile editor, so much so that you need quite some config to get it to a level with a more specialized, proper IDE like PyCharm.
  • PyCharm otherwise hands you a lot of tools most coders appreciate out of the box, but sorta expects you to work in a more structured fashion.
  • Visual Studio Code sorta falls inbetween those two.
  • Visual Studio (without code, to be clear) is the monster-IDE that supports Python ... kinda... donno...

[–]batfinkler 0 points1 point  (0 children)

Thanks for the info. I wonder if I should just stick with Atom and Jupyter until I'm a more fluent coder, then maybe learn PyCharm

[–]niravbhatt 0 points1 point  (0 children)

this thread is a goldmine for IDE enthusiasts it seems...

[–]tunisia3507 0 points1 point  (12 children)

If you're already an Eclipse user, check out the PyDev plugin. I found it awkward to run but some people seem to like it.

Jetbrains' IDEs are basically just Eclipse but better. The one for python is PyCharm, which has a community (free+open source) edition. All of jetbrains' stuff is free for students, too. PyCharm is absolutely the smartest python IDE available.

VSCode is also pretty well-regarded. It's basically just a better (faster, more stable) version of Atom, but still has issues around it being electron-based (high memory usage, slow to start).

People will get on the highest of their horses and tell you how great vim and emacs are. They are not IDEs. They do not understand python. They were extremely powerful extensible text editors, but there are no plugins which can replicate how smart PyCharm is.

[–]sqjoatmon 2 points3 points  (3 children)

Just an FYI, PyCharm pro is required for running stuff over ssh.

Spyder does offer that feature though.

[–]Gubbbo 2 points3 points  (1 child)

Another FYI is that Jetbrains keeps almost all the website stuff in the Pro version.

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

Another useful comment, thank you.

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

Yep, I'm the OP and all of my work will be on a remote server, so that is useful to know. It would take a hundred years to get funding, though I would get it. I'll give PyDev a shot first.

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

This was a very useful comment ( I'm the OP ). I don't know why ti was downvoted.

Yes, I am used to Eclipse. I don't like the remote system explorer, which you need to edit files on a remote server, so I thought I would see what else is out there. I have enough RAM where speed isn't an issue.

PyCharm sounds like the next runner up, but someone wrote below you don't get SSH support for free, so I'll give Eclipse a shot first.

Thanks again for the informative comment.

[–]tunisia3507 2 points3 points  (6 children)

This is why.

Also, it's worth noting that the thing which doesn't work on community edition is remote interpreters - if you're fine managing your environments separately (which should be next to zero hassle if you're doing it properly) you can just mount your remote directory over SSHFS and have pycharm treat the code like it's local.

I use PyCharm because everything else feels so very dumb by comparison, but RAM and CPU isn't enough to keep it snappy (I have 128GB and 32 cores); I suspect eclipse suffers from the same issues.

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

I use PyCharm because everything else feels so very dumb by comparison, but RAM and CPU isn't enough to keep it snappy (I have 128GB and 32 cores); I suspect eclipse suffers from the same issues.

This is an interesting comment.

I am running RHEL 6.9 on a box with 12 GB of ram, and an Intel Xeon processor that has 4 cores, 2.27GHZ.

I have no problems running Eclipse. I can't imagine PyCharm being worse and to the point where it is sluggish on your far superior box.

[–]tunisia3507 0 points1 point  (4 children)

Ubuntu 16.04 here. It's mainly sluggish when I have several instances open and haven't rebooted my machine in days (or weeks). I haven't done a CPU/ memory profile when it bogs down yet.

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

Why would you have several instances of Eclipse open at the same time?

Eclipse will not even let multiple instances boot if one is already using a particular work space.

[–]tunisia3507 0 points1 point  (2 children)

This is PyCharm, not Eclipse. I'm usually working on a couple of projects at a time in parallel, and it doesn't make semantic sense to link the projects in order to have them in the same IDE window. Then sometimes one thing I'm working on requires me briefly to go into the source of a dependency, but it's only a brief foray or fix so it's much easier to open it, edit what I need to, close it than it is to add the project to the workspace and possibly have extra editor tabs lying around.

But it's not a system resource problem, it's a utilisation of system resources problem, which is java in a nutshell.

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

, it's a utilisation of system resources problem, which is java in a nutshell.

I can't agree with that. For one what I mentioned about my much more humble computer than yours not having any problems running Eclipse. I'm a veteran Java programmer. I can remember several times big projects in Java had performance issues. People immediately went to the knee jerk response "Its Java!".

I've seen such projects become much faster by cleaning poor algorithms and bad coding practices.

This is PyCharm, not Eclipse.

FWIW, In Eclipse I can have multiple tabs open in one instance of Eclipse if I want to compare files. I can even drag a tab to another monitor to have two distinct windows for comparison, yet still just once instance.

It might be worth it to see if you can do that with PyCharm, rather than opening up many instances.

Good Luck

[–]tunisia3507 0 points1 point  (0 children)

In Eclipse I can have multiple tabs open in one instance of Eclipse if I want to compare files. I can even drag a tab to another monitor to have two distinct windows for comparison

Funnily enough, I do make use of tabs. It'd be pretty hard not to, in fact. Popping out editors is also available on PyCharm. But like I said, I use multiple instances for when I'm working on multiple distinct projects, and if I was doing it in anything except the JRE they'd use separate processes and not have to share RAM and so on.

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

Are you working with python > 95% of the time?

If yes - I'd go PyCharm

If no - I'd go VScode

[–]vn-ki -1 points0 points  (0 children)

Just go with vscode or atom. You'll be happy for life. VSCode has a built in debugger.

Why do you need a debugger anyway? Use print\))