Iodide - A New Tool For Scientific Communication And Exploration
Written by Kay Ewbank   
Thursday, 14 March 2019

A new experimental tool designed to help scientists prepare interactive documents using web technologies has been released in an alpha version. Iodide is designed to encourage 'communicative workflows' by bundling the editing tool as part of the document.

The new tool has been developed by researchers at Mozilla, and the developers say Iodide takes a different approach to IDE-style environments that output presentational documents such as .pdf files because the output is then divorced from the original code. It is also different from cell-based notebooks which mix code and presentation elements. In Iodide, you can get both a document that looks however you want it to look, and easy access to the underlying code and editing environment.


The target audience for the tool is data scientists who need to communicate their findings and to answer questions using some kind of report — a document, some plots, or perhaps an interactive data visualization. Currently the data scientists at Mozilla use tools such as Jupyter or R-Studio, but say they can't usually hand off a Jupyter notebook or an R script to a decision-maker, so end up doing things like copying key figures and summary statistics to a Google Doc. This means that if the recipient wants to look at the code behind the report, it's not there, meaning they can't experiment with and extend the code.

Iodide aims to overcome this problem by having a “report” that is basically a web page that you can fill in with your content, and some tools for iteratively exploring data and modifying your report to create something you’re ready to share. Once you’re ready, you can send a link directly to your finalized report. If your colleagues and collaborators want to review your code and learn from it, they can drop back to an exploration mode in one click.

iodide in use

It has explore and report views that you can move between, The Explore view has a set of panes including an editor for writing code, a console for viewing the output from code you evaluate, a workspace viewer for examining the variables you’ve created during your session, and a “report preview” pane in which you can see a preview of your report.

Iodide documents live in the browser, which means the computation engine is always available. Whenever you share your work, you share a live interactive report with running code. To support collaborative workflows, the developers have built a simple server for saving and sharing notebooks.

The browser also comes with Pyodide, a Python science stack that includes Python, Numpy, Pandas, and Matplotlib, along with Scipy, scikit-learn, and other Python libraries. The developers say that running the Python interpreter inside a Javascript virtual machine adds a performance penalty, but that penalty turns out to be surprisingly small — in benchmarks, around 1x-12x slower than native on Firefox and 1x-16x slower on Chrome.

Iodide also supports JSMD (JavaScript MarkDown). The implementation of this idea parallels R Markdown and MATLAB’s “cell mode”: rather than using an explicitly cell-based interface, the content of an Iodide notebook is just a text document that uses a special syntax to delimit specific types of cells.

The developers stress that Iodide is still very much in an alpha state, but have gone for a very early soft launch in the hopes of getting feedback from a larger community. There's a demo for trying the tool so you can give feedback.




More Information

Iodide Alpha Version To Try

Demo Of Iodide Working

Related Articles

Jupyter Notebook 5 Adds Cell Tagging

Jupyter 4 Completed By Release Of IPython 4 

RStudio Reticulated Python

RStudio Adds Object Explorer

RStudio Improves Connections

RStudio Adds SparklyR Support

IPython 5.0-LTS Released

To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on, Twitter, Facebook or Linkedin.


What Languages Do Devs Want to Learn?

Python, of course. What comes as a surprise is the size of the margin between Python and the rest of the pack. The other unexpected finding is that JavaScript doesn't even make it into the top 10. So, [ ... ]

Node.js 15 Improves Rejection Handling

Node.js, the JavaScript runtime, has been updated with support for npm 7, better handling of rejections, and an experimental abort controller.

More News





or email your comment to: