Suppose you want a new feature which requires a lower-level language to get the performance it needs. Or maybe your code is already low-level, but a new feature could be built much faster in a higher-level language without a noticeable performance hit. Or maybe you want to migrate incrementally from one language to another.
Whatever the motivation, calling functions across languages while staying within the same process is commonly overlooked in favor of more familiar techniques like spinning up a separate server for the other language to use, or at least another process. These can not only introduce performance problems, but also an infrastructure maintenance burden that can be avoided with direct calls.
This talk explores the technique of directly calling functions across languages by looking at how it works in several different languages, the tradeoffs compared to other techniques like separate servers and processes, and when and why you might want to use it.
Come see how calling functions across languages could benefit your project!