By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
440,629 Members | 1,222 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 440,629 IT Pros & Developers. It's quick & easy.

(Modular-)Application Framework / Rich-Client-Platform in Python

P: n/a
To make it short: Is there something like this already?

There seem to loads of python frameworks for Web-Apps, but I have a hard
time finding one for desktop-apps.
I imagine it wouldn't be too hard (if still time consuming) whipping up
something simple myself, but I thought, I'd ask here before diving into it.

greets
wildemar
May 17 '07 #1
Share this Question
Share on Google+
22 Replies


P: n/a
There seem to loads of python frameworks for Web-Apps, but I have a hard
time finding one for desktop-apps.
I imagine it wouldn't be too hard (if still time consuming) whipping up
something simple myself, but I thought, I'd ask here before diving into it.
Sounds like you should look at DABO
http://dabodev.com/

But remember, that by combining something like YUI with any WSGI
framework and a Python web server (PASTE, FAPWS) you can use a web
browser as the client for an application that runs on the same
computer.

May 17 '07 #2

P: n/a
me******@yahoo.com wrote:
>There seem to loads of python frameworks for Web-Apps, but I have a hard
time finding one for desktop-apps.
I imagine it wouldn't be too hard (if still time consuming) whipping up
something simple myself, but I thought, I'd ask here before diving into it.

Sounds like you should look at DABO
http://dabodev.com/
Thanks, just glanced over it and as I expected, DABO seems a bit much.
But then again, I should have made my point clearer in the first place.
I'm looking for something like the eclipse plugin kernel. Just a simple
module that allows for easy loading and unloading of discrete bits of
functionality. That doesn't seem to be the objective of DABO (correct me
if I'm wrong).

But remember, that by combining something like YUI with any WSGI
framework and a Python web server (PASTE, FAPWS) you can use a web
browser as the client for an application that runs on the same
computer.
Though I like the idea of distibuted applications, I want to write an
app (a couple of, actually) targeted at the home user that sets up the
software herself/himself. So this might get a bit to complicated for Joe
Schmoe.
Secondly, I'm going for apps that don't quite adhere to the "form"
metaphor of most software (specifically DB-apps). I think doing
"unusual" UI features might get a bit messy when done with web
technology. I have thought about an actionsctipt-based approach, but I'd
very much like to try it with python first.
thx for the ideas, still. :)
W

May 17 '07 #3

P: n/a
Wildemar Wildenburger napisał(a):
To make it short: Is there something like this already?

There seem to loads of python frameworks for Web-Apps, but I have a hard
time finding one for desktop-apps.
I imagine it wouldn't be too hard (if still time consuming) whipping up
something simple myself, but I thought, I'd ask here before diving into it.
There are few GUI frameworks building on various toolkits. I used to use
Kiwi for PyGTK, it's mature and stable, although the approach is not the
same as, for example, Delphi.

--
Jarek Zgoda

"We read Knuth so you don't have to."
May 18 '07 #4

P: n/a
Jarek Zgoda wrote:
There are few GUI frameworks building on various toolkits. I used to use
Kiwi for PyGTK, it's mature and stable, although the approach is not the
same as, for example, Delphi
Thanks for the effort, but I think I'm not well understood. I'm not
looking for a GUI framework (which, by the way, is most likely to be
wxPython), but for a pure plugin architecture. A rich-client-platform,
as it is sometimes called. Nothing specific about anythin in particular,
just something that runs plugins. Like Eclipse does these days.

It's beginning to dawn on me that I'll have to cook something up myself.
*grumble*
;)

W
May 18 '07 #5

P: n/a
Wildemar Wildenburger napisał(a):
>There are few GUI frameworks building on various toolkits. I used to use
Kiwi for PyGTK, it's mature and stable, although the approach is not the
same as, for example, Delphi
Thanks for the effort, but I think I'm not well understood. I'm not
looking for a GUI framework (which, by the way, is most likely to be
wxPython), but for a pure plugin architecture. A rich-client-platform,
as it is sometimes called. Nothing specific about anythin in particular,
just something that runs plugins. Like Eclipse does these days.
I know what is Eclipse RCP. The world would be much better place to live
if we had something similar. :)

