[Qgis-developer] Processing C++ algorithms

Matthias Kuhn matthias at opengis.ch
Wed Sep 14 03:48:04 PDT 2016


Hi

On 09/14/2016 12:01 PM, Luigi Pirelli wrote:
> On 14 September 2016 at 11:20, Matthias Kuhn <matthias at opengis.ch> wrote:
>> Hi,
>>
>> If one wants to create a C++ processing algorithm, is there any
>> preferred way to ship it? I don't think we are doing that yet apart from
>> calling 3rd party tools.
>>
>> The possible approaches I can see are
>>
>>  * Add a new QGIS module "algs" next to gui/core etc and use
>>    it's python bindings to call the code from a small python wrapper.
> 
> overhead?

While I am convinced that it is negligible in this case here, if it
would mater it would be in favor of a C++ implementation because of
fewer context switches between python/C++. So not for this but for other
algorithms, such a change could theoretically make a real performance
benefit.

> 
>>
>>  * Port some processing core classes to C++, mainly GeoAlgorithm,
>>    outputs and parameters (and possibly some dependencies).
> 
> I would be against this... I would leave Processing as pure python
> core plugin allowing it more dynamic respect qgis release

I think we are no longer shipping band-aid releases through the plugin
manager.
Just to make it clear: algorithms can still be implemented in python, I
don't mean to make any change on this front!!

> 
>>  * Ship it as a separate module and do it all the grass/saga etc. way.
> 
> IMHO the best solution... what is your use case to justify a different workflow?

Integration with the QGIS ecosystem. A 3rd party binary will not have
the same level of access to QGIS core functionality, it will need to be
maintained separately (e.g. API changes), pushed to all the distribution
repositories. In short: too much overhead and I can mostly discover
down- instead of upsides.

Matthias

> 
>> Context is, I will probably need this on QField with no python. I could
>> do it without processing there but since the trend is to processize
>> whatever possible, I thought it would be a good opportunity to bring
>> this subject to the table.
>>
>> Matthias
> 
> cheers
> 


More information about the Qgis-developer mailing list