Talk

Mixing programming languages

  • In English

MetaCall Core is a Polyglot Runtime, which mixes multiple technologies and runtime environments like NodeJS, V8, TypeScript, CPython, CRuby, NetCore, and more (coming soon) like LLVM, WebAssembly, Java… But in this talk, we will be focusing on NodeJS side (which has first-class support), from the end-user point of view to the internals of the runtime and how this one interacts with others (including low-level details of the NodeJS threading model and N-API).

We know that exists friction between developers of different programming languages, which includes:

  • learning a new language or porting a library is costly, error-prone, and involves duplicated code that is hard to maintain;
  • some libraries are provided in other languages (like C/C++) and for using them from your language (JavaScript / NodeJS) you have to use wrappers or WebAssembly;
  • building microservices-oriented architectures, to support the networking between them.

This is how MetaCall solves these problems:

  • MetaCall Core allows cross-languages imports;
  • MetaCall Core adapts to your code. No extra wrappers are needed, is type-safe and generates the bindings automagically;
  • MetaCall FaaS Allows remote imports.

MetaCall Core embeds multiple runtimes at the same time in the same application and it can execute code of different languages in the same process in memory. MetaCall Core can introspect your loaded code and generate all wrappers on the current language you are using, making it feel like native code. MetaCall FaaS is able to break your code into pieces and create a distributed system that works on the cloud seamlessly without the need of touching a single line of networking.

Targeted audience: every NodeJS developer who wants to learn polyglot programming and level-up its internals knowledge.

Takeaway: NodeJS internals from Threading model to Type System. Level-Up polyglot programming for JavaScript developers.

  • #tools

Speakers

Invited experts

Talks