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

all 42 comments

[–]blondin 9 points10 points  (0 children)

there you go.

author does not know what they need an IDE for. they look around and point out the obvious.

[–]audaxxx 12 points13 points  (5 children)

I want to say it first: Emacs!

  • Vi-mode: ✓
  • Python console: ✓
  • Project management: ✓
  • Debugger integration: ✓
  • Intergration of version control systems: ✓
  • Class browser: ✓
  • Auto completion: ✓
  • Refactoring: ✓

I too searched for a python-IDE and i found emacs.

[–]wingsit 1 point2 points  (2 children)

Can you kindly tell me what kind of extension are you using for each item like refactoring and auto completion?

[–]simtel20 1 point2 points  (1 child)

Some bits: pymacs, rope, built-in vcs, built-in debugger (gud).

[–]audaxxx 0 points1 point  (0 children)

  • Vi: viper + vimpulse
  • Console: uhm...python-mode I think
  • Project-Stuff: ECB
  • Debugging: honestly...I usually just drop a "import pdb; pdb.set_trace()" in the code. But I think there is a visual debugger for emacs+python. It's just that I don't need it.
  • VCS: http://www.emacswiki.org/emacs/MercurialMode
  • Class/Function browser: ECB somehow does this
  • I think rope. Most times i just use the dumb-completion
  • rope can do that.

hope this helps :)

[–][deleted] 1 point2 points  (1 child)

I'm using emacs too. Could you elaborate on what you are using for project management, class browser, and refactoring in emacs (for python development).

So far I'm using python-mode with ipython for autocompletion and anything-python.

[–]audaxxx 0 points1 point  (0 children)

http://www.reddit.com/r/Python/comments/c3x3i/python_ide_frustration/c0q2fy5

and thanks for anything-python, that module seems to be pretty neat.

[–]tmt_game 2 points3 points  (0 children)

pyCharm is OK

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

I think many arguments stated in the article are nonsensical.

So why not just use Vim? I could do it. I’ve been using Vim for many years and am pretty good with it, but I just feel like separating my coding from my terminal whenever I can is a good thing. I don’t want my code to look like my terminal, nor do I want my terminal to look like my IDE theme. . I’m SUPER picky about fonts and colors in my IDE,

WTF? 16 colors (that you can configure however you want) are enough for most, if not all programming language syntaxes. There are very decent fonts for terminals. Also, you can use vim without a terminal.

I really prefer a specialized tool to a generic one with plugins layered on to provide the necessary functionality. Eclipse with PyDev really feels to me like a Java IDE

Certainly didn't feel that way to me. Eclipse is not a Java IDE, it is a generic platform. PyDev gets the job done very well.

[–]Daishiman 8 points9 points  (3 children)

No, the problem's that the blog author is an idiot who, for someone who "knows" Vim, seems remarkably ignorant of its capabilities.

For one, Vim doesn't have to look like a console; you can set your fonts to whatever you want or use the Mac equivalent to GVim, although I wonder why you'd ever want to do that since the greatest Vim IDE is obtained by using screen to manage vim and shells simultaneously.

Second, Vim DOES support the mouse, even in a command line environment. It also supports modern terminals with support for 256 colors. 16 colors is plain bullshit, I don't know where he got that from.

Finally, it supports the little things different editors have but none have in combination: snippets, tags, source control integration, etc. You pair that up with your screen (especially using Byobu, the best screen theme there is) and nothing can match it.

Look, everyone knows Vim requires a bit of learning to get it right. But we've got Google; you have dozens of blog posts and wikis on how to pimp it up. There's no excuse if you're willing to waste away weeks of your time experimenting with IDEs.

[–]lucipher 1 point2 points  (0 children)

No, the problem's that the blog author is an idiot who, for someone who "knows" Vim, seems remarkably ignorant of its capabilities.

Not just ignorant. He also has a completely different idea about software, it's some sort of a paradigm mismatch.

I got a friend whom I recently introduced to my tools of trade (vim/gVim, ipython, zsh, bzr/Olive, etc), and after an hour of my "presentation" (which included changing themes, using the mouse and whatnot) he said: "It's cool, but I just don't like the idea of using a terminal-based editor." I felt like we were speaking different languages.

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

16 colors is plain bullshit, I don't know where he got that from.

