[Date Prev][Date Next][Thread Prev][Thread Next]
- Subject: Re: LuaPlus popularity
- From: Rob Kendrick <rjek@...>
- Date: Mon, 27 Sep 2010 20:11:48 +0100
On Mon, Sep 27, 2010 at 01:01:36PM -0600, Tim Mensch wrote:
> >Conversely, the number of people who turn up on #lua because they can't
> >get some automatic binding tool or C++ wrapper to do what they want is
> >astonishing. Especially when doing it using the C API is often a 5-line
> >job, most of which is boilerplate.
> Not anywhere near five lines if you're doing anything complex;
My argument is to not do that, then :)
> just exposing one function? Sure. No point in adding complexity. For
> functions where I need variable parameters or similar, I still use
> the C interface. But if you're exposing nearly a hundred class
> member functions with varying parameters to Lua (e.g., Playground
> SDK)? I'd recommend a wrapper every time.
Again, I'd suggest that a class with hundreds of member functions might
require... reworking. Additionally, such verbatim bindings often result
in disappointing experiences when used from inside Lua, which is why I
always implement a wafer-thin binding, and then make everything look
lovely from Lua.
> AND...the wrappers available leave some usability (or performance)
> to be desired. On this we can agree. :( In this particular case, the
> LuaPlus Call Dispatcher (which can be used without using LuaPlus,
> btw) is one of the easier to understand -- its interface looks very
> much like the standard Lua C interface, only it can takes class
> member functions and a "this" pointer instead of only global C
Only global C functions? I'm not sure what you mean by this. Lua's C
API certainly doesn't limit you to binding C functions with global
names. You can even bind functions with no name at all, assuming their
expect and return the right things.