Many applications employ "plugin framework"-like things and in Python
this is specially easy to do, but I saw none that is built as one big
plugin framework. The one that mostly resembles such approach is PIDA
(http://www.pida.co.uk/), which is built around the concept of pluggable
views and services, but again, this is far from Eclipse RCP.

--
Jarek Zgoda

"We read Knuth so you don't have to."
May 18 '07 #6

P: n/a
Wildemar Wildenburger <wi******@freakmail.dewrites:
Thanks for the effort, but I think I'm not well understood. I'm not
looking for a GUI framework (which, by the way, is most likely to be
wxPython), but for a pure plugin architecture. A
rich-client-platform, as it is sometimes called. Nothing specific
about anythin in particular, just something that runs plugins. Like
Eclipse does these days.
I've never used Eclipse (beyond proving that it runs on various
computers). Can you please describe what behaviour you're looking for?

"Just runs plugins" is very vague, and would seem to be satisfied on
the face of it by loading Python modules. If there's something more
specific, you'll have to specify.

--
\ "I hope if dogs ever take over the world, and they chose a |
`\ king, they don't just go by size, because I bet there are some |
_o__) Chihuahuas with some good ideas." -- Jack Handey |
Ben Finney
May 18 '07 #7

P: n/a
Ben Finney napisał(a):
>Thanks for the effort, but I think I'm not well understood. I'm not
looking for a GUI framework (which, by the way, is most likely to be
wxPython), but for a pure plugin architecture. A
rich-client-platform, as it is sometimes called. Nothing specific
about anythin in particular, just something that runs plugins. Like
Eclipse does these days.

I've never used Eclipse (beyond proving that it runs on various
computers). Can you please describe what behaviour you're looking for?
The key is not "Eclipse" itself, but the whole Eclipse Platform.

See http://wiki.eclipse.org/index.php/Rich_Client_Platform

--
Jarek Zgoda

"We read Knuth so you don't have to."
May 18 '07 #8

P: n/a
To make it short: Is there something like this already?

To keep it short: yes.
To make it longer: not sure about its status... i've never tried it
myself.
To make it short again: http://code.enthought.com/ets/

I also know some people are trying to create something called pyxides,
but
also there I am not sure about the status: http://pyxides.stani.be/

Best regards,
Stefaan.

May 18 '07 #9

P: n/a
Jarek Zgoda wrote:
>I've never used Eclipse (beyond proving that it runs on various
computers). Can you please describe what behaviour you're looking for?

The key is not "Eclipse" itself, but the whole Eclipse Platform.

See http://wiki.eclipse.org/index.php/Rich_Client_Platform
Thank you for helping me out here. I'd just gone on and on about what my
conception of a RCP is. I think that link just about clarifies it.

W
May 18 '07 #10

P: n/a
stefaan wrote:
>To make it short: Is there something like this already?

To make it short again: http://code.enthought.com/ets/

Nice, seems very interesting. Bit of a bitch to set up, as it appears
from scanning the site, but that might be it.
Thanks :)

Now for the everlasting circle of evaluating, feature-wanting,
to-write-myself-deciding, failing, for-the-next-big-idea-waiting,
asking, evaluationg, ...

;)

I also know some people are trying to create something called pyxides,
but
also there I am not sure about the status: http://pyxides.stani.be/
Seems interesting as well, if only for the fact that Edward Ream (author
of LEO) seems to be involved there in some way. But then, I can't quite
make out what it is really about. The link just brings me to the
google-group. Seems to be some kind of text-editor effort. I'll keep an
eye on that, but so far, enthought is the front runner.

Thx to everyone :)
W
May 18 '07 #11

P: n/a
Wildemar Wildenburger wrote:
Jarek Zgoda wrote:
>There are few GUI frameworks building on various toolkits. I used to use
Kiwi for PyGTK, it's mature and stable, although the approach is not the
same as, for example, Delphi
Thanks for the effort, but I think I'm not well understood. I'm not
looking for a GUI framework (which, by the way, is most likely to be
wxPython), but for a pure plugin architecture. A rich-client-platform,
as it is sometimes called. Nothing specific about anythin in particular,
just something that runs plugins. Like Eclipse does these days.

It's beginning to dawn on me that I'll have to cook something up myself.
*grumble*
;)

W
I took a look at Eclipse page you mentioned but after reading the first page I still don't
understand what you mean (and I never read beyond the first page ;-).
With a plugin system, I can think of a complete operating system,
or I can think of something like a DTP, or simply Word,
or I can think of something like Signal WorkBench
etc.

I think if you don't express what all of the tasks of that framework will be,
it's not well possible to create one.

Do you want just launching of applications, or do they have to communicate,
exchange data, launch each other, create together one document or more general control one process,
and lots of more questions ;-)

cheers,
Stef Mientki
May 18 '07 #12

P: n/a
On May 18, 10:15 am, Wildemar Wildenburger <wilde...@freakmail.de>
wrote:
stefaan wrote:
To make it short again:http://code.enthought.com/ets/

Nice, seems very interesting. Bit of a bitch to set up, as it appears
from scanning the site, but that might be it.
Actually, just this week, we completed a major SVN reorganization and
from this point forward, all of the libraries in ETS will be released
as eggs. In fact, eggs have been available for a long time for python
2.4, and now we have them for python 2.5 as well.

The "Eclipse in python" you're looking for is actually called
Envisage, and it is part of ETS: https://svn.enthought.com/enthought/wiki/Envisage

The "Dev Guide" has some tutorials etc.: https://svn.enthought.com/enthought/...visageDevGuide

Note that Envisage != ETS. "ETS" is the term for the whole bundle of
various Enthought libraries, including Traits, Chaco, Pyface, etc.
Envisage does require some of these others (notably Traits and
Pyface), but they are all available as eggs.
Now for the everlasting circle of evaluating, feature-wanting,
to-write-myself-deciding, failing, for-the-next-big-idea-waiting,
asking, evaluationg, ...
Chime in on the mailing list if you have any questions. It's pretty
active and many people on it have lots of experience with Envisage.
-Peter

May 18 '07 #13

P: n/a
Stef Mientki <S.**************@mailbox.kun.nlwrites:
I took a look at Eclipse page you mentioned but after reading the
first page I still don't understand what you mean (and I never read
beyond the first page ;-).
With a plugin system, I can think of a complete operating system,
or I can think of something like a DTP, or simply Word,
or I can think of something like Signal WorkBench
etc.
The approach taken by Eclipse is exactly like that taken by emacs so
many years ago of creating a minimalist framework that offers a bare
bones user interface and services for running libraries. Everything
else is a plug-in library that changes the behavior of that interface.
So if you want an editor for language "foo," you would customize a
"view" interface to display foo objects, and an "editor" interface to
display and modify "foo" text. You might customize other "view"
objects to display documentation, compilation, and debugging
information.

(The fact that Eclipse and emacs are both rather lean programs is
obsucred by the sheer quantity of plug-ins that have become a part
of the standard installation.)
cheers,
Stef Mientki

--
Kirk Job Sluder
May 18 '07 #14

P: n/a
Stef Mientki wrote:
I took a look at Eclipse page you mentioned but after reading the first page I still don't
understand what you mean (and I never read beyond the first page ;-).
Well, what can I say ...
;)

With a plugin system, I can think of a complete operating system,
or I can think of something like a DTP, or simply Word,
or I can think of something like Signal WorkBench
etc.
Yes exactly. As I said: Nothing in particular. Just an environment that
loads and unloads little bits if functionality, whatever those may be.
I think what most people think of when they hear "plugin" is: An
Application that can be extended.
An RCP provides no more than the next step: No monolithic app, just
plugins (which can have plugins themselves (which can have plugins
themselves (which ...))). Write a text editor component and use it in
your music-sequencer that also monitors your internet-activity, if you must.

I think if you don't express what all of the tasks of that framework will be,
it's not well possible to create one.

Oh, but it is! Eclipse is such a framework. Pitty is, it's written in
Java. ;)

Do you want just launching of applications, or do they have to communicate,
exchange data, launch each other, create together one document or more general control one process,
and lots of more questions ;-)
Who knows? Thats the beauty of it. Eclipse has been conceived as an
IDE/Text-Editor. But now it is just a platform for others to build
plugins for. Such as an IDE. There are plans to make an eclipse-based
general PIM (called Haystack, I think). The concept is very simple, but
for some reason, highly unusual at present. I'm pretty sure that this
will change sooner or later.
May 18 '07 #15

P: n/a
Peter Wang wrote:
Actually, just this week, we completed a major SVN reorganization and
from this point forward, all of the libraries in ETS will be released
as eggs. In fact, eggs have been available for a long time for python
2.4, and now we have them for python 2.5 as well.

I'm not sure, but you guys seem a bit Windows-centric. I have yet to
find out if the egg-approach actually works for Linux (and Mac, though I
don't use it) as well. I've seen some mentioning of binary dependencies,
which makes me frown a bit. We'll just see.

The "Eclipse in python" you're looking for is actually called
Envisage, and it is part of ETS: https://svn.enthought.com/enthought/wiki/Envisage

The "Dev Guide" has some tutorials etc.: https://svn.enthought.com/enthought/...visageDevGuide

Yeah, I've been reading through that for the past couple of hours, seems
pretty sweet and reasonably simple.
I can see your reorg, by the way: The example .py files are not where
they're advertised to be. Better be quick with that, even solid software
with buggy documentation is buggy software ... ;)

Chime in on the mailing list if you have any questions. It's pretty
active and many people on it have lots of experience with Envisage.
I'm almost sure I will :)

c.u.
/w
May 18 '07 #16

P: n/a
On May 18, 1:10 pm, Wildemar Wildenburger <wilde...@freakmail.de>
wrote:
I'm not sure, but you guys seem a bit Windows-centric. I have yet to
find out if the egg-approach actually works for Linux (and Mac, though I
don't use it) as well.
It does. We have several linux and mac-based developers here. (I'm
on a mac most of the time.) I am currently running most of the ETS
libraries from eggs. It's certainly true that the large, monolithic
Enthought Python Edition that was offered in the past was only
available for windows, but that's gone now and has been replaced with
the egg-based distribution.
I've seen some mentioning of binary dependencies,
which makes me frown a bit. We'll just see.
The Traits package has a small C extension that builds on all
platforms that I've seen. Most of the other binary dependencies are
for graphical things like the plotting library. If you just plan to
use Envisage, you won't need those.
Yeah, I've been reading through that for the past couple of hours, seems
pretty sweet and reasonably simple.
I can see your reorg, by the way: The example .py files are not where
they're advertised to be. Better be quick with that, even solid software
with buggy documentation is buggy software ... ;)
I'll file a ticket for that. :)
-Peter

May 18 '07 #17

P: n/a
Wildemar Wildenburger wrote:
Stef Mientki wrote:
>I took a look at Eclipse page you mentioned but after reading the
first page I still don't understand what you mean (and I never read
beyond the first page ;-).
Well, what can I say ...
;)

>With a plugin system, I can think of a complete operating system,
or I can think of something like a DTP, or simply Word,
or I can think of something like Signal WorkBench
etc.
Yes exactly. As I said: Nothing in particular. Just an environment that
loads and unloads little bits if functionality, whatever those may be.
I think what most people think of when they hear "plugin" is: An
Application that can be extended.
An RCP provides no more than the next step: No monolithic app, just
plugins (which can have plugins themselves (which can have plugins
themselves (which ...))). Write a text editor component and use it in
your music-sequencer that also monitors your internet-activity, if you
must.

>I think if you don't express what all of the tasks of that framework
will be,
it's not well possible to create one.

Oh, but it is! Eclipse is such a framework. Pitty is, it's written in
Java. ;)

>Do you want just launching of applications, or do they have to
communicate,
exchange data, launch each other, create together one document or more
general control one process,
and lots of more questions ;-)
Who knows? Thats the beauty of it. Eclipse has been conceived as an
IDE/Text-Editor. But now it is just a platform for others to build
plugins for. Such as an IDE. There are plans to make an eclipse-based
general PIM (called Haystack, I think). The concept is very simple, but
for some reason, highly unusual at present. I'm pretty sure that this
will change sooner or later.
I took a look at some of the examples build with eclipse,
and I might be wrong, but it's just another IDE,
(like Delphi, Lazarus, Visual Basic, Kylix, Pida, Envisage, VisualWX, wxGlade, ...)
what am I missing ?

To have an IDE as good as Delphi in pure Python,
would be still be great ;-)

cheers,
Stef Mientki
May 18 '07 #18

P: n/a
Stef Mientki napisał(a):
I took a look at some of the examples build with eclipse,
and I might be wrong, but it's just another IDE,
(like Delphi, Lazarus, Visual Basic, Kylix, Pida, Envisage, VisualWX,
wxGlade, ...)
what am I missing ?
I think you miss the difference between Eclipse IDE and Eclipse
Platform. The IDE is and application built using RCP. As Azureus or
RSSOwl, which aren't IDE-type applications. One of the tutorials
mentioned int the RCP wiki takes user through creating an email client
application, which is not an IDE, definitely. Eclipse RCP allows
building applications as a set of pluggable features over common
runtime. While not a "mark-and-drop" solution yet, it's a great leap
forward in Java desktop applications.

There's more to Eclipse that just IDE. ;)

--
Jarek Zgoda
http://jpa.berlios.de/
May 18 '07 #19

P: n/a
Wildemar Wildenburger <wi******@freakmail.dewrites:
I think what most people think of when they hear "plugin" is: An
Application that can be extended.
An RCP provides no more than the next step: No monolithic app, just
plugins (which can have plugins themselves (which can have plugins
themselves (which ...))). Write a text editor component and use it in
your music-sequencer that also monitors your internet-activity, if you
must.
That sounds like Python to me. Write an application as modules
(natural and easy in Python), ensure the module interface is clear,
and those modules can be used for their functionality elsewhere.

You gave an analogy to Emacs. Well, Emacs' plig-in nature comes from
two things: a core set of functionality primitives, exposed through a
Lisp API; and a Lisp machine. From that framework, anyone can write
Lisp plugin programs to make the Emacs framework behave in a
particular way.

You already have Python, and can embed it in your program. The only
missing piece seems to be the primitive operations at the core, which
surely depend on what exactly it is you have in mind for your program
and can't really be provided in a generic form by some other party.

This "framework" you're looking for, what would it actually *do*? If
you can't describe what features it would provide, I can't imagine
what it actually *does*.

--
\ "This sentence contradicts itself -- no actually it doesn't." |
`\ -- Douglas Hofstadter |
_o__) |
Ben Finney
May 19 '07 #20

