[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