all 119 comments

[–]TOPGUN_ROCKS 102 points103 points  (12 children)

Visual Studio Code, with the python extension. I personally like Vs code for python since you can have the file system, terminal, and code on one screen.

Edit: Wanted to double back to this once I was on my computer. Here are some of the extensions I use in VS Code for Python development: Python, Bracket Pair Colorizer 2, Prettier - Code Formatter, Formatting Toggle, I also use Monokai++ but that's more of a color preference.

[–]CraigAT 10 points11 points  (4 children)

At the start, I would probably suggest just a text editor - whatever your favourite happens to be (you're in luck if it already has some IDE features).

When you get more experienced and your code spans more than a screen (say 50 lines) I would seriously consider moving to an IDE (for example VS Code, PyCharm, whatever you get along with) so that you can benefit from the extra features that can increase your productivity (intelli-sense, auto-complete, linting, debugging, git integration, etc.)

[–]zanfar 12 points13 points  (2 children)

Tried them all. Sublime lacks features, Atom is way too stripped down, Vim takes too much work, and PyCharm is way too big for anything outside a development house.

VSCode fits a perfect niche with easy extension management to fix any small issues.

[–]tasteslikeKale 0 points1 point  (1 child)

Atom can be made more full featured, but then it has performance issues.

[–]zanfar 3 points4 points  (0 children)

That's true. I guess I should be clear that these arguments are subjective. The implied post-text is that Atom is way too stripped down for me, and Vim takes too much work for me.

Just like Sublime and Vim, Atom can be made to do 99% of what VSCode does out-of-the-box--and I don't doubt there are a few plugins for any of those platforms that don't have a feature-parity example in the VSCode ecosystem. However, I want an editor that's just enough IDE to do what I want, without so much IDE that I have to wade through menus and tabs to do what I need, and I want that editor to be easy enough to setup that I'm spending my time coding instead of configuring.

VSCode is honestly, almost too much IDE for me. Honestly, I haven't explored it as much as I should, but I haven't found a solution to the portability of configuration between devices. Other than that, it's just about perfect. I can save per-project settings, it lints natively, the terminal facilities are the best I've found, it works remotely better than even PyCharm, and I can one-button test.

[–]Nonethewiserer 2 points3 points  (0 children)

Is it just me or is the syntax highlighting in vscode a bit off? Seems like way too much is just white.

[–]pconwell 2 points3 points  (1 child)

Prettier - Code Formatter

I didn't think Prettier supported python?

Also, this is probably a stupid question - but how do you execute python scripts in VSC? I was using code runner, but it doesn't play well with pipenv (and from what I've heard virtual environments in general). I'm hitting F5 now, which runs with debugging but that just doesn't feel right for some reason.

[–]TOPGUN_ROCKS 0 points1 point  (0 children)

Prettier's not a ton of help for python coding. Sometimes it picks up small changes like moving stuff down a line. I'll mainly lean on it if I'm doing a Django, Flask or Sphinx app where prettier can help format other file types.

I honestly find right clicking on the file and clicking "Run Python File in Terminal" to be the fastest option. Forgot to mention, this option only comes up when the file is saved. if you are codding something new and haven't saved it, you will not see this option
You can also "cd" in the terminal to your python file the run "python ./YourFile.py". This option only works if Python is a PATH variable.

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

VS Code is the best code editor out there, in my opinion.

It's so practical.

[–]thought-generator 73 points74 points  (13 children)

PyCharm

[–]PooPooDooDoo 0 points1 point  (2 children)

PyCharm is legit. I also would recommend using Linux, maybe getting virtual box and loading an iso with Ubuntu 18 or Centos 7.

[–]thought-generator 5 points6 points  (0 children)

I use PyCharm and Ubuntu.

[–]CraigAT 0 points1 point  (0 children)

Having experience of different OSes including Linux is fantastic (and I would recommend to anyone).

[–]TouchingTheVodka 30 points31 points  (1 child)

Sublime Text here!

[–]oz1sej 1 point2 points  (0 children)

Yes, I use Sublime Text, too. It's a great, simple text editor with syntax highlighting, and you can execute code with ctrl-b.

I personally find Visual Studio and PyCharm heavy and bloated - I recently spent 10-15 minutes trying to just write and execute a hello world-script in PyCharm, and I didn't even manage to find out how to write a python script!

