Re: graphs, guppi or Grace?



Mathew Yeates <mathew fugue jpl nasa gov> wrote:

I guess my real question, and don't take this the wrong way, is ...
why was guppi written?  What advantage would there be to using it
over other plotting programs?

I'll try to address each part of that question separately.

*** Why was Guppi written?

To be perfectly honest, the reason I (with help from others, of course)
wrote Guppi is that I wanted to write a plotting program.  So I did.

The less glib answer is: Before I joined Ximian, I worked for several
years in a position where I did a lot of quantitative analysis, and I
was never satisfied with the free plotting programs that were
available.  Some good programs were out there --- Grace is one example,
and I also liked XGobi for certain things --- but nothing was really
well-suited for the kind of visualization that I wanted to do.

Over the years I hacked together a number of small "toy" plotting
programs, and found that plotting was a very interesting (and
difficult!) problem domain to work in.  For some perverse reason, I
think that plotting programs are really fun to work on.  Guppi is an
outlet for this, and reflects 5+ years of thinking about how a plot
program should be structured for maximum flexibility and modularity.


*** What advantage would there be to using it over other plotting
programs?

Well, let's start with the disadvantages.

(1) Guppi is incomplete.  It is missing lots of features.
(2) Guppi has had a rather drawn-out development process, which might  
    worry some people.
(3) Guppi is supposed to be a stand-alone app, but is basically useless
    as such.

These are obviously problems, and it wouldn't be hard to extend this
list further.  I wouldn't suggest that anyone throw away Grace yet. 
Here is a summary of the Guppi "philosophy".  Any of these may or may
not be advantages, depending on your preferences and needs:

Guppi is built on top of Gtk+/Gnome technologies.  This is subjective,
of course.  If you like those technologies, that is a good thing.  (And
this is a huge advantage for Gnumeric, since it makes tight integration
possible.)

One of the design goals of Guppi is to be embeddable in other programs,
rather than just being a "monolithic app".  It is my impression (which
may be incorrect) that embedding Grace would be very difficult.  The
Grace python bindings really just (as I understand it) pass commands to
grace via a pipe... which is perfectly fine, but which does put certain
limits on how it can be used.  In particular (as you mention), it puts
rather significant constraints on the extent to which the Grace's UI and
the embedding app's UI can be merged.

Guppi is currently being used by two different projects (Gnumeric and
Gnucash) in two fairly different ways, and I've received reports from a
number of people who are using Guppi as a plotting engine in their own
programs... which I take as a good sign that I'm doing something right
in this area.

Guppi is also designed to be scriptable at a very high level.  Both
guile and python scripting are supported --- though I have to admit that
scripting is sort of broken right now, and will probably stay that way
until we port until Gnome 2.0 (which has much better support for
language bindings).  Guppi can also execute scripts in "batch mode",
without an X server running.  This is an advantage over some plotting
programs: it may or may not be an advantage over grace... I don't know
grace well enough to say.

The third major design goal of Guppi is to be highly modular and
extensible.  Outside of the overall framework, most of the interesting
bits of Guppi are in various plug-ins.  It is (theoretically, at least)
easy for write plug-ins to add new plot types, to add new data
containers, or to provide alternative implementations of existing data
containers.  My hope is that this will allow Guppi to grow in
interesting directions.

Like any proud parent, I could ramble on at much greater length about my
baby's fine qualities and amazing potential -- and clearly I'm biased,
so everything I say should be taken with a grain of salt.  But hopefully
this will help to convince you that there is room in the world for at
least one more plotting program.

-JT










[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]