Hacker News new | ask | show | jobs
by pierrec 3881 days ago
This has been partly done several times with Lua (one by myself). One problem is that JUCE is not a C framework, it relies heavily on C++ features (notably, using it means deriving lots of parent classes and interfaces). This makes language bindings a bit more tedious, especially if you want your binding to keep up with JUCE's non-stop development.

So it would take a really strong incentive for someone to create and maintain a full-featured binding to another language.

1 comments

The smart way to generate bindings nowadays would probably be to use Clang to get an AST and auto-generate the wrapper code.

But TBH I've never quite seen the point of binding scripts to C++ classes in general.. C++ is already a great way to write that code, why have a messy layer in the middle!

The place where I'd have thought it makes sense is for custom APIs, e.g. in Tracktion we let the users write javascript to control the app in response to keyboard shortcuts, but for that we have our own API that they can call. Never quite understood the use-case for more general library bindings to generic GUI classes, but I guess people have their reasons!

i kinda figured the gui stuff would be impractical, but what i was more interested in was a low friction way to play with midi / audio buffers. i haven't worked with c / c++ since college (too busy paying the bills in a managed shop), but i guess this is as good an excuse as any to get back into it. the fact it comes with its own ide / tooling is nice because learning an entirely new workflow / tool-chain is a barrier in itself.