I'm looking forward to when this exists for every almost language. Go added "c-archive" build mode in 1.5. There is no reason gobind couldn't support any language which can work with c libraries (ruby, node, etc).
This exists for Python [0]. The reverse is also interesting (Go -> Java/Python/Ruby) and once I get some spare time, I'll play around with using libjvm to load and call jar files from Go.
Its awesome. The problem is that only specific types are supported by a bunch of these types of libraries. In the case of gopy you cannot do anything with a nested slices in structs which limits things a bit.
Yes this is definitely a little limiting. I'm also experimenting with a slightly different binding method, where passing pointers to structs is disallowed (gobind currently allows pointers to structs). All structs are only passed by value, which solves a lot of the underlying problems and allows for slices and nested structs. I'll have something tangible in a few weeks and might switch out the dependency on gobind.
EDIT: edited for clarity
Thats awesome news, Thanks for the explanation!
Since GoJava generates jar binding, does it mean other JVM languages can use the jar to call Go too?
Edit:
Java has generic Go doesn't, how do the bindings work for generic?
Regarding generics: the tool generates Java bindings from Go code. Since Go doesn't have generics we just generate non-generic bindings.
Yes. The only constraint is that the jar will only work on the architecture it was built on.
Still pretty awesome and that's not really a big deal. I'm going to guess most Java these days is running on x86_64 or ARM.
Yes
Go would benefit immensely from the ability to bind to JDBC drivers for database access.