Interesting discussion. A few ideas that have been recurring in my
search for (and, unlikely, creation of) holy grail of IDE, and have
been mentioned in this and other pyxides threads:

  1. Functionality before GUI: the GUI should come second to the
     application's functionality. Build the objects that provide
     functionality, then create a nice GUI atop it. This has the
     advantage that: A. different GUI can be built (or GUI can evolve
     more than if the GUI influenced the encapsulation of
     functionality);  B.  regression testing can be maximized to
     maintain robustness throughout evolution; C. scripting the
     application will be available almost "out of the box", allowing
     for macros;
  2. Modularized functionality: define the "services" that should be
     available in IDE, THEN define an interface for each service, THEN
     build components that satisfy those interfaces, THEN build the
     glue that binds the services into an application. Implementations
     of services can then easily be swapped in an out. E.g. a service
     might be "provide documentation for a function": there are many
     ways to do this, e.g. load the file and parse it yourself, or
     import the file and get the __doc__, etc, each method has pros
and
     cons and different users may prefer different ones.  Each service
     is  like an input-process-output black box that the application
     calls upon at the right time (e.g., when the user enters "("
after
     some letters).
  3. Modularized GUI: the GUI should be broken down into independent
     pieces that communicate via pubsub-type messaging. This allows
for
     more configurability, disabling unused/unwanted portions of GUI
to
     keep things simple, etc. E.g. a "show function documentation for
a
     function" GUI component would take the output of the "provide
     documentation for a function" service (received e.g. via a
     message) and show it in a pop-up box. Someone else could decide
to
     create a different implementation of this GUI component which,
     instead of a pop-up box, is a separate panel, and the user could
     swap the default for this one.
  4. Configurable menu/toolbar: the problem with many IDE's that
     provide extension points is that the UI does not define where the
     plugin's UI should go. E.g. I have seen editors/IDE where all
     plugin menu items go in one "tools" menu. This rapidly becomes
     unusable: plugins don't know about each other so they use names
     that are sometimes similar and you end up not knowing what menu
     item corresponds to which plugin, or the ordering of menu items
is
     awkward/non-existent. When adding a plugin (which would provide
     one or more services according to pre-defined interface), the
user
     should be able to change the default menu items (name and
location
     in menu hierarchy) that will be added for that plugin.

The major benefit of above is that it would allow progressive
implementation, and allow all contributors to provide something "their
way". It's really a pitty that so many IDE's exist isn't it: some are
very good, but they each miss something that the others provide or
have different bugs that are annoying, mostly because any given
developer has a finite amount of time to implement so much
functionality. So the goal must be to provide an architecture that
allows developers to combine efforts.

I'll see if I can go over the interface of a few IDE/editors and give
concrete examples of the above, that should show whether any of it
makes sense in practice :)

Oliver


[EMAIL PROTECTED] wrote:
>
>> However, in a little of the discussion I've since seen, I think the
>> problem is that a lot of folks want some pieces of what Emacs gives
>> them, but we all want different pieces.
>>
>
> Yes.  I think of the problem as providing 'beans' for other people to
> use. Maybe pida has found a way to package those beans?
>

On Jan 2, 1:00 pm, Christopher Barker <[EMAIL PROTECTED]> wrote:
> [EMAIL PROTECTED] wrote:
> > This is intended as reply to Robin Dunn's excellent post:
>
> I loved that post -- it's almost as if he scanned my brain when writing it.
>
> However, in a little of the discussion I've since seen, I think the
> problem is that a lot of folks want some pieces of what Emacs gives
> them, but we all want different pieces.
>
> ...

Reply via email to