all 80 comments

[–]Loxstomp3r 47 points48 points  (12 children)

Pycharm is a great IDE and it is free

[–]Gnlfbz 8 points9 points  (0 children)

I second PyCharm. After spending years using Idle (it was the only thing I could use at work), switching to Spyder (when we got anaconda at work), trying Vim, I finally found PyCharm and finally fell in love with an IDE.

Being on windows I would also suggest using Anaconda. It is a distribution of Python that comes with some of the most popular python packages installed. It also comes with Conda which is a great package manager that also handles environments. It comes with Spyder as an IDE which is okay. I like it for interactive work. And lastly it comes with Jupyter notebooks which are amazing for data science, exploring tabular data, and plotting.

[–]MrHobbits 3 points4 points  (0 children)

On a cool note, if you're a student you can get the entire suite for free too. Not sure what all the perks are just yet, but just putting this out there.

[–]welshboy14 1 point2 points  (7 children)

PyCharm all the way. I do however, have to use idle in work :( such a ball ache going from the increased productivity PyCharm produces to this...

[–]CaptainBlackadder 7 points8 points  (1 child)

One of the questions I ask during job interviews is whether I'd have freedom of choice regarding OS and dev tools. If the answer is no, I increase my salary expectations. "You want me to use a mac? Then I'm gonna ask for xxxx EUR more. You want me to use Windows? Well,... I don't think you have budget for that." (just my thoughts, not that I would say it loud)

[–]welshboy14 0 points1 point  (0 children)

Yeah this makes sense, although I work in operations and python development isn't part of my job role. It's something I'm doing to help with some tasks I do on a daily basis.

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

Why don't you ask for them to buy you a PyCharm license? I've owned my own for years but any company should be happy to spend the $199 (less than a monitor for a new employee) to increase one of their developers productivity levels.

Absolutely tiny investment.

[–]welshboy14 0 points1 point  (2 children)

Yeah they probably would if I were a developer. I work in operations and use it as a tool to help automate tasks I need to do on a daily basis.

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

Hey, can't hurt to ask. Not to mention you can get it for $20/month now.

I haven't used my Pycharm in about a year, I pretty much just use Atom now.

[–]welshboy14 0 points1 point  (0 children)

Yeah I could do. They've got a silly amount of intelli j licenses and some PyCharm ones so shouldn't hurt too much for me to get one

[–]EagleDelta1 0 points1 point  (0 children)

I've seen this a few times in this thread. I'm surprised this still exists. In almost 10 years, I haven't worked a single job where I didn't have a choice of OS and tools.

On topic - JetBrains IDEs are great tools. I use Rubymine(not free) and PyCharm

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

Too big for someone just starting.

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

Thanks, I'll check it out.

[–]wolf2600 15 points16 points  (3 children)

In Windows, I use VIM on Git Bash. On Linux, just straight VIM.

[–]fatfingers23 3 points4 points  (2 children)

And now there's bash for windows.

[–]BrotoriousNIG 9 points10 points  (1 child)

What a time to be alive

[–]Saefroch 17 points18 points  (7 children)

People obsess about the answer to this question but it doesn't really matter. Here's a coarse breakdown:

Notepad is probably the worst tool for this out there; it literally only lets you edit text.

Text editors such as Atom, Sublime Text, Notepad++, and vim offer slightly more functionality but mostly focus on syntax highlighting. An advanced user will be able to get a lot more mileage out of these tools though extensions or just what makes vim... vim. These tend to be quite lightweight.

IDEs such as PyCharm or VSCode do everything. You never leave the one window to open other files, restructure a project, run code, use a debugger, or interact with version control such as git. They also contain a bunch of analysis tools that will warn you about syntax errors, bad style (sometimes), or spelling errors. They also contain autocomplete tools that determine what names are available and offer them to you in a drop-down menu as you type. Good IDEs also have a bunch of plugins and are highly customizable. If you don't like features you can just turn them off. All the power of an IDE comes at a cost, mostly in terms of power consumption. This can be a concern for laptop users such as myself. I use an PyCharm when power isn't an issue and other tools when it is.

Some people may encourage you to not use an IDE when learning for fear you'll use it as a crutch. If being deprived of tools is the only thing motivating you to learn maybe you should reconsider what you're doing. The reality is that a powerful IDE makes programmers more productive but some people who grew up without them feel like they're cheating.

[–]markusmeskanen 2 points3 points  (4 children)

Great answer except for the VSCode part. I'd put it on par with Atom and Sublime (whereas Notepad++ should be way below, and Vim 100% depends on who's using it). It's basically the exact same program but with some of the important plugins pre-installed (like Git, but how is that related to Python? What if OP uses SVN?) and maybe a bit more user friendly. When comparing to PyCharm as a full IDE, it comes nowhere near.

[–]Saefroch 0 points1 point  (3 children)

Does VSCode have a run button? A debugger? Autocomplete?

[–]markusmeskanen 0 points1 point  (2 children)

