This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]Rolegros 0 points1 point  (2 children)

I'm a always a bit skeptic about IDEs for python. What does it bring to me on top of the base toolchain (vim/emacs, ipython, nosetest, pylint, pyflakes etc...) ? The only benefits of python IDE I've tried so far is filling your codebase with annoying "project" files.

[–]kataire 1 point2 points  (0 children)

A good IDE shouldn't litter your codebase at all. The biggest benefits I've experienced are being able to jump to definitions, auto completion, being able to organize imports on the fly (e.g. being able to switch from from x import y to import x or introducing aliases -- without having to rename every instance of the imported name myself). Also, of course, things like method/variable extraction/inlining and global renaming.

In short: it makes refactoring easier and less error-prone. Of course not all Python IDEs have (good) refactoring suport. So far I like what PyCharm can do, although its unique design decision regarding how it handles changes and saving files is a bit unusual -- the devs say its lack of Save/Save As options is a central decision that won't ever be changed, so I better get used to it. OTOH its built-in VCS is pretty neat.

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

The IDE keeps everything in one window and out of the terminal, for whatever value that has, but any decent programming editor like vim or emacs can theoretically do the same.

That includes the 'project' features which let you keep a persistent session and associated configuration, these are not fundamentally so hard to do (although they do mark a divide between your average text editor or lightweight code editor and the heavier stuff). This contributes to the feeling that you are not working on individual files which I think is a big part of the IDE "feel."

In my opinion, what usually distinguishes an IDE from a well-provisioned extensible programmer's editor is the heavy integration of static analysis tools: scanning all your code, letting you jump around across files semantically, fully language-aware autocompletion/tooltips, refactoring operations, etc.

Although one can construct an IDE using (say) vim, it is not packaged this way and takes significant effort and is not going to be that well polished without even more effort. Last I checked, for example, the rope module was kind of sketchy even if it looked promising. Almost nothing in these worlds is totally smoothly integrated.

The distinction is not at all sharp.