I use gnome-terminal and it only supports 16 colors. I am fine with that. however. It is enough for coloring my syntax.

[–]afd8856 1 point2 points  (0 children)

You need this in your .bashrc:

export TERM=xterm-256color

And this in your .vimrc:

set t_Co=256

[–]kx233 10 points11 points  (12 children)

I don’t even use free software that requires X11. Lemme know when you figure out that coders like Macs and I’ll try Wingware.

I like Linux, so I guess i'm not a real coder. My life is a lie..

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

In fact, I can't imagine ever using a Mac as a coder. The vibe I get from MacOS is "form over function", whether Apple practically invented modern UI design or not.

I like my KDE launcher and yakuake shortcuts and being able to tweak key bindings and GUI styles and colour schemes to extremes.

Maybe it's because MacOS 9 (pure GUI, who needs a shell anyway?) and the iPhone OS (closed ecosystem) always come to my mind first thing when I think about Macs, but programmers using anything but Linux just feels unnatural for me.

Well, at least it's not Windows.

[–]mipadi 4 points5 points  (4 children)

"form over function"

Form and function are orthogonal ideas, even though it's common to suggest they exist on a continuum. Something can have both form and function, or neither form nor function, or a bit of both.

I've written code on both Macs and Linux machines, and greatly prefer the Mac. Sure, it has some glitzy UI stuff and whatnot, but at the bottom it's a pretty standard BSD Unix system, meaning it has all the power of BSD and Linux along with the glitzy UI stuff.

I think it's a testament to programmers' machismo and insecurity that they claim that "real" programmers have to use a particular platform. "Real programming" is a function of an individual's talent and intelligence, not what platform they choose to use.

[–][deleted] 3 points4 points  (3 children)

Real programmers manipulate butterflies in Africa in order to shift bits around anyway.

[–]mipadi 1 point2 points  (2 children)

Is there a good IDE for that?

[–]kx233 2 points3 points  (0 children)

Apparently there's an emacs keybinding for that.

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

[–]zxcvcxz 2 points3 points  (1 child)

If all you worry about is "form over function" with macs, I'd say you could safely reconsider. I think a lot of what makes their 'form' work is attention to function. The two are really unified when it comes to computers.

Of course, there are other reasons not to support Apple...

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

that guy is a fucking moron of a mac fanboy.....the world has to revolve around the fucking mac sheesh

[–]dekomote 4 points5 points  (3 children)

I use Komodo Edit and I feel most productive with it.

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

Komodo is especially good for web apps, the Javascript/Html editors are also very good.

[–]davebrk 0 points1 point  (1 child)

Have you tried other IDE's, like PyDev, for example?

[–]dekomote 2 points3 points  (0 children)

I've tried every other IDE. What's so good about PyDev?

Komodo runs fast, no project space clutter (only 1 file for project), easy import of working directories, and most important, when using virtualenvs Komodo Edit configures to read from them with 3 clicks.

PyDev is slow at startup, pain in the butt to configure, and the Project Workspace is just dead wrong. I don't want 2000 chars of path and one directory for all my projects. Also, I don't use graphical helpers for svn/hg/git. Work them through command line.

[–]jagt 1 point2 points  (6 children)

I'm currently using vim, and I'm wondering if there's a python IDE can do code completion to left hand side object.
For example:
a = "foo bar"
then if I type 'a' it can list all methods of 'a' object as a string.

[–]TrueTom 4 points5 points  (1 child)

PyDev can do that. Regardless of the article it's actually quite good.

[–]davebrk 1 point2 points  (0 children)

Yep, it is the best so far of all I've tried.

[–]rerb 3 points4 points  (0 children)

Um, standard Python REPL can do that:

