Building Polyglot Python applications using MetaCall Core

Harsh Bardhan Mishra (~HarshCasper)


Description:

MetaCall Core is an open-source polyglot runtime library that allows developers to mix code from different programming languages amongst each other. It allows the users to embed multiple runtimes into the same application and execute code from the same memory process. MetaCall Core currently supports C/C++, Python, JavaScript, C#, Ruby and more and is intended to simplify the processes for developers who are looking to collaborate across multiple programming languages.

But how exactly is a polyglot runtime beneficial for an industrial use case?

  • With a Polyglot runtime like MetaCall Core, you can use cross-language imports. It means that we can use a Python function inside a Node script without sacrificing any performance.
  • We can migrate a lot of legacy code through MetaCall Core and make sure it is performant without sacrificing any portability. We can thus migrate in a purposeful way rather than going through painful refactoring.
  • With a Command Line Interface (CLI) and a REPL, we get access to an easy tool that can help us integrate and debug our polyglot applications. This in turn enhances developer productivity.

In this talk, I will be sharing a high-level overview of how MetaCall Core works internally and how we can use it to develop polyglot applications. I will be demonstrating a Machine Learning-based News Scrapper where we use Python and Node together to build a Polyglot application.

The outline for this talk is as follows:

  • Introduction to Polyglot Development [3 minutes]
  • Getting started with MetaCall Core [5 minutes]
  • Understanding the underneath of Core [7 minutes]
  • Walking through a Polyglot Machine Learning App [5 minutes]
  • Q&A [5 minutes]

At the end of the talk, the viewers would be able to get a start with the MetaCall Core library and how they can leverage it for building polyglot applications. We will also have a holistic understanding of how MetaCall works internally with the Python API that extends its usage with other languages and frameworks. We will also understand other alternatives, like GraalVM and take a look at benchmarks through our example.

Prerequisites:

The Prerequisites for this talk aren’t hard and fast. The Code demonstration would be done on Visual Studio Code. The viewers should have an understanding of the following:

  • Basic Python
  • Basic JavaScript (NodeJS)

MetaCall Core features a handy Shell Script that can be used to set up the Command Line interface in a handy way. Viewers can use either BASH or PowerShell to set up the same which would be instructed during the session.

Video URL:

https://youtu.be/ojaJQjWEblI

Content URLs:

  • GitHub Repository: The repository consists of the code which I will be walking through during the session. A benchmark against GraalVM would be also demonstrated using the same.
  • Blog: The following blog consists of the starter information about MetaCall Core. The viewers can go through the same. However, it is entirely optional and is expected to just give an overview of MetaCall Core.
  • Slides: The following slides roughly demonstrate the flow of the talk and what are the major parts conveyed during the talk.

Speaker Info:

Harsh Bardhan Mishra is a Google Summer of Code 2021 Student at MetaCall. He is a Junior Year Student at Sathyabama Institute of Science and Technology and is currently undertaking a Bachelors in Computer Science and Engineering. He holds more than 2 years of experience building Web Applications using Python and JavaScript, with a core interest in DevOps & Cloud development. In the past, he has worked at Qxf2 as a Software Engineer Intern, Explorer Fellow at Major League Hacking and a Summer Intern at Scholify. He writes blogs with his experience working with libraries and frameworks. Through PyCon '21 he is looking forward to sharing his experiences and understanding of working with MetaCall Core as an Open-Source contributor.

Section: Developer tools and automation
Type: Talks
Target Audience: Beginner
Last Updated: