Is it possible to use different programming languages within a single Pluto.jl notebook?

I recently discovered Pluto and I prefer working with it over Jupyter notebooks if I am only using julia. However, sometimes I have to use Python as well for some of the packages. The SOS polyglot notebook is an extension of jupyter notebooks which allows just that, different cells can execute commands written in multiple languages which I have found to be extremely productive because I can choose the right tool for the job without context switching.

Is it something that is possible with Pluto notebooks or on the roadmap?

It isn’t. The key feature of Pluto (dependency resolution) relies on the way Julia allows for easy introspection.


You can of course use python and R through PyCall (or PythonCall) and RCall, although sometimes care needs to be taken to ensure they don’t break reactivity. I specifically recall RCall macros not working some time ago, but it think this has since been fixed.

1 Like

Pluto should be able to use the extensive language interoperability of Julia (altough this does not always work smoothly as @nilshg said). With some work it is also possible to make other language reactive by performing a syntactic analysis (see the Reactive Python notebook from Fons and a demo here). The biggest issue then becomes to find libraries where the reactive programming paradigm applies (no mutations allowed) and python may not be the best language for this.

1 Like