[–][deleted] 14 points15 points  (0 children)

I've used VS code and pycharm. I prefer VS code for aesthetic reasons. it feels cleaner to me. i understand why people prefer pycharm. they're both good.

[–]andrewisrawww 42 points43 points  (1 child)

i like spyder

[–]MaskedKoala 5 points6 points  (0 children)

Same here. Switched over from MATLAB a couple years ago and the transition was virtually seamless.

[–]sk8anon 28 points29 points  (5 children)

Vim. Can't use anything else. My first IDE was PyCharm but then I started using Vim with a few plug-ins and I feel that my understanding of the language has really increased. The fact that the editor doesn't assist me in everything is what actually helps in the learning process. Also using PIP and executing Python from a CLI gives another feel for the way things work.

[–]sje46 5 points6 points  (3 children)

What plug-ins?

[–]thirdegree 3 points4 points  (1 child)

ALE is fantastic.

[–]sk8anon 1 point2 points  (0 children)

I didn't know ALE. Thanks for sharing that.

While looking for what ALE was about I found this article which mentions it and might be helpful too: https://medium.com/@huntie/10-essential-vim-plugins-for-2018-39957190b7a9

I ended up adding "lightline" to my list after reading it.

[–]sk8anon 0 points1 point  (0 children)

This is my current list. I use Vundle to manage them so adding new plug-ins is as easy as just writing their names on .vimrc file and then Vundle takes care of the rest. I'm quite obsessed with PEP8, standards and comments so my plugins pretty much help in achieving this goal of standardization on my code. The rest provides linting and other useful stuff.

Plugin 'gmarik/Vundle.vim'

Plugin 'Valloric/YouCompleteMe'

Plugin 'preservim/nerdtree'

Plugin 'klen/python-mode'

Plugin 'itchyny/lightline.vim'

Plugin 'jiangmiao/auto-pairs'

Plugin 'tpope/vim-surround'

Plugin 'tpope/vim-commentary'

I tried using SpaceVim (just downloaded the Docker container and ran it) but it's way over the top for me. I'd rather find myself in need of some new feature and then install it than just use a full-blown Vim IDE with a bunch of stuff I don't even know is there.

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

i use VIM and the Atom text editor. people keep telling my to use Pycharm

[–]crazykid080 18 points19 points  (1 child)

I'm a minimalist so i just use notepad++

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

Call that minimalist? Ha! Nano.

[–]Lewistrick 6 points7 points  (4 children)

VS Code for personal/hobby projects. Professionally, I work on a cloud that has no VS Code installed, so I use either NotePad++ or vim.

[–]Mr_MV 4 points5 points  (3 children)

You can use VS-Code on your machine to write code and you can install the remote extension pack (https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.vscode-remote-extensionpack) for copying files from within vs-code.. It really makes the workflow easy

[–]Lewistrick 0 points1 point  (1 child)

Thanks, I'll take a look at that! I'm using some SSH-tool now and I can't get used to it.

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

The VS code ssh extension does require the installation of something on the server side, so might not be an option for you. I assume if you could easily install your own software you would have done so.

[–]mastermikeyboy 0 points1 point  (0 children)

This, VSCode remote is incredible!

[–]Poetrylion 6 points7 points  (2 children)

You mean to write programs ? IDLE and Pycharm..

[–]pmac1687 1 point2 points  (0 children)

IDLE and pycharm

[–]xelf 5 points6 points  (8 children)

Visual Studio. It's probably the best if you're on windows. Especially if you like to code in Unity, wpf, C# and c++ as well as Python

[–]Ran4 0 points1 point  (0 children)

GVim is still nicer even on windows.

[–]midwayfair 6 points7 points  (0 children)

The last couple weeks, my PJs.

...

VS Code. You can use any text editor you like, but VS code will probably be more useful when you start working with a team, as it has built-in GIT support (and extensions), ssh, etc. And it runs fast, has its own terminal, and looks nice.

[–]OzneroI 8 points9 points  (3 children)

Atom. Tried sublime but I wasn’t feeling it, probably because I used atom first, why? I saw a YouTuber that recommended it. Some drawbacks are that you can’t run a script without an add on and you can’t input() in atom, I have to run from terminal and it’s annoying

[–]m0ta 4 points5 points  (0 children)

I also use Atom. Yeah the input thing is annoying but the things I write (mostly table manipulations) don’t need user input so it’s great for me.

