[GRASS5] Some thoughts
Markus Neteler
neteler at itc.it
Fri Jan 18 07:16:42 EST 2002
On Thu, Jan 17, 2002 at 09:17:19PM +0000, Glynn Clements wrote:
>
> 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.
Ah - yes! Funny, as a result from the Trento meeting I already
wanted to post something into this direction.
> 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).
I would even propose two different views on above model:
1. the technical model: circular layers of GRASS around the CORE-GRASS
(libraries), the command-line tools, the GUI (as you described above)
2. the user model: Most advanced users in the inner circle, average
users around. This may sound ridiculous, but is rather complex.
Some thoughts:
ad 1.: Especially for the 5.1 development we should first focus on
CORE-GRASS, to get it stable and reliable, with test environment
etc. In my opinion it is very important to break up the system
into packages, such as CORE, BASE, HYDRO, whatever we call it
to be able to have the core system and plug-ins. This should be
easier to maintain and easier to release. The users can only
download packages of their interest (to run it even on a
hand-held)
ad 2.: As GRASS is a general purpose GIS, we have a quite heterogenous
user community with different expectations. We want to provide
tools for advanced users who want to perform complex tasks as
well as interest the wide "average" user community who maybe
just wants to import data and make a map. At least newcomers
have some problems to get familiar with the system. When picking
up the people at *their* level of knowledge, we may get many more
users. The psychological threshold to work with GRASS may be to
high for lots of newcomers. But: There must remain the advanced
level such as command line to omit the "click-click" GIS :-)
In summary: when thinking of the different users, we need to
address their different needs.
> 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.
Maybe yes for above, but we should somewhat keep the modular character
with low memory overhead etc. Probably a question of implementation.
Just some more thoughts,
Markus
More information about the grass-dev
mailing list