On Fri, Feb 25, 2011 at 9:28 AM, Barend Gehrels <span dir="ltr"><<a href="mailto:barend@xs4all.nl">barend@xs4all.nl</a>></span> wrote:<div>[SNIP]</div><div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
I don't understand this:<br>
- if the API/ABI changes, then you might have (sometimes) the same problem with Python (don't know sip).<br></blockquote><div><br></div><div>Not exactly. Python code is interpreted, not compiled. As long as the plugin code remains valid Python-- moving from Python 2.x to 3.x is an example of where this may break--and the QGIS Python API remains unchanged, then the Python interpreter built into QGIS will be able to execute it.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
- faster to implement but C++, in general, runs faster. If I've write labelling or routing plugin -> I would prefer C++<br></blockquote><div><br></div><div>True.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
- some people knew C++ better, some Python, some both, if there are two options, would one be deprecated?<br></blockquote><div><br></div><div>Nope. Python is great for rapid development, flexibility and an enormously capable standard library. As you noted above, C++ is great when you absolutely need something to execute as fast as possible. Reason enough to keep both options.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
- why easier to distribute?<br></blockquote><div><br></div><div>Python code is interpreted so one does not have to compile and test a separate binary distribution for every platform QGIS runs on. That cuts the distribution workload by several orders of magnitude.</div>
<div><br></div><div><br></div><div>Of course, if you start mixing Python *Extensions* (which contain compiled C/C++ code), into your Plugin module, then it is a whole different ballgame.</div><div> </div><div><br></div><div>
-Charlie</div></div></div>