Iodide: an experimental tool for scientific communication and exploration on the web, by Mozilla


#1

Mozilla has announced a new tool for scientific comunnication: Iodide
Original blog post

In the last 10 years, there has been an explosion of interest in “scientific computing” and “data science”: that is, the application of computation to answer questions and analyze data in the natural and social sciences. To address these needs, we’ve seen a renaissance in programming languages, tools, and techniques that help scientists and researchers explore and understand data and scientific concepts, and to communicate their findings. But to date, very few tools have focused on helping scientists gain unfiltered access to the full communication potential of modern web browsers. So today we’re excited to introduce Iodide, an experimental tool meant to help scientists write beautiful interactive documents using web technologies, all within an iterative workflow that will be familiar to many scientists.

What i find interesting is the direct mention of julia:

We’ve spoken to folks from the R and Julia communities about compiling those languages to WebAssembly, which would allow their use in Iodide and other browser-based projects. Our initial investigation indicates that this should be doable, but that implementing these languages might be a bit more challenging than Python. As with Python, some cool workflows open up if you can, for example, fit statistical models in R or solve differential equations in Julia, and then display your results using browser APIs. If bringing these languages to the web interests you, please reach out — in particular, we’d love help from FORTRAN and LLVM experts.

If i understand correctly, a Web Assembly port of Julia is necessary to acomplish their goal, and this would greatly help the efforts of code sharing (like this discourse post)

Any addicional information surrounding this?


#2

It would be really cool if Julia can compile to webassembly easily. I know of the Charlotte.jl effort. My understanding is that since Julia compiles to LLVM IR it’s possible to compile to Webassembly “relatively easily” except the part od Julia calls things like BLAS.

Keen to learn more.


#3

We had a prototype of Julia running in Iodide, but looks like that has bitrotted a bit and no longer works. We’ll have to get back at this at some point.


#4

:slight_smile:

But wow, that animation is pretty slick. I’d like to try it out some time!


#5

This seems very interesting thanks for sharing.

But it almost seems nearly identical to NextJournal.

Simon Danish, maybe you can leave some comments here on core differences? Would be useful for people considering both options.


#6

It’s pretty different. Iodide is 100% client side execution of code, which means it only works with Julia when we 100% figured out the WebAssembly compilation - so Iodide pretty much can’t offer Julia right now.

Of course client side execution will have the advantage, that one doesn’t need to have a server running on which to execute the Julia code! That’s why we’re also working a bit on the Julia-> wasm compilation, to also offer client side Julia execution. It’s a slow process though, which doesn’t have a huge priority right now.

Iodide also doesn’t have the whole “lets freeze all data + used software etc” in a docker container and publish it as an article with a DOI, which is 100% reproducible :wink:

edit: link to nextjournal


#7

Is a nextjournal article somehow executable locally, without installing a docker image?


#8

You can download it as markdown and execute it via weave… But without docker, you of course need to make sure to have everything installed correctly :wink:


#9

Found a plugin Julide,
supporting Level 1 only currently… Will it be promising?