[wxPython-users] ANN: peppy-0.5.1, editor and software development process experiment

Rob McMullen rob.mcmullen at gmail.com
Mon Feb 12 17:58:16 PST 2007


On 2/12/07, Christopher Barker <Chris.Barker at noaa.gov> wrote:
> First response: AARRGG!!! not Another wxPython based editor!

"I know the world doesn't need another editor" was going to be the
opening line in my announcement, but I didn't want to turn people off
immediately.  They'd have to wait at least one paragraph. :)

> Yes, yes yes!! this is key! I have no idea how anyone else is productive
> without being able to put different documents in different frames --
> really, I don't.

That really was the main point for me as well.  Maybe I could have
adjusted to a single frame had I really given it a shot, but there's
so many times when it is useful to compare documents side by side, or
to have one frame on one virtual desktop and another frame on another
desktop, or just the freedom to move the windows around on the
screen...

> > That'll be one of my goals going forward -- try to
> > use existing code from other GPL editors as much as possible.
>
> Also good, so you're not totally starting from scratch. Maybe this can
> be the starter framework for Stani's "One wxPython IDE"

I was really interested in pyxides when Stani proposed it last year; I
was up to my neck in grad school and my full-time job and had no spare
time.  Maybe peppy can become something like that -- I did go into it
thinking that I'd be designing a framework that would be easily
expandable.

> Maybe it's because I'm a long time Xemacs user also, but I really like
> your design. I've been trying to get away from Xemacs for years, but
> haven't yet. My reasons are similar to yours, but there are a few more,
> that influence what I'm looking for.
>
> Why I want to leave Xemacs:
>
> 1) I work on 3 platforms regularly. While you can run XEmacs on Windows
> and OS-X, it just doesn't feel right there.

I agree -- wxPython buys us the feel of the native apps.

> 2) I use a lot of other software too, and most of it has common
> functionality like cut&paste, etc -- it's really confusing that my
> editor has different conventions for this stuff than everything else --
> at least the basics should follow what has become the standard (though I
> really wish OS-X would use <control>, rather than <command>!)

I am so tied to XEmacs that I always forget and hit C-X C-S to save in
windows apps, and am just lucky that I don't have a region selected.
But the keybindings in peppy will be customizable.  I'm interested in
that cua-mode, which I hadn't heard of before.  I'll keep that in mind
as I continue with the keybinding customization.

> 3) I'm really not interested in learning elisp....and I'd like to be
> able to customize in Python.

Amen, brother!

> 4) It STILL doesn't have a decent "soft wrap"

Which we get for free in Scintilla.

> What I'm really going to miss, if I can't find it in a new editor. (and
> what's kept me from switching so far...
>
> 1) (x)Emacs has a mode for EVERYTHING I ever need to edit - Fortran,
> LaTeX, html, Python, matlab, BibTex, C, C++, etc, etc.. And the modes
> are very good. emacs Python mode is the best I've seen
>    -- The way it accomplishes this is:
>       a) Modes can be written in elisp, by anyone -- most of the good
> ones were donated by others, not the core developers.
>       b) It's designed to be general purpose an extensible from the
> beginning.
>       c) the concept of major and minor modes is very powerful.

That's why I designed peppy the way I did -- major modes and minor
modes as Trac components that are registered simply by importing the
module.  I would hope that when I get a stable enough architecture,
people would be able to easily contribute major modes for their
favorite language.  For example, I don't often admit that I know
Fortran, and while I could write the Fortran major mode, it certainly
wouldn't be as good as the one written by someone who uses Fortran
regularly.

> 2) Multiple top-level frames -- and tabbing in one frame -- key!
>
> 3) Multiple views of the same buffer.
>
> 4) Easy extensibility -- I've only done a tiny, but but it's nice to be
> able to add a little function, remap keys, etc. I'd do a lot more if I
> could do it in Python.
>
> 5) Lots of little features -- rectangular selection, M-space replaces n
> whitespace characters with one, etc, etc. If I can write these myself,
> I'll be happy!

I'm with ya.  I have this little list of features that I use regularly
that I'm trying to get into peppy 0.6, and then that will be enough to
try to use peppy as my regular editor and see how it works on a daily
basis.  Rectangular selection, fill-paragraph-or-region, regex
search/replace...

> Regarding my first point -- I really don't think it would be that hard
> to adapt one of the other good wxPython editors -- SPE, Ulipad,
> DrPython, PyPE, to have multiple top-level; windows, better mode
> support, etc., so ti's a bit of a shame to see Yet Another Editor.
> Couldn't you apply Modern Software Development to a re-write/ upgrade of
> a legacy project?

I understand what you're saying, and I expected questions about this.
The problem with adapting other editors, and believe me I spent quite
a lot of time looking at those you mentioned (even Eric3 of PyQT), was
that they weren't designed to be general frameworks.  It looked like
they all evolved from the goal of being good python editors, and
extended as the feature requests came in.  They all have a bunch of
good features, but the two assumptions they all made were: each file
has only one view; and one top level window.  Those are two
fundamental design decisions that affect everything else about the
architecture.  I'm sure I could have picked one and gone for it, but I
found that the XEmacs features I wanted to implement would require
many, many changes.  Not nearly as easy as starting again with my
architecture in mind.

Also, as the AUI toolkit became part of wxPython, I really became
interested in the possibilities.  No other editor has used AUI yet.  I
had written my own notebook/tabbed frame/minor mode management system,
but happily threw that away and let AUI handle the perspectives.  One
less responsibility for me to code.

Plus, as much as reinventing the wheel is to some extent wasteful,
it's also fun because you don't have to code around assumptions that
don't fit your purposes.  As a spare time project, I needed this to be
fun in order to continue with it.

And, I'm not really intending to reinvent the whole wheel -- the hub
at most, and I'll borrow the spokes and tire. :)

> Oh well -- it does look very promising, I'll be checking it out!

Thanks for your comments!

Rob




More information about the wxpython-users mailing list