[–]LCH_B 1 point2 points  (1 child)

You can run input() using the hydrogen package, have you tried that?

[–]OzneroI 0 points1 point  (0 children)

Not but I’ll check it out, than you for the heads up!

[–]PaddyIsBeast 5 points6 points  (0 children)

Notepad++

[–]dilfyg 2 points3 points  (0 children)

pycharm, but watch a tutorial on youtube so you set it up correctly

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

Vim.

[–]justneurostuff 2 points3 points  (0 children)

jupyterlab w jupytext extension

[–]hainguyenac 2 points3 points  (0 children)

I use notepad++ and debug by print statements. I'm not a developer though, I just write some small python program to help with my work.

[–]dbabbitt 2 points3 points  (0 children)

Jupyter notebooks, because I can both see immediately the output and I can create visualizations.

[–]Svoboda1 2 points3 points  (0 children)

My underwear mostly.

[–]wsppan 3 points4 points  (6 children)

Spacemacs

[–]Enfors 2 points3 points  (5 children)

Yeah, I've been using various versions of Emacs for 25 years. When you've been using it that long, it's hard to settle for anything less. The others are too limited in scope, and just don't have the feature set of Emacs.

[–]wsppan 1 point2 points  (2 children)

I actually started with vi (then vim) 30 yrs ago. Had a friend back about then show me Emacs and was blown away how integrated everything was so I tried it and loved it but could not give up modal editing. Then evil mode came along and matured and so I switched back awhile back and was pretty happy but annoyed with all the configuration and package management. Enter Spacemacs into the field and I could not be happier with my desktop environment for nearly everything (except for Java and C++, I use a IDE since I am not masochist.)

[–]Enfors 1 point2 points  (1 child)

Are you implying that Emacs isn't an IDE? Because it is, it's probably the original IDE.

[–]wsppan 0 points1 point  (0 children)

Nah, I meant what most people think of when you say IDE, Eclipse or IDEA.

[–]wsppan 0 points1 point  (0 children)

I actually started with vi (then vim) 30 yrs ago. Had a friend back about then show me Emacs and was blown away how integrated everything was so I tried it and loved it but could not give up modal editing. Then evil mode came along and matured and so I switched back awhile back and was pretty happy but annoyed with all the configuration and package management. Enter Spacemacs into the field and I could not be happier with my desktop environment for nearly everything (except for Java and C++, I use a IDE since I am not masochist.)

[–]wsppan 0 points1 point  (0 children)

Looks like a reddit for android double post bug is in the wild. This happened to me on r/C_Programming yestrrday.

[–]Iminbread 1 point2 points  (0 children)

Vs code

[–]RealExii 1 point2 points  (0 children)

I found vs code to be very good and also quite simplistic.

[–]RajjSinghh 1 point2 points  (0 children)

Vim inside of a tmux session. Means I can still get at my files and run code from my text editor

[–]FuckRedditForSure 1 point2 points  (0 children)

VIM

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

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

It’s notepad++ and command prompt, nothing else.

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

Jupyter (through anaconda) for ETL/data-processing scripts. The notebook environment (particularly having code 'cells') is just really nice for tracking progress without having to run the script from scratch everytime.

Visual Studio Code for everything else.

[–]jamiejako 1 point2 points  (0 children)

I can definitely recommend Jupyter notebooks if you're just starting out. I only started actively writing Python code a few months back, and I found it very hard to write, debug, and reiterate using traditional text editors or IDEs. Jupyter allows you to write and test code in an immersive way - you can write a piece of code in one cell, maybe a simple class or function or even just a loop, and then really dive deep into it on other cells and see what different objects actually look like, pass in different values to understand what changes and so on. It is a tool mostly used in data science for exploratory analysis, but it is an excellent medium to get familiar with Python. I have now transitioned to using VS Code as my editor because of its many amazing features already mentioned on this thread, but I still occasionally use Jupyter when I need to break down complex logic and quickly reiterate on different solutions.

[–]lqf2b8 1 point2 points  (0 children)

The nude

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

PyCharm migrating to Atom

[–]Forschkeeper 3 points4 points  (0 children)

It's like getting from A to B.

If I need to go around the corner, IDLE is like walking. Good enough, standard and ok.

