Future direction

A happy new year Frank and Angus,

here my 0.02 Euro, a little late as usual because I moved back to
Germany.

On Wed, Jan 05, 2000 at 05:17:45PM -0500, Frank Warmerdam wrote:

Angus Carr wrote:
> Based on one day's return comments, people on this list see the
> "arcviewization" of GRASS as a good possible thing.

I am not sure describing it as the arcviewization of GRASS is the
best way to develop support for your idea. :slight_smile:

I agree with Frank here.
For various reasons, arcview in not the goal I see.

The tale is that a good programmer knows, when to start over again and
put code aside. GRASS is a very useful and rich GIS tool, but I cannot
see how it will ever be a simple mapping and visualisation tool.

Or to put it in another way: To develop a new software package will
need less effort than to extend GRASS to reach the same (GUI) power.

Frank makes a couple of points I agree with.

My personal opinion is that GRASS needs a friendly data viewing environment
more than it needs a friendly interface to the analysis commands. By this
I mean a relatively simple GUI in which you can load various layers of
raster and vector data, browse around, select objects and inspect attributes.

The free software world needs it. :wink:

I can see a few major decisions to make:

o What language to implement it in?

   I don't feel the viewer should be implemented in Tcl.

I agree.

   My normal bias would be to implement it in C, or now days C++.

Let my throw python in the round. C would work, but C++ is a nasty
language, I saw a couple of free software projects die or suffer,
because of the C++ choice.
As extension languages are scheme (guile) and python state of the art.

o What GUI toolkit to use?

Only a a free cross platform GUI I think.

That eliminates X11, gtk and Qt.
WxWindows, fltk and fox still look good.

(wxWindows runs with native GUI toolskits, like gtk on X11 or MFC on
Windows.)

o How closely is it related to the existing GRASS driver technology?
Does it attempt to maintain some level of compatibility with the
existing GRASS display driver approach?

We'd better say no here.

o How closely does it relate to the existing GRASS data model?

Again, the GRASS model looks a bit like a cage to me to actually
implement an interactive geographic information viewer.
That is why I favour the redesign and reimplementation.

o What sort of commandline interface would be available?
I think Tcl would be
   a reasonable choice for an extention language.

Resaonable, maybe, but I see a clear trend towards python and guile or
scheme. (perl still is used, too)
The extension usually is done through exposure of object interfaces.
(Buzzwords: CORBA, COM, SOAP.)

The biggest question is how would such a project be resourced?

Like any free software project, hopefully.
Through a lot of contribution and nice useful code.
Programmers would be paided by different companies to provide solutions.

One final note, I mentioned that I think it should be built on multi-format
vector and raster libraries. This is my area of interest, and I would be
willing to do substantial work to make my raster and vector multi-format read/
write libraries available, and tailoring them to the needs of such a viewer.

True and you already started to work on it.
I am a bit surprised that you did not mention the freegis.org
project.

Our goal certainly is to promote and bundle free software gis/mapping
efforts. We even might start developing such a simple data viewer.
We hope that we can use it in a project and therefore fund developments.

  Bernhard
--
Research Assistant, Geog Dept UM-Milwaukee, USA. (www.uwm.edu/~bernhard)
Free Software Projects and Consulting (intevation.net)
Association for a Free Informational Infrastructure (ffii.org)

On Tue, 11 Jan 2000, Bernhard Reiter wrote:

> Angus Carr wrote:
> > Based on one day's return comments, people on this list see the
> > "arcviewization" of GRASS as a good possible thing.

The tale is that a good programmer knows, when to start over again and
put code aside. GRASS is a very useful and rich GIS tool, but I cannot
see how it will ever be a simple mapping and visualisation tool.

  I read a bit of confusion here. The Microsoft-centric world started with
what we would consider GRASS to be: a GIS-engine used to enter, store,
manipulate, analyze and report on spatial data. That is, attributes related
to specific places on the Earth. The two fundamental questions are: What is
where? and Where is what? The strength of GRASS (like that of ARC/Info and
Idrisi) is data analyses. I, for one, do not want to lose this ability. As a
matter of fact, I'd like to see it strengthened in the vector-data area and
tie everything to the postgres RDBMS and the R statistical language. Most of
the applications relate to the natural world.

  In the Microsoft-centric world, MapInfo saw an opportunity for a different
