The last couple of years or so has witnessed the emergence of newer platforms for implementing Data Science projects. But the developers at Mozilla feel that these platforms couldn’t funnel in the potential of modern day browsers.
To increase the ease of use and the way Data Analysis is done and communicated across the data science community, Mozilla launched a browser based platform Iodide for data science experiments.
Iodide is a tool for data science experimentation and communication based on state-of-the-art web technologies. Notably, it’s designed to perform data science computation within the browser rather than on a remote kernel.
Iodide allows the users to do data science entirely in the browser.
Iodide is designed to make Web-based scientific communication and computation more accessible to scientists by bringing them a low friction iterative workflow in a familiar environment influenced by tools such as Jupyter, R-Studio, and the MATLAB IDE.
The Objective Behind Iodide
The data science team at Mozilla wanted to answer questions and not to create new software. They wanted to eliminate the hassles a data scientist comes across while skimming through the report of other data scientists. For instance, tracking code behind the report or if they want to extend the code based on which the results have been documented requires identical configuration on the machines. To begin with, the team at Mozilla lists down few objectives behind Iodide:
- To make the advantages of web tech available to scientists without requiring them to become fully fledged web devs.
- Users should be able to get up and running immediately and be able to start doing real work entirely within the browser.
- Allowing the notebook to work with other clients and/or server-side programs/components/tools (e.g. external editors, external compute kernels (other languages or big data thingies)) might be something cool to work on down the road, but is not an objective at the moment.
- Addons to do things that the browser restricts or can’t do for some reason.
- Avoid magic APIs — users should (within reason) not have to learn about a ton of idiosyncrasies of the notebook to get up and running.
- Users need to be able to pull examples from bl.ocks.org or JSfiddle or Stackoverflow and have them run in the notebook without modification (within reason).
Going Mainstream With Pyodide
Pyodide is an experimental project from Mozilla to create a full Python data science stack that runs entirely in the browser.
Requirements to download Pyodide to browser:
- The compiled Python interpreter as WebAssembly.
- A packaged file system containing all the files the Python interpreter will need, most notably the Python standard library.
Pyodide fetches the NumPy library (and all of its dependencies) and loads them into the browser. Again, these files only need to be downloaded once, and are stored in the browser’s cache from then on.
One of the advantages of doing the data science computation in the browser rather than in a remote kernel, as Jupyter does, is that interactive visualizations don’t have to communicate over a network to reprocess and redisplay their data. This greatly reduces the latency — the round trip time it takes from the time the user moves their mouse to the time an updated plot is displayed to the screen.
So Iodide basically,
- simplifies a number of the elements of workflow friction
- simplifies sharing as the write-up and the code are available at the same URL rather than, say, pasting a link to a script in the footnotes of a Google Doc.
- simplifies collaboration as the compute kernel is the browser and libraries can be loaded via an HTTP request like any webpage loads script — no additional languages, libraries, or tools need to be installed.
“Once you’re ready, you can send a link directly to your finalised 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. If they want to experiment with the code and use it as the basis of their own work, with one more click they can fork it and start working on their own version,” explained one of the developers in their blog on Iodide.
However, there’s still lots to do to turn this experimental proof-of-concept into a professional tool for everyday data science work.
Know more about Iodide here