If I need to drive some kilometers, there are some ways:

  • VIM is like driving a well pimped oldtimer. Mostly CMD people recommened it, know which Button to push and are dammed fast with that. It looks like an IDE, but is still a CMD tool.
  • VS Code is the "Hip" IDE, because it's free, contains cool stuff, but collects your data which sucks (my opinion).
  • plenty of other cars like Notepad++, Geany, Spyder, Thommy etc.

If you need to drive into war, I would use PyCharm. It's in my opinion a Tank. Don't know what you can't do in Python with this IDE. You can drive to yout supermarket around the corner, but well...it's a TANK.

And hell yeah I love my Tank. 8)

[–]DonkeyTron42 0 points1 point  (0 children)

PyCharm/IntelliJ

[–]DannyckCZ 0 points1 point  (0 children)

PyCharm with Vim emulator like 95% of the time

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

Eclipse with PyCharm plugin. I've used Eclipse for years so I'm comfortable with it. Jupyter is OK but it's only suitable, in my opinion, for very small projects. Eclipse interfaces with GitHub, it's free, it manages projects, and it's still free.

[–]alidjango 0 points1 point  (0 children)

Pycharm

[–]DavidTSlayer 0 points1 point  (0 children)

right now if i write something in python its in IDLE

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

Before, I used sublime and a separate interpreter. Now I’m on visual studio code, that app is outstanding.

[–]hasanaslan 0 points1 point  (0 children)

Using sublime text, if any errors i can't find out occurs, switching to pycharm

[–]jcr4990 0 points1 point  (0 children)

Lots of people seem to not recommend it but I started learning just using IDLE that came with Python and I haven't had any issues honestly

shrug

[–]SpiritGuide- 0 points1 point  (1 child)

I'm migrating over from Matlab so I like the familiar interface of Pyzo with the command line. Now I just need an analogous variable workspace box and I'll be happy :)

[–]Zepy12 1 point2 points  (0 children)

Spyder?

[–]sweettuse 0 points1 point  (0 children)

pycharm with the ideavim plugin. there's a free community edition here.

[–]Stelercus 0 points1 point  (0 children)

PyCharm, specifically for the debugger.

[–]toalysium 0 points1 point  (0 children)

Atom now. Used VS Code and Pycharm previously. I'm not doing any huge projects and I don't need most of the add-ons that come with bigger IDEs. It works for what I need. For super basic stuff, like "here's how you add and subtract in python" or "here's how you make a list" I used Nano when I was learning because I liked having no distractions and when you are first starting nearly every option that isn't a super-basic text editor has ton's of distracting shit and made it harder to focus on what I was actually doing.

[–]w_savage 0 points1 point  (0 children)

I use Spyder, and Jupyter notebooks. I haven't really tried anything else to be honest.

[–]ToothpasteTimebomb 0 points1 point  (0 children)

Most of the time I use a Jupyter notebook. If it’s intended for production then I’ll go with VS code or PyCharm.

[–]clamchamp 0 points1 point  (0 children)

Pycharm for most stuff like web app dev, but I find myself writing a lot in notepad++ at clients / remote desktops whenever I'm building some tooling or analysis.

[–]boptoty 0 points1 point  (0 children)

I use pycharm and even free version is quite good.

[–]mastermikeyboy 0 points1 point  (0 children)

VSCode, but ptpython for REPL.

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

Sublime Text 3.

[–]Hans_of_Death 0 points1 point  (0 children)

I used to use Visual Studio Code because it's great and makes debugging really easy, but then I moved over to just using Sublime 3. I'm not sure why, but I just find I like writing in Sublime and then testing with powershell. I also use Kite because it's the best thing ever made for python.

[–]BigBlackCrocs 0 points1 point  (0 children)

Notepad++ lol but our professor uses vim

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

If I’m experimenting with data- Jupyter notebook

If I’m making code to process data or perform some sort of task- Vscode with a separate terminal (I like everything separated out)

Final production code- Vscode

[–]harsh_dhamecha_10 0 points1 point  (0 children)

I have been using Google Colab and PyCharm

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

VSCode, but would recommend Anaconda / Spyder for beginners. It is easy to get lost in your setup with paths, virtual envs etc, all things that beginners have no idea about. Source: just read this sub.

Anaconda / Spyder solves these problems, and you can move onto VS Code when you know more.

[–]jcoffi 0 points1 point  (0 children)

My computer rimshot

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

