I found this[1] section in the documentation on interoperability within the JVM. It looks fairly straightforward to work with. I'm not sure about FFI more generally.
Enforcing and incentivizing collaboration also seems like a good argument for licensing open source projects with the AGPL. It prevents people who are not willing to contribute things made using your software back to open source from using it.
C can compile to WASM, but I have no clue about external tools like BLAS. I'd assume that things like Numpy are able to work without tools like BLAS, but you might also be able to compile the essential ones to WASM as well.
I came back to it recently after a year and a half long break and it has improved dramatically. It's starting to feel like something I'd be comfortable using in production.
That's the macros. Phoenix's routing is an awesome example of the power of Elixir macros. It leverages the BEAMs pattern matching capabilities to do the routing, but the syntax is very clear and concise.
Knoxville is a Comcast test market, so we get data caps. You can buy a faster connection, it just means you hit the cap faster. Just a heads up on what Comcast is planning on doing to you next...
Elixir has Lisp-style macros with a Ruby syntax. It's not quite as close to the AST as a Lisp, but I think the trade off hits a sweet spot. For example:
quote do
1 + 1
end
returns:
{:+, [context: Elixir, import: Kernel], [1, 1]}
which, if you squint at it, starts to look a little Lispy.
[1] https://doc.flix.dev/interoperability/