<div dir="ltr">I'm not talking about the current structure. Yes, the modules are the CLI right now and the GUI calls the CLI modules internally. What I'm saying is that it would great if we could separate the logic and CLI and put the logic in plugins and let the CLI and GUI calls the logic. GUI would be independent on CLI and directly call the logic plugin. Here, I'm saying plugin because each module could be implemented as a mod_*.so just like Apache modules. Then we could implement a CLI environment that can load mod_*.so as needed dynamically. In the same way, other programs can call mod_*.so without creating a separate process for individual modules.<div>
<br></div><div>Actually, even now, GRASS libs are called directly from GDAL for handling raster/vector maps.</div><div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, May 2, 2014 at 9:58 AM, Moritz Lennert <span dir="ltr"><<a href="mailto:mlennert@club.worldonline.be" target="_blank">mlennert@club.worldonline.be</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="">On 02/05/14 14:29, Huidae Cho wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I agree. grass-cli and grass-gui should be completely independent and at<br>
the same level. They are simply two different UIs that directly depend<br>
on grass-lib. The user wants either grass-cli & grass-lib or grass-gui &<br>
grass-lib.<br>
<br>
Now, my opinion is if we put analysis and modeling code in grass-lib,<br>
grass-lib would be too big or, for some users, it would contain too much<br>
irrelevant code if all they want is simply GIS operations. Very<br>
field-specific code such as hydrology, remote sensing, ... should be<br>
separated out from the grass-lib and put in another layer of the<br>
libraries. grass-cli/gui will interact with that layer directly.<br>
<br>
grass-lib <-> grass-plugins <-> grass-cli, grass-gui, other GISs: Full<br>
analysis/modeling suite<br>
<br>
grass-lib <-> other GISs: Simple GIS data manipulation very common in<br>
all fields.<br>
<br>
</blockquote>
<br></div>
I don't think I understand: there is no such thing as grass-lib that can be called from either a grass-cli _or_ a grass-gui. The GUI actually calls grass modules. And these modules _are_ the CLI. And as many discussions have shown before, GRASS libs should not be called from anything else but GRASS modules.<span class="HOEnZb"><font color="#888888"><br>

<br>
Moritz<br>
<br>
</font></span></blockquote></div><br></div>