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. > 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. Nathan Kurz [email protected]
