Hi everyone,

I'd like to chime in this discussion and adding my personal 2 cent to it.

Warning: Lengthy response coming up, and not only for pylons, but also
for general python dev

First of all, choose of editor is very much a choice of personal
preference and sometimes even a "religious" thing (see vi vs. emacs ;)
) I haven't yet found a development environment I instantly liked,
everyone had to be tweaked to my personal taste and preference. And
I'm still on the lookout, even after 10 years of developing on Linux
and 5 years of Python development for the perfect editor which
fulfills every single of my needs :)

As a second, the term "IDE" is misleading, in my opinion. IDE means a
different thing for every language you are developing in, and for
every purpose you are developing for. In Java, IDE generally means an
editor including a compiler and debugger, and when you are developing
desktop applications it also means a GUI designer. For Java Web
Development it means something which automatically deploys to a
servlet container and offers a build environment for it.

This just as an example that even for the same language, with
different goals in development you expect an IDE to have different
stuff. So first of all, you need to know what you want from an editor
(I will use the term editor instead of IDE in the following text, as
it expresses better what _I_ expect from a program for developing
applications).

As with pylons, you don't need a compiler or packager. This is done by
paster. I'm not sure if a symbolic debugger exists for pylons, for
general python it does exist. I personally don't use it very much, and
when I need it I'm happy to use the text debugger. But that is a
personal thing as well. So for me a debugger integration in my editor
is not crucial.

For me the things really important are: Syntax highlighting, a good
indentation routine, easy navigating in the text and, for bigger
projects, easy navigating between different files.

The general all-purpose-editor for me is vim (but not the only choice,
I will come to that later ;) )

First, it is installed on every (Linux) box I work on, and even the
Windows machines normally don't last long without a vim being
installed on it, although I don't like the windows vim as much as the
Linux vim. It is fast, small, offers fast (though not easy at the
beginning) navigation in the files, syntax highlighting for a vast
amount of different stuff. It is completely controlled by keyboard, so
I don't need to touch a mouse when I'm developing, which is a huge
plus.

This is the perfect choice imo if you are working on a remote box,
developing there. If I do so, I normally have a screen running and
have 1 or 2 vim sessions open. I have worked on projects of all sizes
with vim.

The weak point for me for vim is the navigation between the files. I'm
used to closing the vim and opening it on another file, which is
especially annoying if the files you are editing are in different
directories. I'm aware that other solutions exist for that problem,
but I haven't had yet the dedication to look into them. I'm always
glad for directions ;)

The learning curve for vim is very steep, though, but if you master
it, you have a general-all-purpose-swiss-army-knife which will never
abandon you, because it is literally everywhere available. And, of
course, it is free ;)

My new general-purpose-development editor is: jEdit (notice the
difference in the use there)

Though I still use vim for system administration, jEdit has nearly
completely replaced it for me in terms of developing.

I had to use it in the first place, because it was the only editor in
which the ObscureLanguage(TM) used by my company was editable in. But
I have really grown to like it.

Don't let the plain appearance when it first starts up fool you.
Especially navigating between files is a PITA on an unconfigured
jEdit. But nearly every functionality is added by plugins to the base
editor, and it is configurable exactly to your taste.

Some plugins I couldn't live without: BufferTabs, SwitchBuffer,
ErrorList, Console, FTP (also supports sftp). You can basically bind
any action to a keystroke (even multi-level keystrokes like in emacs,
e.g. ctrl-x ctrl-w). Also, if you work a lot with XML (like I do), the
XML support in jEdit is really neat :)

It doesn't bring any inhouse support for mako or myghty, but syntax
highlighting for those is available on the net without a problem, and
easy to add.

There exists support for symbolic debugging through jython or a
cPython implementation for normal Python. I have tried it, but as I
don't use that feature very much, I haven't configured it at the
moment. But IIRC it worked quite nice, but it needed a bit of work
until it worked.

It also is portable between platforms, and I use it on Linux and
Windows, without much difference between the two versions.

I have recently started developing a pylons project in jEdit, and it
worked nice, fast and as I expected it to be. paster in --reload did
everything I needed outside of the editor.

Drawbacks of jEdit: It is graphical (yes, that is a drawback for me,
as it means I can't use it on a remote machine), which is improved by
the net connection possibilities, and that it is written in Java. That
means it is not the fastest to start up, and uses a bit of memory. But
after it has started up, it is responsive and fast.

To see a fully configured jEdit, look at this picture (it is from my
own jEdit :) ) http://www.vertex-unlimited.com/jedit.png
The keys to this configuration are plugins and docking. I have there 2
myghty files open (from a non-pylons project, I just had those readily
available), with complete syntax hightlighting.

Homepage for jEdit: http://www.jedit.org If you want to give it a try,
take the 4.3 pre-release. It is as stable as the 4.2, but the plugins
are a lot better than in the 4.2 version. The screenshot is from 4.2,
though, as our ObscureLanguage plugin won't work on 4.3 :)


Other alternatives:

I have tried eclipse for Python development as well, but for my taste
it is too slow, too bloated and too complicated to use. But the
symbolic debugger for it was really nice, and it has a great support
for different languages including compilers in there. If you are
coming from Java Web Development, this will probably give you the
smoothest experience in switching :)

The pure python editors like IDLE, WingWare, Komodo, stuff like that,
I tried them all at one point. They all had nice features, but were
annoying at another point, so I stopped using them after a short
while. None of those left a lasting impression on me.

Emacs: I have tried it, but for a vi-guy it is very hard to switch to
emacs, for religious reasons ;) No, I just didn't find the right start
for it and abandoned it fast again.

I'm trying to remember if I have tried other stuff as well, but none
left an impression lasting up to now. I recently tried UNA from
n-brains, but after starting up it looked SO ugly that I closed it
faster than I downloaded it. The feature list read nicely, but if the
initial impression is just bad......No thanks.

But to wrap it up: It is all a question of taste and personal
preference. There isn't "THE ONE" editor out there which fits every
need. You probably need to try out a few to find one that fits you.
All we can offer is directions where to look.

I hope that helps,
Jens

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"pylons-discuss" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/pylons-discuss?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to