On Sat, Jun 6, 2015 at 5:14 AM, Nick Wellnhofer <[email protected]> wrote: > Lucifers, > > I started playing around with Rust and, naturally, I became interested in > how Rust bindings for Clownfish could be implemented.
Rust is fascinating. I wish I had time to learn it in depth right now. Since I don't know it cold, I can only offer abstract feedback. When adding a Clownfish binding language, the goal is to make Clownfish-powered libraries feel idiomatic. We want to improve on SWIG, not duplicate its deficiencies. I feel like we've nailed it for Perl and will get it right for Python. For C, we didn't quite nail it because we don't support the native string type of nul-terminated char arrays. For Go, we haven't quite nailed it yet because the subtyping model, once it supports overriding, will produce non-idiomatic behavior that Go programmers will find surprising. To what extent will this Rust proof-of-concept yield idiomatic Rust APIs, with regards to the following concerns? * naming conventions * method signatures * object lifetimes * use of host types, such as host strings not Clownfish strings * package layout and distribution * subtyping behavior * versioning Marvin Humphrey
