[GRASS5] Some thoughts

Glynn Clements glynn.clements at virgin.net
Thu Jan 17 16:17:19 EST 2002


Markus Neteler wrote:

> a layered XDRIVER is already there in head:

That wasn't what I meant by "layered". I was referring to the overall
architecture of the system.

On the bottom layer, you have libraries.

On the layer above that, you would have all of the various
command-line tools, which wouldn't attempt user interaction, or rely
upon being part of some session.

The topmost layer would provide an interactive environment (as well as
non-interactive environments, e.g. GRASSlinks).

Right now, implementing a decent GUI isn't realistic possibility, due
to the number of programs which, in one way or another, assume that
they are interacting directly with the user via a terminal and/or the
R_get_location_with_* functions, effectively eliminiating the
possibility of controlling them from some other program.

In order to be able to implement a proper GUI (as well as things like
a web interface), the core programs have to cease using G_ask_*,
R_get_location_with_*, stdin, stdout, stderr, etc. Instead, they need
to just parse the command line, read data, perform computation, write
data, and exit.

In short, the programs have to stop behaving like stand-alone programs
and start behaving like modules of a larger system. In order for that
larger system to provide a decent level usability, it needs complete
control over what interaction occurs and when; which implies that the
individual modules don't get to perform interaction of their own
volition.

-- 
Glynn Clements <glynn.clements at virgin.net>



More information about the grass-dev mailing list