On Wed, 2014-02-26 at 00:42 +0100, Krzysztof Kosiński wrote:
2014-02-25 23:04 GMT+01:00 Martin Owens <doctormo@...400...>:
> On Tue, 2014-02-25 at 19:17 +0100, Krzysztof Kosiński wrote:
>> As a backup option, I'm considering changing my MSc project to
>> implementing a Python scripting console for Inkscape. If I were to
>> pick that instead, the GSoC project could involve a variety of
>> refactoring tasks intended to simplify writing the Python bindings
>> used by the console.
>
> Wouldn't it be better to complete the DBus bindings for inkscape? Python
> has a very good dbus implantation that could be effectively wrapped for
> such a thing allowing process separation between python code operating
> on drawings and inkscape codebase.

The main reason behind the existence of the DBus API would be
programming language neutral, so you can theoretically write plugins
in any language. However, language neutrality is actually not that
great when it comes to plugins. To fix a bug in an existing script,
you have to know its language, and it could be anything.

Well, not quite.  The main reason for the DBus API was to write a Python console for Inkscape :-)  That's one of the reasons for its simplicity in that it was mostly targeted at simpler operations that giving the full functionality.  But it is true that one of the reasons to use DBus was so that shells could be developed for different languages, the student doing it was specifically interested in a scheme console a la AutoCAD.

> The tricky point is getting dbus working on windows.
> http://www.freedesktop.org/wiki/Software/dbus/#index6h1 It should be
> possible to depend on the in-tree windows port from fdo's development
> branch if it works. Since it's windows we don't need to care too much if
> something is packaged or stable beyond stable enough for inkscape.

Given the recent developments (kdbus), it seems to me that DBus is not
really intended as a cross-platform solution.

libdbus will continue to choose which protocol works on the given system.  So it won't change in that regard, it will just use kdbus if it's available.

Ted