[GRASS-dev] Handling of Python scripts on MS Windows

Moritz Lennert mlennert at club.worldonline.be
Sun Apr 13 08:03:17 PDT 2014


On 11/04/14 13:05, Martin Landa wrote:
> Hi Jurgen,
>
> 2014-04-11 12:42 GMT+02:00 Jürgen E. <jef at norbit.de>:
>
>>> although the architecture may differ, we may get some inspiration for python
>>> windows handling from other GIS projects like QGIS?
>>>
>>> in QGIS python is also in heavy use, e.g. QGIS processing framework, python
>>> addons, integrated python shell, etc. AFAIK they're bundling python in their
>>> standalone winQGIS ...
>>
>> Not sure if I want to participate in this thread.
>
> you are probably not alone...


[...]

 >> That way you could use the stock sources and wouldn't have to use
 >> patches when packaging (which would have been my pragmatic approach
 >> to solve the issue at hand without risking that someone pulls a
 >> Glynn on it ;)).

I don't think this a very helpful attitude. This whole debate is not 
about one bad guy keeping the rest of the good guys from moving forward. 
First of all, Glynn is not alone in his position.

But secondly, and more importantly, the debate is about two fundamental 
questions and these questions need to be debated with patience:

1) Should GRASS be the same (i.e. feature parity) on all platforms ?
2) How much less effort can we ask of Windows users than we ask of users 
of other platforms ?

GRASS was developed in a time when Windows didn't even exist. And it was 
developed in a very typical *nix style and form. This makes for its 
special character and for use forms which are quite different from most 
recent programs. For long years the only way GRASS could be run on 
Windows was by imitating a *nix environment using cygwin.

Growth in interest in free software, accompanied by a continued 
dominance of Windows on the desktop, and the desire of some of us to 
provide the possibility for our colleagues to run GRASS on their Windows 
machines prompted the beginning of a long period of making GRASS 
compilable and runnable natively in Windows. And the switch to Python 
for scripts was, amongst others, motivated by the desire to make these 
scripts more platform-independent.

At no point, however, was there ever the question of creating a special 
Windows version of GRASS, a version that would function differently from 
the *nix version. IIUC, this latter desire seems to have come from 
experiences of some of us with windows users who were not accustomed to 
*nix-style programs/libraries/toolboxes. Thus the debate about whether 
or not we should even show a command line environment outside the GUI 
and thus, now, the argument that GRASS4Win should be a different beast 
than GRASS4NIX in that it should become a monolithic integrated 
application, which, IMHO, fundamentally alters the very nature of what 
GRASS is. Generally, to put it more bluntly, there seems to be an 
attempt to dumb GRASS down for Windows users, who, on average, are less 
computer-savvy than *nix-users (as a side note, this argument is quickly 
losing its grounds when I see the number of GNU/Linux uptakes around me, 
especially now in the wake of the discontinuation of XP-support). The 
idea is that *nix users can solve Python installation issues so as to 
have their system-wide python work with GRASS (to be totally honest life 
is a bit easier for them thanks to the /bin/env solution).

[Side note: The same discussion should also constantly be held about 
functionality which is specific to the GUI, because specifically 
developed for it), i.e. not just a GUI layer above command line 
functionality, something I'm afraid to see creep in more and more...]

Now, as Glynn has pointed out, with distributions soon to ship Python3 
as default (and I'll throw in: with the *nix crowd changing), we will 
quite probably see similar issues in *nix installation as we are seeing 
now in Windows, so the question is how to find a solution which will 
work across all platforms without the need for constant manual 
intervention by developers to solve yet another special case. And, IMHO, 
part of this solution will be through trusting a GRASS user on Windows 
to be capable of following basic instructions concerning the steps to 
follow to install GRASS on their system.

> if you take a look on all threads related to this topic in grass-dev
> ML you will count more that 150 messages, but without real consensus.

Well, there have been different proposals for possible solutions, 
amongst which the Python launcher which I tested last summer [1], but 
except for Helmut, none of those who are pushing for a quick solution of 
the issue seem to have been sufficiently interested to test that path. I 
know I haven't been very active on that front, and so will not throw 
stones, but others shouldn't either...

But whatever the solution, unless we want to turn GRASS4Win into a 
different application than GRASS on other platforms, there will have to 
be a minimal amount of intervention by the user to chose how she wants 
to handle Python on her machine.

To come back to a general note about this debate: As should be clear 
from this and previous interventions, I have my opinion of the direction 
to follow, but I would never claim this to be the one and only. The way 
the debate is being held on the list, does give the impression, though, 
that some think that the solution is obvious and that anyone who opposes 
that solution is just to stubborn/conservative/thick to understand it. 
And that attitude really irritates me.

Moritz

[1] http://lists.osgeo.org/pipermail/grass-dev/2013-July/065197.html


More information about the grass-dev mailing list