spatial tool: desktop mapping. (Perhaps others were first; I neither know
nor care.) "Desktop mapping" was/is aimed at the business market and the
focus was on pretty displays (on screen or paper) with comparatively simple
and limited analyses. The end user was expected to purchase data (ideally,
from the desktop mapping software vendor), not generate them from scratch.
US Census Bureau data focusing on urban areas form the nexus of the
available data. ESRI saw the potential of this market (i.e., end-user
oriented rather than guru-user oriented) and entered with ARCview.

  I've not followed this discussion in depth (too much to do right now), but
I suggest that there is great value in taking GRASS in both directions. That
is, the core should be strenghened as a powerful analytic engine for all
sorts of data types while different UI modules be developed to hook on the
back end as needed.

  A MapInfo/ARCview type end-user UI would be the perfect front end to GRASS
in business applications. The command line and GUI interfaces can be
developed in parallel for those who need (or prefer) the increased power and
accessibility to functions.

  As for languages, I prefer C and gtk+ for the UI. I recognize that we need
something to make GRASS accepted by the Windows user, and I defer to those
of you with more expertise in this area. The UI for linux, solaris or
win9x/Nx/2x should be interchangable modules.

Enough from me,

Rich

Dr. Richard B. Shepard, President

                       Applied Ecosystem Services, Inc. (TM)
              Making environmentally-responsible mining happen. (SM)
                       --------------------------------
            2404 SW 22nd Street | Troutdale, OR 97060-1247 | U.S.A.
+ 1 503-667-4517 (voice) | + 1 503-667-8863 (fax) | rshepard@appl-ecosys.com

On Tue, Jan 11, 2000 at 09:30:01AM -0800, Rich Shepard wrote:

On Tue, 11 Jan 2000, Bernhard Reiter wrote:

> > Angus Carr wrote:
> > > Based on one day's return comments, people on this list see the
> > > "arcviewization" of GRASS as a good possible thing.

> The tale is that a good programmer knows, when to start over again and
> put code aside. GRASS is a very useful and rich GIS tool, but I cannot
> see how it will ever be a simple mapping and visualisation tool.

  I read a bit of confusion here.

Well at least about the different spatial data processing software
tasks. I did not take the time to explain them all in my last post.

The Microsoft-centric world started with
what we would consider GRASS to be: a GIS-engine used to enter, store,
manipulate, analyze and report on spatial data.

"Desktop mapping" was/is aimed at the business market and the
focus was on pretty displays (on screen or paper) with comparatively simple
and limited analyses.

ESRI saw the potential of this market (i.e., end-user
oriented rather than guru-user oriented) and entered with ARCview.

I suggest that there is great value in taking GRASS in both directions.

I tend to differ.
From the software engineering point of view the core and frontend idea
is not the problem here. From my personal impression of the GRASS source
code I think it will be a major undertaking. It might be easier to start
from scratch (of course taking the source code and knowledge from GRASS
not tabular rasa.).
The main reason for this is the integration of exploration functions and
the GUI. The data structure and program logic behind something like
ArcView has to be completly different to enable the program to be
interactive and nice to create maps.

  A MapInfo/ARCview type end-user UI would be the perfect front end to GRASS
in business applications. The command line and GUI interfaces can be
developed in parallel for those who need (or prefer) the increased power and
accessibility to functions.

Again, as someone, who as worked with advanced User Interfaces I believe
that the ArcView Interface is significantly sub-optimal.

The next step will be task orientated components and
the integration of them. ArcView always had the bloat-ware concept build
in. (Though they talk about components, but they mean internal
components.)

  As for languages, I prefer C and gtk+ for the UI. I recognize that we need
something to make GRASS accepted by the Windows user, and I defer to those
of you with more expertise in this area. The UI for linux, solaris or
win9x/Nx/2x should be interchangable modules.

wxPython runs on Gtk+ on Unix. :slight_smile:

Just my 0.03 Euro,
  Bernhard
--
Free Software Projects and Consulting (intevation.net)
Association for a Free Informational Infrastructure (ffii.org)