Scripting
Hendrik Boom
hendrik at topoi.pooq.com
Sun Nov 13 09:16:06 EST 2011
On Sat, 12 Nov 2011 12:55:08 -0500, Derek Atkins wrote:
> Hi,
>
> Hendrik Boom <hendrik at topoi.pooq.com> writes:
>
> [snip]
>> (1) The bulk of the code for gnucash should be a shared library, whose
>> API (s) provide all the essential functionality of gnucash. This would
>> include code for starting up gnucash, shutting it down, reading gnucash
>> fies, opeining the usual gnucash window, and so forth. The current
>> work of converting ad-hoc code to use Gobjects could go a long way to
>> making this API consistent.
>>
>> (2) The gnucash main program itself should operate entirely by using
>> this library's API.
>>
>> Maybe (1) and (2) is how gnucash is already structured; I don't know.
>
> This is already the case.. However it's not a single Shared Library.
> It's a ton of shared libraries.
Good.
>
>> (3) This library would be the basis for scripting interfaces to
>> gnucash. The API would make the gnucash library itself indifferent to
>> the scripting language being used. Of course, the API must still be
>> clearly documented, or it will be practically useless. Documentation
>> in the header files may suffice.
>
> This is also the case. The Scheme and Python bindings are based on the
> C APIs by wrapping using SWIG.
Good. By the Scheme bindings do you mean the hooks for the report-
generating guile code?
>
> [snip]
>
>> But now I'm getting far in advance of myself. I'm currently arguing
>> only for a clear, conprehensive, documented API that others could use
>> to build their own edifices on top of gnucash. That would open the
>> gates to all kinds of unexpected collaborations.
>
> I agree wholeheartedly. Are you willing to help document the APIs that
> exist?
Yes, in principle.
I hadn't known about the python bindings. First, it would make sense for
me to try to use the python bindings to see if I can do what I need,
writing a kind of a diary of what I discover I need to know and producing
bits of preliminary documentation as I go. How does collaboration work
with documentation? Is it a wiki? or svn access? or something else?
-- hendrik
More information about the gnucash-devel
mailing list