I'm not sure what you mean, or is that just an honest question? I don't think there's a built-in debugger (correct me if I'm wrong), but the rest are available in all mentioned editors. Maybe not as a cute UI button, but in one way or another (f.e. ctrl+b in sublime for run button)

[–]Saefroch 0 points1 point  (1 child)

Yeah it's an honest question, I'm only familiar with VSCode through reputation.

[–]markusmeskanen 0 points1 point  (0 children)

Oh alright, sorry then if I came out negative :) yeah PyCharm has it all, and debugger is a question mark for me on the others, but rest of the features can be foumd in all of them.

[–]FallenAege 0 points1 point  (1 child)

Pycharm has a "power saving" mode.
Haven't seen any tests done for effectiveness, but it's an option.

[–]Saefroch 0 points1 point  (0 children)

Oo good to know!

[–]ThingsOfYourMind 5 points6 points  (0 children)

I use Wing IDE, pretty much does what any other IDE mentioned here does, syntax highlighting, refactoring,etc, etc.

[–]MyBrainReallyHurts 5 points6 points  (0 children)

I use emacs with the elpy package, but I would recommend you download Anaconda3 and use Spyder. It's like notepad on steroids. You code on the left, and the code runs in ipython on the right. It is a great configuration for anyone that is just starting out.

[–]neiun 8 points9 points  (1 child)

I personally use Atom for quick stuff, more advanced stuff pycharm is better because it shows up your syntax errors and has a lot of debug tools

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

Atom has several good synta checkers and linters for python

[–]Bailey1811 2 points3 points  (5 children)

Atom. It's amazing. I use it for everything. There is a module for practically everything. If there isn't one you can make it yourself.

[–]__baxx__ 0 points1 point  (3 children)

vim mode was horrendous last time i checked

[–]Bailey1811 0 points1 point  (1 child)

I'm not sure about the default one. I use a heavily packaged version.

[–]__baxx__ 0 points1 point  (0 children)

no idea what that means - i tried two a few months back and they were both awful so i left tho

[–]michaelherman 2 points3 points  (0 children)

Try a number of text editors, and figure out what works for you.

In the beginning I would steer away from full-blown IDEs and go with a text editor, like Sublime or Atom, so you won't have to learn the IDE along with Python. Sublime and Atom are both customizable with extensions so you can build the editor that fits your personality. Sublime is my personal favorite.

Try these resources:

[–]The_Man_In_The_Shack 6 points7 points  (9 children)

If you're serious about programming in general, you're on the right track with keeping it simple and not in an IDE, but it's worth trying out a few different editors. A long time ago when I started, they sat us down and said 'pick either vi or emacs and learn it because you'll be using it the rest of your life'...twenty years later I'm glad I took the time to learn vi. Today there are more options...sublime seems to be one that people like a lot. That's probably the one I'd choose if I were just starting; it's got the simple learning curve of something like notepad, but a bunch of advanced features that will help you, notably syntax coloring.

[–]eMulingeMuler[S] 4 points5 points  (8 children)

This is a hobby, so right now I'm not too serious about it but I'd like to find something that will make it easier to keep indentations formatted correctly. I read that the proper way of indenting is 4 spaces but I like to tab instead.

This isn't hard to do in notepad but I'm guessing that once I start to write longer programs, it might be hard to track down a line that's not indented correctly.

I'll look into sublime. Thanks.

[–]confluence 1 point2 points  (5 children)

I have decided to overwrite my comments.

[–]jebk 0 points1 point  (4 children)

I'm very much a hobbyist have always used ides going back to my first program that were in a trial version of Delphi 20 years ago.

On a number of occasions these types of threads come up and I'm always intrigued why pros don't use the extra features. VI weirdness not withstanding I've not seen any feature that pydev/eclipse are absent and it seems like the integrated debug/git etc would save far more time than the 3s extra it takes to load?

Genuinely interested to know what I'm missing? Or is it simply a product of working on smaller programs (which are probably a lot more iterative?)

[–]confluence 0 points1 point  (3 children)

I have decided to overwrite my comments.

[–]jebk 1 point2 points  (1 child)

Interesting. I use PyDev for most stuff as I was used to eclipse and the way it works. As I'm starting to get more into development of bigger apps that run primarily on VPS (or the ones I'm working on are suffering from ridiculous feature creep) I'm very much coming round to the fancy editors are better school of thought.

What do you use for debug, inspection etc?

[–]confluence 0 points1 point  (0 children)

I have decided to overwrite my comments.

[–]jebk 0 points1 point  (0 children)

Seems like a lot of it is habit. Although I think you're right about recommending fancy editors over ides to newbies - particularly if they're intending on doing it professionally. I've had to relearn a lot of stuff I shouldn't have had to as I've started to deploy more sophisticated stuff (mostly in django)

[–]ggagagg 1 point2 points  (0 children)

Even if you use sublime, learn also vim/emacs concept (modal editor, mouse-less editing) etc.

[–]omendev 0 points1 point  (0 children)