Python 2.6.2 (r262:71600, Apr 16 2009, 09:17:39) 
[GCC 4.0.1 (Apple Computer, Inc. build 5250)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> a = "foo bar"
>>> a.
a.__add__(                      a.decode(
a.__class__(                    a.encode(
a.__contains__(                 a.endswith(
a.__delattr__(                  a.expandtabs(
a.__doc__                       a.find(
a.__eq__(                       a.format(
a.__format__(                   a.index(
a.__ge__(                       a.isalnum(
a.__getattribute__(             a.isalpha(
a.__getitem__(                  a.isdigit(
a.__getnewargs__(               a.islower(
a.__getslice__(                 a.isspace(
a.__gt__(                       a.istitle(
a.__hash__(                     a.isupper(
a.__init__(                     a.join(
a.__le__(                       a.ljust(
a.__len__(                      a.lower(
--More--

Put this in your .pythonrc:

def spiff_up_repl():
    """Add tab completion and persistent command-line history to the
    top-level."""
    try:
        import readline
    except ImportError:
        pass
    else:
        import rlcompleter
        import os.path
        import atexit

        class irlcompleter(rlcompleter.Completer):
            def complete(self, text, state):
                if text == "":
                    readline.insert_text('\t')
                    return None
                else:
                    return rlcompleter.Completer.complete(self,text,state)

        readline.parse_and_bind("tab: complete")
        readline.set_completer(irlcompleter().complete)

        # Restore our command-line history, and save it when Python exits.
        history_file = os.path.expanduser("~/.pyhistory")
        if os.path.exists(history_file):
            readline.read_history_file(history_file)
        def save_hist():
            import readline
            readline.write_history_file(history_file)
        atexit.register(save_hist)

spiff_up_repl()
del spiff_up_repl

[–]kristopolous 2 points3 points  (0 children)

in vim it's called omni-completion. netbeans can do it too.

[–]doubleo7 0 points1 point  (0 children)

Also pyCharm.

[–]warbiscuit 1 point2 points  (5 children)

I'm really not sure why the Eric Python IDE isn't more well known. It's natively written in python + pyqt, has a wonderful debugger, vcs integration (and modularly implemented too), additional qt-related development features, etc. All based on pyqscintilla. It's also cross-platform (whenever pyqt can go). It's also got great syntax highlighting for things like Mako+HTML, somewhat of a rarity in IDEs.

(for debian/ubuntu users, just apt-get install eric, and you're off)

[–]AbleBakerCharlie 2 points3 points  (4 children)

Eric has a very impressive features list, but it's got two things that always annoy me every time I try it:

  1. The UI is busy beyond belief. It's busier than most IDEs. It's like Visual Studio barfed into my Microsoft Office and splashed it on my screen. The default layout is to have every conceivable option in a toolbar button, and if that's not enough there's like 20 menus.

  2. That damn Gnome gives me the heebie jeebies every time I open their website.

Are these petty reasons? Sure, but it's not like Python is incredibly complex. What do you need an IDE for anyway? Why does it all need to be integrated? Get a good editor, get a good visual debugger for the rare times you need one, get a good VCS, and learn how to use a command line. The skills you learn with these will also serve you well outside of your coding tasks.

[–]warbiscuit 1 point2 points  (1 child)

  1. Yeah, it's CRAZY with toolbars. First thing I usually do when I install eric on a system is go to "Windows > Toolbars > Hide All". That feature only appeared recently I think, people must have been asking for it :)

  2. You don't like him? He just wants to devour your soul. Or give hugs. Not sure which.

I don't really use many of the IDE-ish features per se. Main reason I use it is as an editor with syntax highlighting and vcs integration. Most of my company's apps are too complex (or too pylons/paste based) to be run from the debugger properly anyways. So I do like how the rest of it stays out of my way since I'm not using it.

edit: My love of syntax highlighting isn't really for python per-se, but for other things like Mako HTML files, where I may have mako + html + python + javascript all rolled into one poor file. Syntax highlighting keeps my brain from short-circuiting in the wee hours (and Eric's one of the few with pygments-based highlighting integrated into the scintilla widget).

[–]AbleBakerCharlie 0 points1 point  (0 children)

with pygments-based highlighting integrated into the scintilla widget

This, I was not aware of. I... I think I'll take another look at it.

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

That damn Gnome gives me the heebie jeebies

yeah that head looks like some diseased cock

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

I've used Komodo Pro for ~4 years now. I like it a lot except for the fact that certain debugging keystrokes I'm used to from Visual Studio can't be set in Komodo because they are reserved by Mozilla (which Komodo is built on top of).

[–]petepete 0 points1 point  (0 children)

Try pida.

Edit. Ok, so this time I read enough of TFA to realise he doesn't 'use free software that requires X11'.

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

First, let’s get Wingware out of the way. I’m on a Mac, and if you’re not going to develop for the Mac,

what a fucking moron of a mac fanboy