Mozilla釋出能夠幫助科學家使用網頁技術,撰寫互動式文件的工具Iodide,不只可以為非技術讀者輸出最終報告文件,資料科學家也可以深入探索原始碼。Iodide不僅是程式開發環境,也一併把文書編輯工具綁來,以減少溝通性工作流程的摩擦,受邀查看報告的使用者,不只能夠獲得一個精美的報告,還能隨時深入底層,存取程式碼和編輯環境。

Mozilla提到,資料科學的工作通常涉及大量的程式開發工作,但是與一般軟體開發工作不同,資料科學家目標是要回答問題,而不是產出軟體,而回答問題的方式通常使用文件或是圖表的報告形式,或是互動式資料視覺化。Mozilla表示,當資料科學家在分享結果的時候,不會交出Jupyter筆記本或R腳本,而是會將資料和統計摘要轉換成文件。

而研究顯示,當資料科學家在閱讀其他人的報告,且希望查看報告背後的程式碼時,通常會遇到很多障礙,包括執行環境沒有相同的配置等。Mozilla表示,不少互動式資料視覺化工具,像是Python、R和Julia等程式語言都有優秀的函式庫可將資料視覺化,但是要在網頁上呈現,勢必要使用Javascript,而這些工具的互相轉換並不容易。

因此Mozilla打造了Iodide,將最終輸出文件與編寫文件的工具綁在一起,幫助資料科學家快速迭代網頁文件。Iodide提供使用者報告(Report)功能,這是一個可以填寫內容的網頁,並提供使用者迭代探索資料和修改報告的工具,當使用者編輯完成後,便能以連結的方式,邀請其他人查看報告,甚至深入程式碼中的細節,需要的話,還能創建一個分岔處理新版本。

Mozilla提到,由於Iodide目的是要強化探索、解釋和協作之間的循環,因此使用者會在撰寫文件以及迭代計算中來回操作,Iodide提供探索以及報告視圖功能,以支援相關的操作。探索視圖提供了一系列窗格,包括供使用者撰寫程式碼的編輯器;可查看程式碼輸出的控制臺;檢查變數的工作區域瀏覽器,以及可以預覽報告的預覽窗格。

另外,在Iodide中還能執行Python,透過編譯Python科學堆疊成為WebAssembly應用程式,就能在瀏覽器中執行Python程式。現在Mozilla已經在Iodide中支援了Numpy、Pandas和Matplotlib等熱門函式庫,另外資料科學家很常用的Scipy和scikit-learn也有支援,Mozilla提到,雖然在Javascript虛擬機器中執行Python直譯器會有效能損耗,但是影響很小,在Firefox上比原生慢1x-12x,Chrome則慢1x-16x。

Iodide還提供類似R Markdown和MATLAB的單元模式(Cell Mode)的功能,稱之為JSMD,在Iodide中,使用者可以根據需要,交錯寫入程式碼,把程式碼分成區塊,個別執行每個區塊的程式碼或是進行修改。

目前Iodide仍在Alpha測試中,Mozilla建置了公共伺服器iodide.io來保存和共享筆記,當然使用者也可以設置私有的Iodide伺服器,或是將筆記輸出搬遷至其他伺服器。


Advertisement

更多 iThome相關內容