On 25 Feb 2011, at 7:45 PM, Nathan Kurz wrote:

> On Fri, Feb 25, 2011 at 6:56 AM, Andrew S. Townley <[email protected]> wrote:
>> The advantages of SWIG are that it's pretty widely used, and anyone with 
>> experience with both the source and the target binding language can usually 
>> get something working in hours, not days.  It seems to me that for lucy to 
>> get the adoption it needs to grow communities in other circles besides Perl, 
>> you need to start doing some marketing about how much easier it is for 
>> Joe-random-developer to take a Clownfish-enabled project and automatically 
>> generate the language bindings of their choice.
> 
> As Marvin's lost post claimed, SWIG is not really a good fit here.

I wasn't really advocating SWIG as a solution with the above; more that it's a 
known beast and people can create bindings for something they don't know the 
internals for relatively easily.  I get why you've gone with something like 
Clownfish.

>> a) Learn Clownfish
>> b) Implement Clownfish -> Lang conversion routines (in Perl?)
>> c) Run it on the lucy source
>> d) write binding tests
>> e) tweak bindings and/or conversion, e.g. goto b
>> f) rinse & repeat
> 
> Essentially correct, although it will soon be possible to do this with
> only C and the target language (no Perl required).  Also on the bright
> side, most of the heavy lifting only has to be once for Clownfish,
> rather than once per project.  Unfortunately, this lifting is heavy
> and has yet to be done, and will initially require working closely
> with Marvin.
> 
> Realistically, your hypothetical Joe-random-developer isn't going to
> be able to do this.  While turnkey documentation would help, that time
> would probably be better spent just making/polishing the bindings
> themselves for the most likely languages, which I'd guess would be
> Perl, Ruby, and Python.  The full documentation can follow after these
> are solid.
> 
>> I really like the mechanisms you're using in Clownfish--I really do, but it 
>> isn't going to matter much (except for KinoSearch/Perl users) if there 
>> aren't people able to easily create language bindings--no matter how much 
>> more powerful the plumbing is than SWIG or other approaches.
> 
> I think you're on the right path, but the bar is actually a bit
> higher.  Lucy is not going to get significant traction in any language
> until the bindings are sufficiently solid that Clownfish doesn't even
> come up.  I think it's a great tool for the purpose, but it's a core
> developers tool rather than an end-user tool.  It's more akin to
> porting SWIG to a new language than merely adding a SWIG interface.
> 
> What's needed is a few more core developers (such as yourself) with a
> strong language-specific itch and a willingness to dive into the C.
> Once that works done (once), Lucy should start to spread pretty
> easily.


I get what you're saying, but here's the rub for me:  I'm not really a 
developer anymore--I just play one on TV. ;)  At the moment, I'm wearing about 
10 different hats, and I'm trying to stabilize my own platform so I can divest 
myself of as many development responsibilities as possible.  If I don't, I 
won't be able to do a lot of the other work that I need to be doing.

I'm confident that I *could* do the Ruby bindings, I'm just not sure that 
taking on yet another development task is very smart right now.  Puts me in a 
rather unpleasant dilemma, actually, because I want to help, and I suspect that 
I'm going to hit more issues with Ferret as I go along since it doesn't seem to 
be designed exactly for how I want/need to use it.  Unfortunately, I can't make 
any more promises at the moment. :(

ast
--
Andrew S. Townley <[email protected]>
http://atownley.org

Reply via email to