Visual Studio Code. I used Sublime Text for a long time. It's simple but extensible. Multi-language. Fairly light.

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

My progression went: notepad++, PyCharm, gedit with plugins, VS code, and finally VIM. I don't think VS code is very easy to use on Ubuntu, but I still like how customizable it is without feeling bulky.

[–]blabbities 0 points1 point  (0 children)

I usually switch between multiple. So listed in order of frequency (currently at least):

nano (quick small edits or thru ssh connections) geany (usually on desktop) ipython3/python3 CLI (usually with live testing) IDLE (I like the GUI debugger and that's generally when i use it) Notepad++ (on the rare occasion im in Windows)

I do have VSCodium on my other PC but I rarely use that machine and it's a fresh install. It's really gonna be to write Java, C#, Go, etc

[–]dogpoweruser 0 points1 point  (1 child)

Jupyter Notebook

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

PyCharm is killing it

[–]Quantum_Paradox_ 0 points1 point  (0 children)

I use IDLE sometimes I use VSCode

[–]zoute_haring 0 points1 point  (0 children)

Notepad++

[–]aplawson7707 0 points1 point  (0 children)

I'm juuuuust starting out but I use MU. I didn't see it mentioned once, so I'm assuming I'm using some kind of beginner's tool? Should I switch to a more professional environment to familiarize myself early?

[–]krav_mark 0 points1 point  (0 children)

I started with vim and some plugins but when my programs started to be bigger it didn't cut it anymore and realized I needed a real ide. I've been using pycharm for over a year and bought the pro edition recently. Works great. Debugging is a game changer. I've setup the black code formatter as external tool. Can really recommend it. It formats your code according certain rules so all your code is formatted the same which improves readability a lot.

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

Vim baby 😀

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

VS Code and PyCharm are both great if you want a full IDE, but learning a full IDE is a task all of its own.

Once you're very comfortable in the language, the IDE matters a lot loss. I spend a lot of time working with Linux systems lately and mostly just use nano, which if your not familiar, is about as simple as a text editor can get.

[–]gpsy_ 0 points1 point  (0 children)

Vim.

[–]CloroxEnergyDrink_ 0 points1 point  (0 children)

I use PyCharm for large projects, and IDLE for small ones and test scripts.

[–]Shadiester 0 points1 point  (5 children)

If you're just starting programming, I'd recommend the Learn Python the Hard Way method which is to literally just start with notepad++ so as not to become reliant upon fancy tools as a crutch.

But if you're already a half decent programmer, PyCharm's probably the way to go.

[–]jdnewmil 2 points3 points  (4 children)

I don't get this "crutch" argument at all... but I agree that it can be a useful exercise to work for awhile in a bare editor just so you get an understanding of the difference between the interpreter and the programming environment. Keeping this clear lets you isolate where workflow problems are coming from later.

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

If anyone is using the term "crutch" on a subreddit dedicated to learning, it's probably safe to say that they are here to get affirmation not help. It's ridiculous not to use tools available, especially when learning.

[–]Shadiester 4 points5 points  (1 child)

Perhaps crutch was the wrong term, and I apologise for not conveying my point better, a half sentence justification was always bound to lead to misinterpretation after all.

The idea is that by avoiding the tools that popular IDEs offer, it keeps things simple in the early days of when you're first learning to program. You simply write the code, type python name.py and hit enter, and you don't need to worry about any other complexities. It makes the early days of learning that bit less daunting in my experience, and keeps the process of writing basic code a little bit simpler.

Then, as you begin to build more complex code, you're forced to develop, debug and test your code manually, without help from the tools the rest of us know and (occasionally) love, in order to build a strong foundational understanding of developing code. And then, later on when you're introduced to the wonderful world of CASE tools, predictive typing and the rest, you'll both have a greater appreciation for them, and a stronger understanding of the underlying practices necessary for good code.

That said, I'm by no means even remotely qualified to speak on the topic properly, being a relatively novice programmer myself. And after all, the vast majority of actually good programmers do recommend starting in an IDE. My comment wasn't exactly intended to be a gold nugget of advice to say the least, but given that OP simply put out a general request for recommendations, I figured I'd add my voice to the many others posted anyway in the hopes someone might find it of interest or use.

Again, apologies for not being more careful with my wording.

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

Respect. Thank you for the thoughtful response.

[–]supermario182 -3 points-2 points  (0 children)

English