[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