Thanks in advance,
Steve P
Cheers,
Chris
--
Follow the path of the Iguana...
http://rebertia.com
Sorry, but the perfect IDE of choice is a way too subjective thing to
have only one answer. Take a look at
http://wiki.python.org/moin/IntegratedDevelopmentEnvironments and take
your own conclusions...
Cheers,
Fabio
I would personally recommend that you take the time to learn your way
around a powerful text editor such as emacs or vim (I use emacs,
myself), however that may not fit well with your personal editing
tastes, and the learning curve is a bit steep. The editing tastes
problem can be solved once you learn your way around a powerful text
editor (emacs, for instance, is practically infinitely customizable),
and the power you get from using them is amazing.
If you're set on using an IDE, the python wiki link that other people
have linked to has a decent overview of good options.
For now I use PyScripter and SPE in that order.
cheers,
Stef
> Thanks in advance,
> Steve P
Now, following that route, many people call Eclipse is the 21st
century Emacs... ;-)
Interesting link related to that:
http://blogs.nuxeo.com/sections/blogs/julien_anguenot/2006_09_15_switching-from-emacs-to-pydev
Cheers,
Fabio
I don't want to kick off an editor war or anything, but I don't think
that Eclipse is anywhere near being a 21st century emacs, unless
there's been a whole lot of progress with it since the last time I
used it. With emacs, I can have multiple files open in one window,
with the window split (I don't remember eclipse being able to do this,
although it allowed multiple files in their own tabs), and I can
customize the actions of the editor on the fly, without restarting it,
in a variant of LISP. That may be possible in Eclipse, I don't really
know.
I used to use Eclipse and pydev, but once I learned my way around
emacs, I haven't gone back to it for anything. I probably would if I
did any coding in Java - but I don't. I'm exponentially more
productive with emacs while writing python code than I ever was with
Eclipse.
Add to that the degree to which emacs is customizable (just about
everything that the editor does can be customized, you can jump
quickly to the source of the functions you're running while editing,
you can easily patch behavior in before or after specific function
calls, you can easily define keyboard macros and bind them to
keystrokes, and / or save them for future use, you can easily create
keystrokes that correspond to interactive filling out of templates -
"skeletons", etc), and I really don't see how someone could think that
Eclipse is anywhere near being a replacement for emacs.
Not to mention that I don't need to have X installed to run emacs if I
don't need it.
I may be wrong about the capabilities of Eclipse, as I haven't used it
in about a year, and emacs certainly has it's own set of quirks and
annoyances - one of which being the very steep learning curve.
Watching the screencasts linked in the blog post you linked to, I
might prefer Eclipse to emacs if I wasn't very used to never touching
a mouse, or if I was developing under windows. With my editing mindset
the way it is right now, when I see that, I just see a lot of wasted
screen space, and a lot of wasted time doing things like intellisense.
Also, the blog post didn't really give any reasons as to _why_ the
person switched over, other than that they were impressed with
Eclipse.
Meh, I'm not talking trash on Eclipse - it's a fine tool if it fits
how you work with text / code. It's just not for me, and I would feel
crippled while using it if I switched back to it. I used IDEs like
that for a few years, but after about a month and a half of using
emacs, I haven't looked back. I even use it as my IRC client when I
jump on IRC.
I do think that people should try a variety of styles of editors to
find what works best for them though - although it does take a lot of
time to learn your way around 3 or 4 different editors, once you find
what fits with you, you will probably get a huge boost in productivity.
Peace! I'm far from starting any war too (I don't usually try to
convince anyone about choosing a tool, as I believe that there's no
such thing as the correct choice there, only different points of view
and experiences -- the right thing is trying for yourself and deciding
what you like better -- but at least I'm going to answer to some of
your comments to try to be informative here).
> unless
> there's been a whole lot of progress with it since the last time I
> used it. With emacs, I can have multiple files open in one window,
> with the window split (I don't remember eclipse being able to do this,
> although it allowed multiple files in their own tabs),
You should be able to have it.... having multiple views for the same
file: although it does that by doing a new editor, and then you can
place that new editor as you want -- below some existing, to the
right, etc -- or you can use an external plugin for something more
closer to what emacs has:
http://wiki.eclipse.org/Implement_Split_File_Editor_Functionality_for_the_Eclipse_IDE
-- note: I don't personally use that -- usually I try to keep the
modules small ;-)
> and I can
> customize the actions of the editor on the fly, without restarting it,
> in a variant of LISP. That may be possible in Eclipse, I don't really
> know.
Depends on what you want:
http://fabioz.com/pydev/manual_articles_scripting.html (but that's
just one of lots of ways to customize it)
> I used to use Eclipse and pydev, but once I learned my way around
> emacs, I haven't gone back to it for anything. I probably would if I
> did any coding in Java - but I don't. I'm exponentially more
> productive with emacs while writing python code than I ever was with
> Eclipse.
I must say that I'm totally the other way around... even being
productive in emacs, there's really no comparison there for me
(disclaimer: I'm the author of Pydev, so, that's expected, but I know
many people that changed to it and say the same thing)
> Add to that the degree to which emacs is customizable (just about
> everything that the editor does can be customized, you can jump
> quickly to the source of the functions you're running while editing,
> you can easily patch behavior in before or after specific function
> calls, you can easily define keyboard macros and bind them to
> keystrokes, and / or save them for future use, you can easily create
> keystrokes that correspond to interactive filling out of templates -
> "skeletons", etc), and I really don't see how someone could think that
> Eclipse is anywhere near being a replacement for emacs.
The one thing I miss in Eclipse (for which I use notepad++) is the
macros, but that's about it... Everything else is highly customizable
for me in Eclipse / Pydev... everything else is there (templates,
keybindings, jumping through code: going fast to any file/definition
you want in your project, hyperlinking in console, etc)
Also, I don't think outside of Eclipse there's anything close to what
Mylyn gives you in terms of knowing what code is really important when
working on a task ( http://www.eclipse.org/mylyn/ ).
> Not to mention that I don't need to have X installed to run emacs if I
> don't need it.
>
> I may be wrong about the capabilities of Eclipse, as I haven't used it
> in about a year, and emacs certainly has it's own set of quirks and
> annoyances - one of which being the very steep learning curve.
Eclipse also has that -- And I'm pretty sure that the more you use a
tool the more you get productive in it.
> Watching the screencasts linked in the blog post you linked to, I
> might prefer Eclipse to emacs if I wasn't very used to never touching
> a mouse, or if I was developing under windows. With my editing mindset
> the way it is right now, when I see that, I just see a lot of wasted
> screen space, and a lot of wasted time doing things like intellisense.
> Also, the blog post didn't really give any reasons as to _why_ the
> person switched over, other than that they were impressed with
> Eclipse.
I (almost) never do touch my mouse inside eclipse too ;-)
And yes, it's very subjective.
> Meh, I'm not talking trash on Eclipse - it's a fine tool if it fits
> how you work with text / code. It's just not for me, and I would feel
> crippled while using it if I switched back to it. I used IDEs like
> that for a few years, but after about a month and a half of using
> emacs, I haven't looked back. I even use it as my IRC client when I
> jump on IRC.
Yeap, having lots of plugins is something both emacs and eclipse have
-- and until now, living within Eclipse has been a pleasant journey to
me ;-)
Also, as I said in the other post, choosing where you'll develop it's
a highly subjective thing, so, the right thing to do is look the
options, try them and decide for yourself.
> I do think that people should try a variety of styles of editors to
> find what works best for them though - although it does take a lot of
> time to learn your way around 3 or 4 different editors, once you find
> what fits with you, you will probably get a huge boost in productivity.
Totally agree with that.
Cheers,
Fabio
Nah, I don't mean having multiple views for the same file, I mean
having multiple files open where I can see them all at once easily,
without tabs. I also keep modules small, but a lot of times I want to
be able to edit multiple files really quickly. When I'm doing web-dev
stuff (with cherrypy), I'll generally have my python source, css,
javascript, and html templates open at once, so I can quickly add a
feature and tweak stuff. I like emacs' buffer/window/frame paradigm a
lot.
> Depends on what you want:http://fabioz.com/pydev/manual_articles_scripting.html(but that's
> just one of lots of ways to customize it)
Yeah, I'm the type of user that like to be able to totally gut and
customize everything about the tool I'm using, and in emacs, the
underlying behavior is a keystroke away if you want it to be.
> I must say that I'm totally the other way around... even being
> productive in emacs, there's really no comparison there for me
> (disclaimer: I'm the author of Pydev, so, that's expected, but I know
> many people that changed to it and say the same thing)
Hey, you did an awesome job with Pydev - I got a lot of really good
use out of it when I still used Eclipse, and I'm sure that a lot of
people are really grateful for your work. It's a seriously awesome
tool for Python development with Eclipse, and I have fond memories of
it even though I don't use Eclipse anymore.
> The one thing I miss in Eclipse (for which I use notepad++) is the
> macros, but that's about it... Everything else is highly customizable
> for me in Eclipse / Pydev... everything else is there (templates,
> keybindings, jumping through code: going fast to any file/definition
> you want in your project, hyperlinking in console, etc)
I make very heavy use of keyboard macros, and although they're
difficult to master in emacs, once I got the hang of them I got the
ability to really make large-scale modifications of a codebase
quickly. I have sets of macros for specific languages, and specific
projects. I'm sure that there are equivalent ways to have as much
editing power in Eclipse (or any other competent editor).
> Also, I don't think outside of Eclipse there's anything close to what
> Mylyn gives you in terms of knowing what code is really important when
> working on a task (http://www.eclipse.org/mylyn/).
I hadn't heard of mylyn, and it looks like a pretty powerful, nice
tool.
> Eclipse also has that -- And I'm pretty sure that the more you use a
> tool the more you get productive in it.
Yes, absolutely. Tools like text/code editors always have a lot to
learn, and you can be hugely productive with just about any of them.
> Also, as I said in the other post, choosing where you'll develop it's
> a highly subjective thing, so, the right thing to do is look the
> options, try them and decide for yourself.
>
This really is the crux of the "which editor should I use" issue -
there's no one correct answer for everybody. People who think
otherwise are wrong, IMO.
> > I do think that people should try a variety of styles of editors to
> > find what works best for them though - although it does take a lot of
> > time to learn your way around 3 or 4 different editors, once you find
> > what fits with you, you will probably get a huge boost in productivity.
>
> Totally agree with that.
>
> Cheers,
>
> Fabio
Absolutely. We are, I think, on the same page as far as the choice of
editor problem goes. It's somewhat analogous to the choice of
programming language issue, although not quite. I guess the lesson
here is to give each of the major editors a chance, and see what works
out for you. When I started using emacs, once I went through the
tutorial and read through some of the docs, it "clicked" for me. It's
certainly not an editor for everybody - for one, it's made in a way
where you are expected to customize it's behavior. The default
behavior in emacs is not suitable to most people - the defaults are
something of a bare-bones "yeah you can get some stuff done" mode of
editing, and it can be very frustrating until you get used to
modifying it. Eclipse is much closer to what (I imagine) most coders
are used to, especially if they come from a windows-centric
background. I personally used Eclipse while I was still learning my
way around a linux environment, and now my workflow and setup is so
different than what it was in windows that I feel utterly lost /
crippled when I'm on a windows box. Emacs fits my style of computer
use / coding - but it's far from a working solution for everybody (and
oh man, some of the editor flamewars I've seen are just ridiculous).
It sounds like Eclipse has become powerful enough that if I had to use
it (say, in a work environment), that I would not be constantly
cringing, although it would probably take me a few weeks to get up to
speed with it.
As an aside, one of the things that I like about the python community
is that the people in it are generally sane about keeping their cool
in discussions.
> I am just wondering what seems to be the most popular IDE. The
> reason I ask is I am currently at war with myself when it comes to
> IDE's. It seems like every one I find and try out has something in
> it that others don't and viceversa.
This speaks to the twin facts that people want different things, and
that Python is flexible enough to accommodate these differing desires.
> I am in search for the perfect IDE
Perfect for whom, exactly? Perfect for what, exactly?
These are not facetious questions: they cut to the core of your quest.
I am convinced that your quest for a development environment that is
“integrated” (or “tightly-coupled”, in programming terminology) is
incompatible with any useful criterion of “perfect”.
Instead, I find the greater gain comes from a working environment of
*loosely-coupled* tools, with standard well-defined interfaces, that
one can flexibly mold and reconnect to meet whatever task is at hand.
The deeper this extends into the operating system, the more the system
as a whole will be able to support this flexibility, and the more
likely the tools will have been designed to do so.
Because of the inescapable central role in our craft of manipulating
text files, essential in this development environment is a
highly-customisable text editor with a broad *and* deep library of
existing customisations, to maximise the amount of work already done
for you when embarking on work in an area that is, to you, new.
It happens that the text editors which meet these criteria are limited
to Emacs and Vim, with a sharp decline in suitability (by these
criteria) beyond those two. Both have powerful user-customisable
capabilities and a mammoth availability of existing extensions for a
staggering variety of tasks. Learn one of these editors well,
familiarise yourself with how to access the rich library of available
extensions, and make the text editor the core of your loosely-coupled
development environment.
--
\ “Pinky, are you pondering what I'm pondering?” “I think so, |
`\ Brain, but I find scratching just makes it worse.” —_Pinky and |
_o__) The Brain_ |
Ben Finney
I use DrPython
Egon
> Because of the inescapable central role in our craft of manipulating
> text files, essential in this development environment is a
> highly-customisable text editor with a broad *and* deep library of
> existing customisations, to maximise the amount of work already done
> for you when embarking on work in an area that is, to you, new.
>
> It happens that the text editors which meet these criteria are limited
> to Emacs and Vim, with a sharp decline in suitability (by these
> criteria) beyond those two.
You've never used BBEdit? (Perhaps because of the platform you use --
that's a Mac-only text editor, but it meets your criteria nicely. The
free version "TextWrangler" does a pretty darn good job too, though of
course has some limitations.)
Not that vim and emacs aren't powerful, of course, but I think it goes
too far to say that ONLY those can do the job.
Best,
- Joe
Wing is pretty cool. It can do most code completion unless the code
your using obfuscates its code in a weird way and it lists arguments
and help text on the right dynamically. There's tons of tweaks,
support is great, you can write plug-ins to add your own features and
the pro version includes the source (with some provisions).
Mike
-craig
Dick Moores
> You've never used BBEdit? (Perhaps because of the platform you use
> -- that's a Mac-only text editor, but it meets your criteria nicely.
> The free version "TextWrangler" does a pretty darn good job too,
> though of course has some limitations.)
Not because of the platform; the reason I won't use those is that
neither of those programs are free software, they're proprietary. I
consider a flexible work environment far too valuable an investment to
be beholden to the whims of a particular vendor.
--
\ “If I had known what it would be like to have it all... I might |
`\ have been willing to settle for less.” —Jane Wagner, via Lily |
_o__) Tomlin |
Ben Finney
I think the editors you see are too high-contrast in their color
scheme. I look at PyCrust, etc., and NetBeans Java. The bold, plus
italics, plus color, is too much. I know it's exciting to be
recognizing patterns and changing fonts, but they overdo it, at least
in these cases. If you're browsing code contrast is important, but if
you're looking at one screen or two for an extended time, you'll pick
out subtleties after a short time.
I look, sorry all, at Google Groups for an example of mild color
gradients. I see two different grays and three blues on the current
screen alone. I could see that as being popular one day.
As for keyboard action, the response time from a keystroke to the
visual reaction, I like mine as fast as possible, lowest lag. I don't
think that's necessarily as popular, or necessarily as important,
especially if the IDE is written in Python.
You might like to, for the step-through functionality, add a
'settrace' on every thread if possible, overriding the thread module
if necessary. I would also have appreciated a step through in the
ver. 2.6. 'multiprocessing' module, but that could get difficult,
since each separate instruction pointer spawns a new process. It
would be even more valuable, and even pedagogically instructive, if
you could control what thread takes its turn next when you're running
more than one.
Keyboard shortcuts are one thing I like about my editor (the one I
prefer), which has hardly any non-essential features at all (in
contrast to emacs I understand). You can select shortcut groups and
assign number keys. 'Bloodshed-Dev' did not overdo that one, since
they are developing for multiple platforms, and the conventions vary
considerably-- ctrl vs. alt, function keys, &c. Arrow-movement is
emphasized in mine, with ctrl-arrow, alt-arrow, shift-arrow, all
having functions, plus ctrl-tab for changing file displayed.
The scope of the projects you're gearing to support is a variable--
you want fast startup times if the target projects are going to be
small, but good browsing abilities if they are large. I haven't liked
the default behavior when identifiers are found that can't be placed
in a namespace, namely lumping them all together and sorting. 10
pixels vs. 12 can make a difference in overall look and feel in the
icons in your browser, and if you have one week to your release date,
I'd rather have an extra week into key response time, than in the
icons.
My $.02.
* PyScripter - http://mmm-experts.com/
* DrPython - http://sourceforge.net/projects/drpython/
PyScripter is, I think, the better but both are nice editors and easy to
use.
Regards,
Peter
--
*Peter Anderson*
There is nothing more difficult to take in hand, more perilous to
conduct, or more uncertain in its success, than to take the lead in the
introduction of a new order of things—Niccolo Machiavelli, /The Prince/,
ch. 6
Well, you have already had many replies. For some context; I am an
serious open source advocate. But for productivity I haven't been
able to beat WingIDE. Their support is AWESOME! also.
I have tried most of the FOSS offerings and I would like to see them
compete. However, when it comes to tools...
I have to use what works for me; that is Wing.
As said before, they are not open source and not free. But if you
only work on FOSS apps, you can get a free license. I chose to pay
for a copy after having a FOSS copy because they are so good at
support. I do not think you can beat the features.
--Tim
That's been done:
http://pydev.sourceforge.net/console.html
http://fabioz.com/pydev/manual_adv_interactive_console.html
Cheers,
Fabio
I've been using Wing IDE Pro for about a month or two and I'm very
satisfied with it.
Is it "perfect"? No. However, I've been communicating the developers
on some of the minor shortcomings of Wing and they've been extremely
responsive. I usually get a return email within a few hours sometimes
minutes.
The nice thing is that you can download and try a completely
non-crippled version for 30 days (10 days at a time).
What I particularly like about it is that it's for Python only. I find
Wing much easier to use than Eclipse and, thankfully, it's not written
in Java which seems to takes Eclipse all day to load.
The integrated Python shell recognizes your variables so while you're
debugging you can interact with your code.
I could go on, but I've got to get back to work.
Isn't Eclipse kind of project oriented? I.e. not suited for opening a
single file, anywhere, and viewing/editing it. I get the impression
that it prefers to have some "project" or "workspace" file which
groups a set of files and contains configuration, build rules and so
on. The guy three postings up suggested a general-purpose text editor.
(As a side note: I don't use Eclipse myself, but I have seen novice
programmers editing Python code with it, and what saw wasn't
impressive. They *did* some kind of Python "plugin" installed, but
were sitting there pressing SPACE to indent every line manually.)
/Jorgen
--
// Jorgen Grahn <grahn@ Ph'nglui mglw'nafh Cthulhu
\X/ snipabacken.se> R'lyeh wgah'nagl fhtagn!
You think like I think, but I think your standards are too high. I
like claiming "my IDE is Emacs and Unix", but in fact I know very
little about how to customize Emacs using elisp -- I have added a few
keyboard shortcuts, made it use a readable font, and disabled a few
silly features, but that's about it. I use a Unix shell on the side
to do the non-editing tasks which I guess you train your editor to do.
So, my requirements on the editor boils down to:
- free and universally available
- will still be around when I'm dead
- capable as a pure text editor
- support for colorizing Python code (at least strings and comments)
- helps me indenting Python code
- support for other languages
I hope many editors fulfill those criteria, except maybe the first
two.
I agree. And the reason is this: learning to use a text editor well
takes years -- meaning that after years you still learn new things
that help you type better/faster/with less strain on your ancles. You
don't want that to be tied to programming Python.
To pick an example: what Emacs calls dabbrev-expand. You type a
few letters of a word, call on dabbrev-expand, and cycle through
words in your open files which start with those letters. This is
very useful in Python code, but it's equally useful when writing
mail, C code, documentation ...
Most people I've seen programming use their editor as if it was
Windows Notepad. It's easy to get an advantage over them, by being
willing to learn a bit. (The downside is that watching them program
will be like watching someone trying to ride a bike with flat tyres ...)
Yes, it prefers to have a project or workspace (which really helps you
navigating through the source, so, it's one thing I usually see as
positive, not negative). Still, you can use it to edit files outside
of its workspace -- that's supported on Pydev -- but it looses some of
those features (which are not usually available on regular editors
anyway, so, that'd probably be ok if comparing with an editor, not an
IDE)
> (As a side note: I don't use Eclipse myself, but I have seen novice
> programmers editing Python code with it, and what saw wasn't
> impressive. They *did* some kind of Python "plugin" installed, but
> were sitting there pressing SPACE to indent every line manually.)
Not sure which plugin they had, but I'm pretty positive that if they
had Pydev installed they'd have auto-indent without any problems (I
can assure you that auto-indent is a feature that received a lot of
attention in Pydev).
Cheers,
Fabio
> On Thu, 16 Oct 2008 07:47:36 +1100, Ben Finney <bignose+h...@benfinney.id.au> wrote:
> > Instead, I find the greater gain comes from a working environment
> > of *loosely-coupled* tools, with standard well-defined interfaces,
> > that one can flexibly mold and reconnect to meet whatever task is
> > at hand. The deeper this extends into the operating system, the
> > more the system as a whole will be able to support this
> > flexibility, and the more likely the tools will have been designed
> > to do so.
> >
> > Because of the inescapable central role in our craft of
> > manipulating text files, essential in this development environment
> > is a highly-customisable text editor with a broad *and* deep
> > library of existing customisations, to maximise the amount of work
> > already done for you when embarking on work in an area that is, to
> > you, new.
>
> You think like I think, but I think your standards are too high. I
> like claiming "my IDE is Emacs and Unix", but in fact I know very
> little about how to customize Emacs using elisp
No, I'm in the same situation: my Emacs Lisp knowledge is virtually
non-existent. Fortunately, just about anything I want Emacs to do has
already been programmed by someone else, so in practice all I need to
know is how to access the community's extenstions, as said above.
> I use a Unix shell on the side to do the non-editing tasks which I
> guess you train your editor to do.
Yes, I didn't stress the importance of a full-blown Unix shell (with
all the commands one normally expects at such a shell) in such an
environment. I think “powerful editor (Emacs or Vim) plus Unix shell
environment” is a good first approximation of my recommended
development environment.
(good sigmonster, have a cookie)
--
\ “Any intelligent fool can make things bigger and more complex… |
`\ It takes a touch of genius – and a lot of courage – to move in |
_o__) the opposite direction.” —Albert Einstein |
Ben Finney
Ok, then it wasn't Pydev, or a very old or misconfigured one. I didn't
know at that time whether there was decent support for Python in
Eclipse or not, so I decided whatever the problem was, it was their
problem :-)