Menü
Developer

Data Science: Mozilla bringt ein webbasiertes Tool zur Datenanalyse

Iodide ermöglicht das Erstellen interaktiver Datendiagramme mit JavaScript, CSS und HTML sowie Python.

vorlesen Drucken Kommentare lesen
Data Science: Mozilla bringt ein interaktives Tool im Browser

Mozilla hat mit Iodide ein Projekt in die Welt gesetzt, das sich vor allem an Data Scientists richtet. Sie können mit dem webbasierten Tool interaktive Diagramme erstellen und dabei ähnlich wie in Jupyter Notebooks arbeiten. Iodide soll vor allem die Brücke zwischen typischen Data-Science-Werkzeugen wie R-Studio oder eben Jupyter und der Darstellung im Web schlagen.

Laut den Machern war die fehlende Schnittstelle zwischen der Datenexploration und der Präsentation der Ergebnisse die Motivation für das Projekt. Auch bei Mozilla stehen demnach Jupyter Notebooks oder R-Skripte an erster Stelle beim Erforschen, aber die Übergabe an Entscheider erfolgt typischerweise in Google Docs in Form statischer Grafiken und zusammengefasster Statistiken.

Dass kein Jupyter-ähnliches Tool zum Erstellen interaktiver Webdokumente existiert, liegt laut der Einschätzung der Iodide-Macher unter anderem daran, dass JavaScript nicht den besten Ruf unter Data Scientists habe. Außerdem mangele es im Vergleich zu R, Julia oder Python an wissenschaftlichen Libraries, die im Browser und/oder mit JavaScript zusammen arbeiten. Schließlich gibt es kaum Werkzeuge, die eine schnelle Iteration ermöglichen und gleichzeitig die vollen Möglichkeiten der Webtechniken im Browser ausnutzen.

Das Beispiel-Notebook bietet einfachen JavaScript- und Python-Aufrufe.

Analog zur Arbeit mit Jupyter heißen die Arbeitsbereiche im Werkzeug Iodide Notebooks. Standardmäßig findet sich auf der linken Seite der Code und rechts eine Vorschau des Reports. Ein einfaches Beispiel-Notebook enthält bereits Elemente in Markdown, CSS, JavaScript, Python und dem Zugriff auf eine CSV-Datei über eine JavaScript-Bibliothek. Eine Konsole unter der Vorschau zeigt Erfolgs- beziehungsweise Fehlermeldungen und gibt Einblick in die jeweils verwendeten Elemente.

Änderungen an visuellen Elementen sind sofort sichtbar, Berechnungen lassen sich durch das Starten des kompletten Notebooks oder das Ausführen einzelner Codeblöcke durchführen. Der Klick auf den Report-Button zeigt den Report im kompletten Browserfenster an. Dort wechselt der Klick auf Explore wieder in die Notebook-Ansicht mit Code.

Data Scientists können ihre Notebooks auf dem Mozilla-Server speichern und müssen sich dafür mit ihrem GitHub-Account einloggen. Links zu Notebooks lassen sich sowohl in der Report- als auch der Codeansicht (Explore) weitergeben. Neben dem öffentlichen Iodide.io-Server lassen sich auch private Server beispielsweise innerhalb der Firmen-Firewall aufsetzen. Der Code läuft vollständig auf dem Client, also typischerweise dem Browserfenster.

Damit Data Scientists ihren Code nicht nach JavaScript portieren müssen, hat Mozilla mit Pyodide einen Python-Science-Stack für den Browser aufgesetzt, der die verbreiteten Python-Bibliotheken Numpy, Pandas und Matplotlib verwenden kann. Außerdem bietet er Zugriff auf Scipy und scikit-learn. Die Umsetzung weiterer Libraries ist in Arbeit beziehungsweise Planung.

Python-Entwickler können auf gewohnte Bibliotheken wie Matplotlib zugreifen.

(Bild: Mozilla)

Die Performance in der Virtual Machine von JavaScript bleibt freilich hinter der nativen Implementierung zurück und ist laut den Angaben der Iodide-Entwickler in Firefox bis zu zwölfmal langsamer und in Chrome bis zu sechzehnmal, was aber für die interaktive Exploration der Daten nach wie vor ausreichend performant sein soll.

Derzeit hat das Projekt Alpha-Status. Neben Performanceverbesserungen und Bugfixes stehen bereits einige Punkte auf der To-do-Liste der Entwickler, die sich vor allem auf das gemeinsame Bearbeiten von Notebooks beziehen. So sollen künftig Kommentare und das gleichzeitige Bearbeiten analog zu Google Docs möglich sein. Außerdem sollen Entwickler und Data Scientists Änderungen über einen Mechanismus einbringen können, der an Pull Requests angelehnt ist.

Auch die Anbindung externer Texteditoren soll mittelfristig möglich sein. Langfristig suchen die Iodide-Macher zudem noch Entwickler, die dabei helfen R und Julia auf Iodide zu bringen, was wohl laut der aktuellen Einschätzung komplexer sein dürfte als die Pyodide-Implementierung.

Weitere Details lassen sich dem Beitrag auf Mozilla Hacks entnehmen, der auch Links zu einigen komplexeren Beispielen enthält. (rme)