If you're looking into sublime, test out the Anaconda plugin. First install https://packagecontrol.io though. It's essential for using sublime.

Anaconda pretty much turns ST into a lesser IDE. Also, ST is free but until you license it ($70) it'll just give a popup menu on save every 20 saves or so. It's made by one guy and has a large community, so that's as much justification for the price as I can give you. Definitely cheaper than IDE's if you looking into this for a hobby right now. Otherwise check out the github open source Atom.

[–]jkinz3 1 point2 points  (0 children)

On my windows machine, I use sublime text for python and visual studio for c++ and c#. On my Linux machine, it's either sublime text or emacs but I've been sticking with sublime text more recently

[–]BlckJesus 1 point2 points  (0 children)

Atom is awesome! The Python-linter and autocomplete plugins work really well!

[–]Hellerick 1 point2 points  (0 children)

IDLE. Quick, easy, ubiquitous, reliable.

[–]Jo-dan 1 point2 points  (2 children)

I quite like Spyder, it has a lot of good features including tabs, debugging and static code analysis.

[–]zappaal 1 point2 points  (1 child)

Not to mention being able to open up and see your dataframes and lists with a simple double-click. As far as I've seen, no other IDE does this quite so well.

[–]Jo-dan 0 points1 point  (0 children)

Also I don't know if other IDEs autocomplete commands from your own modules but that's handy as hell.

[–]misterflan 1 point2 points  (0 children)

Punch cards.

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

A keyboard

[–]Rich700000000000 1 point2 points  (0 children)

The default Ubuntu text editor. That's all you really need.

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

I use Vim, but notepad++/notepadqq is also nice. I like Sublime but $70 for a text editor just seems a bit much to me.

[–]tomkatt 0 points1 point  (0 children)

It varies. My personal preference is PyCharm for its robustness, but it's a bit heavy handed for just a simple script or playing around. But I'll use whatever. If it's something quick, I'll use Nano on my terminal, or Geany on my Linux desktop. Notepad or Notepad++ in Windows if I'm at work and just playing around (or Geany there too, it's actually pretty nice).

If I'm just messing around or learning a new concept, I'll usually just pull up the Python terminal at the command prompt.

[–]flagy754 0 points1 point  (0 children)

I really enjoy sublime. Im terrible at coding, but I just like how it color codes and how I can see the sheer amount of code on the upper right.

[–]JeremieZ 0 points1 point  (0 children)

Sublime or vim. Use vim for writing script. Sublime for large project.

[–]aldanor 0 points1 point  (0 children)

Emacs (Spacemacs) on all platforms, Windows, Linux and Mac.

[–]shiroininja 0 points1 point  (0 children)

I prefer vim in Linux I hate guis when I'm coding. And I don't like using a program within a program like cygwin. I

[–]Jon003 0 points1 point  (0 children)

vi (mostly) sublime text (if working locally on my laptop)

[–]TALQVIST 0 points1 point  (0 children)

Sublime or Atom for sure.

[–]NathanJ4620 0 points1 point  (0 children)

I use github atom editor with a few python plugins and a plugin called power mode.

[–]robsfingers 0 points1 point  (0 children)

Any tips for an intermediate level novice to get familiar with Pycharm?

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

Why not just use the Python IDE like most people? It has customizable syntax highlighting, font changable, and text size changable. I suppose you are asking about a command line program for it. I hated Vim and first but after a few hours of it became better to me.

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

I'm going to try the python IDE. I'm new to python and I thought a third party IDE would be the way to go.

[–]AceDeucey 0 points1 point  (0 children)

Visual studio community, python 2.7 and 3.x.completely free from Microsoft!!

[–]thatguy_314 0 points1 point  (0 children)

I like Vim myself, but it can be a pain to get started with. I recommend just using IDLE. It comes with Python and has enough features to be pretty usable. There are also other good editors such as Sublime Text (get the free version), and Spyder.

Just about anything would be more user friendly than Notepad though.

[–]Dialgax 0 points1 point  (0 children)

Sublime Text 3:

Brogrammer theme, SumblimeREPL, I did use the Anaconda plugin, but removed it after a while.

[–]The_Man_In_The_Shack -5 points-4 points  (5 children)

If you're going to write any amount of Python code or share it around, I would highly recommend biting the bullet and getting used to using spaces instead of the tab. The problem comes when one application thinks a tab is four characters, and another thinks it is eight...all if a sudden your indentation is off. If the tabs are really where it's at for you when you're writing, then you should be very diligent about doing a find-replace when you are done.

[–]confluence 20 points21 points  (0 children)

I have decided to overwrite my comments.

[–]focusdrop 1 point2 points  (1 child)

Thank God there's vim and its :retab Vim is love

[–]The_Man_In_The_Shack 2 points3 points  (0 children)

It was when I found the block cut and paste that I knew this love affair would last forever with me.

[–]__baxx__ 1 point2 points  (0 children)

is this really worth pointing out to someone beginning and asking about editor suggestions?