Future direction (and a rant).

Given the discussions about this list, I would like to have a discussion
about broad direction. While we are changing basic structures in the
display code, I would like to make a suggestion.

I work (unfortunately) in ArcView. I did my academic work in GRASS. At
work, I have a frustrating, expensive, buggy thing to code scripts in
for other people to marvel at. Doing my academic work, I had a free,
emminently scriptable, not very buggy environment in which to work, with
limited visual support (think back before XDRIVER24, the first
version...).

I like the concepts that lie behind ArcView. I like the concept of
having a map view where the objects represented in that map view redraw
whenever you zoom, pan, etc. I like the scriptability (annoying
language, but it is scriptable). I like the idea of extensions that a
user can install for themselves, without threatening the larger
structure of the program.

What I like about GRASS is the fundamental stability, and the freeness.
The fact that I have to pay more than an arm and a leg for the use of
what I need from ArcView is faintly ridiculous. If I want to do the same
things as are done by d.3d, I need an expensive extension (or two). If I
want to do a photomosaic, I have to resort to an expensive addon, and
then I still need to do some coding just to make it go...

I wonder if there is any support for the following idea...

I propose a two-pronged approach to developing a GUI-based,
shell-scriptable GIS, exposing GRASS features through a fundamentally
more approachable interface.

The first prong is to change the parser. The parser should detect
whether of not the GRASS program is being run in a GUI mode. If so, and
there are missing/wrong/etc command line elements, then a GUI window
pops up, containing the required elements that were already passed into
the parser. Once the command has been run, any output goes to a common
log file, and then the next command can be run.

The second prong is to develop a GUI that spawns the appropriate shell
scripts or commands, and which has an integrated pan/zoom built into it,
and automatic map drawing.

I know that this is somewhat similar in principle to tcltkgrass, except
for the nature of the parser changes, and perhaps the automatic map
doodler. This could be a development on tcltkgrass, for that matter.

The required changes to the system are primarily restricted to the
parser. A whole new system would have to be developed for the GUI. There
would be follow-on changes to all programs that do not simply take a
look at the command line and produce something else. Interactive
programs like i.vpoints could continue to be used, but some programs
like s.menu might need some work.

At the very lowest level, the GUI could intercept stdin/stdout/stderr
and push those out through a terminal window of some sort. This is a
detail, however.

The last question I suppose is needed is WHY?
Why bother changing a system that seems to work so well already?
I think that GRASS is a good program, and I appreciate that it doesn't
often require the mouse. I like that in a program. On the other hand,
simply looking around in your data can be frustrating to say the least.
I spend a significant quantity of time in both GRASS and in ArcView,
just panning around, looking for things. This is annoying in GRASS, and
only mildly annoying in ArcView.
I won't bother with "aging interface" discussions, because I don't think
there is anything inherently wrong with the command line. The interface
as it stands should be kept, except for the interface for viewing data.
While that is being changed, there is the opportunity for a better
product that has the best elements of both styles of interfaces. Fine
control (Command line), scriptability (Command line) and simple
visualization/browsing (GUI).

Anyway, what are people's thoughts?
Does anyone really care?

What are people's thoughts about where we should go with GRASS in two
years (after all the floating point fuss has calmed down)?

Angus Carr.

Angus and any other interested party,
I'd like to address the "why" part of your post. I just finished
teaching a semester course in GRASS, focusing primarily on 4.x and the
command line. I've taught this particular version of the class for four
years, and this year I had the absolute worst response from the students
in the class. "Why?", I asked myself. My teaching may have been less
enthusiastic, the students may not have been as good. However, I started
to wonder if the key isn't the fact that students are no longer
interested in learning command line programs.

In our GIS curriculum, students are now exposed to Idrisi, GeoMedia, and
various combinations of ArcView and extensions. Why _would_ they want to
spend the time and effort learning a command line program, as well as
the underlying operating system? Sure, more advanced students often
return to GRASS because of its robustness and ease of automation, but
these features don't matter much to beginners.

Let me interject at this point that I'm very pleased with GRASS 5.0, and
that tcltkgrass looks mighty good for what it is. Yet Angus is correct,
GRASS needs a real, interactive display GUI if it ever wants to enter
the mainstream. Furthermore, it would be much more likely to be accepted
if it ran under the mainstream desktop OSs (heresy!!).

So, in the end, I think it comes down to the question of what we want
GRASS to be. Do we want it to simply be a solid, powerful tool for users
who are willing to learn it and don't want to pay for their software? Or
do we want to expand its appeal, to show the ESRI's of the world that
there are other approaches? I'm not sure where I stand.

My $.02, and not necessarily the opinion of my employer.

Best regards,
  -Malcolm

Malcolm D. Williamson malcolm@cast.uark.edu
Center for Advanced Spatial Technologies Voice: 501-575-2734
12 Ozark Hall Fax: 501-575-5218
University of Arkansas, Fayetteville AR 72701
http://www.cast.uark.edu/