P: n/a
Jarek Zgoda wrote:
Stef Mientki napisał(a):
>I took a look at some of the examples build with eclipse,
and I might be wrong, but it's just another IDE,
(like Delphi, Lazarus, Visual Basic, Kylix, Pida, Envisage, VisualWX,
wxGlade, ...)
what am I missing ?

I think you miss the difference between Eclipse IDE and Eclipse
Platform. The IDE is and application built using RCP. As Azureus or
RSSOwl, which aren't IDE-type applications. One of the tutorials
mentioned int the RCP wiki takes user through creating an email client
application, which is not an IDE, definitely. Eclipse RCP allows
building applications as a set of pluggable features over common
runtime. While not a "mark-and-drop" solution yet, it's a great leap
forward in Java desktop applications.

There's more to Eclipse that just IDE. ;)
Sorry, I don't get the difference between an IDE and RPC.
If I look at the demo of the "email client" you mentioned,
(and I don't understand a bit of Java),
I see a very complex story (at least for me).

Is there an easy possibility that I can see the "email client" you mentioned,
working on my computer,
so I can judge how I would create the same functionality in one of the other IDE's,
maybe then I get the picture.

thanks,
Stef Mientki
May 19 '07 #21

P: n/a
Ben Finney wrote:
You already have Python, and can embed it in your program. The only
missing piece seems to be the primitive operations at the core, which
surely depend on what exactly it is you have in mind for your program
and can't really be provided in a generic form by some other party.

That's where you're wrong. Such a tool exists. I really can't explain
any better than I (and Jarek even better so) already did. The keyword is
Rich-Client-Platform. Wikipedia explains it, so does the already
presented Eclipse-wiki, as does the Enthought Tools Site (specifically
Envisage), which also holds the answer to my problem/question. It is
solved. If you don't understand what I want, go to <URL:
http://code.enthought.com/ets/and read what it does.

I really, really appreciate the effort you (all of you) make in helping
me and getting me on the right track, but I'm a bit confounded by how
you can be trying to convince me that the tools I'm currently reading
the docs for don't exist.

I don't mean to be bitching, really. I just don't get your point here.
:)
W
May 19 '07 #22

P: n/a
Wildemar Wildenburger <wi******@freakmail.dewrites:
I really, really appreciate the effort you (all of you) make in
helping me and getting me on the right track, but I'm a bit
confounded by how you can be trying to convince me that the tools
I'm currently reading the docs for don't exist.
I think most of us never really understood what you were looking
for. Your descriptions were quite vague, and the websites you pointed
to seemed to assume a great deal of understanding about Eclipse. I
never got a handle on the features you wanted, so I presented my "as I
understand it, you already have what you want"-type conclusions to
prompt you for better descriptions of the problem.

I'm glad you were able to find a solution to whatever problem it is
you're trying to solve -- good luck with that :-)

--
\ "Too many Indians spoil the golden egg." -- Sir Joh |
`\ Bjelke-Petersen |
_o__) |
Ben Finney
May 20 '07 #23

This discussion thread is closed

Replies have been disabled for this discussion.