Hi,
due to the recent massive complaints about speed and scalability
of the GRASS 5.7-CVS data conversion modules (maybe other modules
as well) and about missing/incomplete documentation I would like
to post here a few considerations:
In 5.7 the vector engine was, based on the existing code, more or less
rewritten, almost by Radim. As spatial index, 3D faces and 3D kernel,
category index, multilayer, flexible database management system (SQL
based, with support of external databases and the new internal format)
were integrated, all algorithms of the vector library depending
modules had subsequently to be rewritten as well. Then, of course the
documentation as well (from scratch) as everything changed.
Along with a new Makefile system, new modules such as v.digit and d.m,
GUI windows generation at run-time, semiautomated HTML/MAN user
documentation, merge of the entire programmer's manual in doxygen
format into the source code, vector network analysis applications etc
etc a lot of development has happened since 2002.
In my opinion there is not so much to complain about.
Looking at the 5.7-CVS ChangeLog statistics, we see that 68%
of all contributions were submitted by only two developers (not
considering the recent 2500 code merge commits of Bernhard).
The current state of 5.7 probably reflects what's possible for such a
small number of developers, who, btw, are not supposed to work full
time for GRASS development. It's not that I intend to complain about
missing contributions from others. Valuable submissions have been
integrated the last two years. And GRASS could even survive with a
single developer and the related Web-infrastructure. But naturally
things happen much slower with a small number of contributors.
This was probably not very clear yet to everybody.
Personally, I'm also grateful to all the 5.7 users and power users who
continuously update (certainly annoying/risky from time to time) and
test the current developments. This is a valuable contribution as our
testing here at ITC-IRST (yes, we are using 5.7 in productional mode)
is certainly not sufficient to catch all possible combinations of
flags/parameters/projections/data types etc.
The strategy of the mentioned two developers who contributed most to
5.7 is to stabilize the existing code. However, to stabilize does not
necessarily mean to optimize for speed. Unless more people contribute
here, this will be postponed for 6.x with 6.x>6.0.
Main reason is that we simply have to get out a new stable version.
Otherwise nobody will start to package it and add it to Linux
distributions etc (see especially the discussions in Debian-GIS
mailing list). No packager is willing to invest time into a "moving
target" such as the CVS snapshots are. And very few "normal" users who
want a stable version for production consider to run GRASS CVS
(see the repeated questions on 5.0.3 which is still considered as the
only existing stable version in parts of the community).
As discussed several times in the last years, I still propose to
follow the "release often" paradigm rather than "let's postpone again"
(e.g. for a certain feature which then often doesn't happen to be
implemented). For example, the bugtracker is partially ignored by a
number of developers which suggests (to me) that we should not hold
6.0 as many of these old 5.0.x problems were already solved in the new
version. But: 6.0 must become accessible to the "normal" user.
And the group of 5.7 users who recently complained about various
problems are all power users/developers who are able to work from CVS.
Once 6.0 is out, we can (immediately, depends on contributions) go for
speed optimization etc. But for now, let's use our energy to clean up
existing stuff and add missing docs (also more translators are
urgently needed!); at least the above mentioned two developers think
so.
Looking at external projects such as QGIS and JAVAGRASS, we can say
that the new GRASS seems to be of major interest. But also the
developers of these projects will need a release to build on top of
that.
Again: IMHO there is not much to complain about. The upcoming version
comes with excellent features. The wider GRASS community is waiting
for it. Of course, don't hesitate to post improvements. They are more
than appreciated.
So far my remarks,
Markus