[Dev] OT: IDE framework
SPE Stani's Python Editor
spe.stani.be at gmail.com
Thu Mar 2 05:39:47 PST 2006
I'm sorry if this posting seems off-topic, but I would regret not to
have contacted you about this.
Recently I've posted the following mail on the wxPython mailing list
some days ago. As the reponse was quite overwhelming, I have since
then been contacting more people of the whole Python community and
plan an announcement on comp.lang.python very soon.
I'm trying to bundle open source efforts concerning an IDE, instead of
having a fragmentated landscape as it is now. For now the team
includes eleven lead developpers of IDE's and tools, but the list is
- Detlev Offenbach (Eric3 IDE)
- Limodou (NewEdit IDE)
- Matt Freyer (ActiveGrid IDE)
- Daniel Pozmanter (drPython IDE)
- Edward K. Ream (Leo IDE)
- Fabio Zadrozny (pyDev IDE plugin for Eclipse)
- Nir Aides (WinPdb debugger)
- Rocky Bernstein (Extended Python Debugger)
- Jeroen Vloothuis (Gaphor UML plugin)
- Martin Chilvers (Enthought Envisage workbench)
- Myself, Stani (SPE IDE)
A lot of other people are also eager to contribute to this project as
well and I've also contacted the developers of IDLE.
The first step as I see it is try to bring all active IDE developpers
together. Each of us wrote a decent IDE, but we would be blind if
there is not a lot of duplicated effort, which is in a way a pitty.
(This will remain as well in the future.) Fortunately it looks like
this step is succesfully almost completed
If we can work together it might speedup the process and make an IDE
which is even better, as the one we wrote till now.
But in order to build a solid IDE framework, we need a good framework
in the first place. As the philosophy behind the project is not to
reinvent the wheel and to avoid duplicating efforts, we would be blind
if a lot of research and development is already not done by other
larger Python projects. Chandler is for sure one of them. Also
Enthought and Activegrid have expressed their will to participate on
such a project and to collaborate on a basic framework with plugins.
Before I contacted Phillip J. Eby with the same message as I heard
nice things about PEAK. In his reply he mentioned Chandler. In his
comments about PyCon on this mailing list, I read:
> The Zope and Enthought folks have a
> lot of interesting overlaps with Chandler's requirements for a Python
> plugin system, library builds, etc., and I spent a lot of time laying the
> groundwork for co-operation and uptake that will help ensure that Chandler
> is part of a bigger picture of software reusability in the Python community.
I'm sure that every Python developper has features in mind which he
would like to see in an IDE. Unfortunately the treshold for adding
these features into an IDE is too high. It would be nice if this could
change. Python could be for this IDE what lisp is for Emacs. Java is
much ahead of us with Eclipse. We could show of what Python and its
community is capable of.
I started a project page on berlios
(http://developer.berlios.de/projects/pyxides/) and created a mailing
list which should be active soon:
(pyxides-dev at lists.berlios.de) I will announce this weekend the
project and mailing list publicly.
Please let me know what you think. I'm open for every suggestion. I
subscribed on this mailing list, so I'll read your answers here. If
you consider this off-topic, you can post on the pyxides-dev mailing
list or if you prefer, you can email me privately about this.
I'm eager to hear for your answer...
Ps The thread starts here:
Please read the next messages as much as you can.
---------- Forwarded message ----------
From: SPE Stani's Python Editor <spe.stani.be at gmail.com>
Date: Feb 21, 2006 1:18 AM
Subject: Discussion: 2 many IDE's...don´t we want more?!
To: limodou <limodou at gmail.com>, Josiah Carlson <jcarlson at uci.edu>,
Kevin Altis <altis at semi-retired.com>, riaan at e.co.za, kaworu
<goku1980 at libero.it>, Ed Leafe <ed at leafe.com>, Matt Fryer
<mfryer at activegrid.com>, drpython at bluebottle.com,
wxPython-users at lists.wxwidgets.org
Dear IDE developpers and wxPython NG,
I hope this might provoke an productive discussion with a happy end...
The Python wiki (http://wiki.python.org/moin/PythonEditors) boasts a
nice list of editors of which quite some are written in Python.
Choice is always good. If these were commercial projects, one could
add: competition is always better, as we all know the disadvantages of
a monopoly. But I doubt this is the best. Open Source could be about
collaboration, putting all our brains together and produce a mind
blowing IDE, in which we offer the user also choice but in a different
way. Instead of having to choose between IDE's, the user can select
the components he wants and tailor his IDE. Even if we could converge
all existing wxPython IDE´s to one there is still plenty of choice.
Some of the IDE projects might be not so active anymore, by which a
lot of labour and knowledge can vanish. In general a good project
might be too fragile if not a team is behind it. This might seem no
problem as another new IDE might pop up, who goes through the same
history again and likely will not go further as where others were
I started SPE because I needed a Python IDE which could run inside
Blender and Gimp. Unfortunately no editor was able to do that. I had a
little bit success by hacking their source code, but it turned out to
be such a hassle, I started writing my own lightweight editor, while
even learning Python and wxPython. During time SPE grew bigger and
bigger, got more community and developers and it went much further
than what I had in mind. Although this can be pleasing, it does not
really satisfy me. Something absurd is happening. A lot of users
request for example SVN integration. Why should I reinvent the wheel
if already some editors support it? Of course I could dive in their
code. That's not the point: even that is just simply a waste of time
and effort. SPE also might have some features like uml, realtime
updating sidebar without collapsing the explore tree or realtime
syntax error highlighting, which are not in (most) other open source
ide's. Why they should reinvent the wheel or dive in my code?
Python has a very active community full of energy, but a lot of it
could be even better used.
# fully cross-platform
Although this sounds evident, it is not obvious.
# build on good design pattern or Framework
- Envisage (Enthought)
- MVC (ActiveGrid)
At least the UI code should be separated from the inner working, so
that ports to the various UI toolkits may be possible.
The code should be as much reusable as possible by creating api libraries
(not locking all code up in framework).
# minimal core + extensible with plugins
The core should be 100% stable, require only Python (preferably older
versions should work as well) and the UI toolkit (wxPython, Tkinter,
curses, ...), not memory or cpu consuming. Users can choose themselves
to (b)load it with plugins. This should be as user friendly as
I think it would be nice if there could be even a very minimal toolkit
which might be the base of an Python AJAX editor or who knows what
could be possible when Firefox 1.9
The plugins could range from some small code snippets to count words
to more advanced features, such as (eg from my own experience):
- uml view
- documentation view
- pylint code validation
- CVS/SVN integration
- todo lists
- syntax error highlighting
- web framework support
- TaskCoach plug-in
- debugger (eg seamless integration with WinPdb and/or others...)
Extensions should be easy to install or uninstall for an end user like
in Firefox. Installation over the internet might be considered using
the egg technology.
# user = developper
The advantage of an IDE is that its users might turn into developers.
The blurring of this border should be encouraged as much as possible.
There could be a simplified framework to develop plugins.
So what is this email about? In my ideal scenario I would like if all
the IDE developers would gather together and discuss how we
could define our extensible framework and what is the core. Then we
could start developing a new IDE with a new name. (If everyone agrees
to use an existing IDE as a starting point, that is also fine.) As we
all have the know how it should go quite fast and even other
experienced wxPython programmers could speed it up, although in such
collaboration quality of code should be more important than speed. In
a worst case scenario I am even prepared to team up with the only one
other wxPython IDE developper (I know that dabo is a framework, but
please let me simplify) who thinks that this makes sense. But ideally
we would have a team in which during time some people enter and leave
but with a stable core.
The IDE could be tailored to different
users:from newbies, students to experienced developers.
I´m curious for feedback of the whole mailing list, So whoever wants
to reply on this email: please don´t start a discussion about which
IDE is the best, etc... Or not about which features should be core or
plugins. I just gave examples, not a holy list. Let´s please use all
our efforts to put a team together for the next generation IDE...
(But I especially want the IDE developers to step forward, so these
last words are especially for them. As if no one of them reacts, this
proposal doesn't make sense.)
IDE developers, please say what you think. Why you would or would not
participate? And if it is a matter of not having time, please share
your knowledge. It is too precious to let it die. Of course there will
be a need of active developers. Say first if you are interested or
not. Think of the possibilities, it will be for sure more as you could
do alone. It would be a pity if this discussion would immediately
begin with a fight with which editor should be taken as a starting
point. I would be happy to leave SPE aside if I can fuel my experience
and some new ideas into a new project, which doesn't belong to me, but
to an enthusiastic team.
So I am in, who is next?
PS If you are not an IDE developer but would want to code, work on the
website, documentation, artwork, etc... Please step forward as well.
For those who are on PyCon, spread the word.
More information about the Dev