On Thursday, March 1, 2012 3:57:53 AM UTC-6, Kees Bos wrote:
> Does anyone have an idea about how much work it would take to maintain python-xpcom?
> Could it be automated using swig?
The binding needs to be done at the right level. Ideally, one would like access to the DOM hierarchy at the level insert/delete/modify this, but not at the level of managing the memory and how things are inserted/deleted/modified. Then, one wouldn't care if memory management changed, or widget X requires that one now calls Y which now depends on Z' instead of Z. In other words, my opinion is that the language interface should be at the "do this for me level" and not at the object/memory management details (C or assembler level).
The problems with interfaces at lower levels include: supporting memory management in multiple systems/environments, the computational and memory costs of translating objects between two different environments, and increasing the overall burden on high level developers who want to bang out the next big thing.
(ok, wtf is up with my typing on google groups, some key combo keys submitting and/or dropping me from the reply -- something like ctrl + space)
I tried to use swig, but found boost::python more suitable for my personal projects. More recently, some have mentioned Lua lang bindings as a potential starting ground.
I would need to look a the xpcom code to even know what type of approach was reasonable for python xpcom.
This is tongue in cheek "I dare say that for many purposes most people using something like pyjamas desktop could just say **** it, and support only MSHTML (or whatever it is called) on Windows and if the user base supports it then spend the time to get webkit working on the "other" systems." (Note that unfortunately between Windows and webkit, most if not all general user platforms are covered).
I realize that it appears that the current user base for python xpcom is infinitesimal and irrelevant to some. However, why ignore or actively destroy ways that already support inter- language and inter-platform operations.