Mozilla释助科学家使用网页技术 可深入探索原始码

Mozilla释出能够帮助科学家使用网页技术,撰写交互式文件的工具Iodide,不只可以为非技术读者输出最终报告文件,数据科学家也可以深入探索原始码。Iodide不仅是程序开发环境,也一并把文书编辑工具绑来,以减少沟通性工作流程的摩擦,受邀查看报告的使用者,不只能够获得一个精美的报告,还能随时深入底层,存取程序代码和编辑环境。Mozilla提到,数据科学的工作通常涉及大量的程序开发工作,但是与一般软件开发工作不同,数据科学家目标是要回答问题,而不是产出软件,而回答问题的方式通常使用文件或是图表的报告形式,或是交互式数据可视化。Mozilla表示,当数据科学家在分享结果的时候,不会交出Jupyter笔记本或R脚本,而是会将资料和统计摘要转换成文件。

Mozilla释助科学家使用网页技术 可深入探索原始码

而研究显示,当数据科学家在阅读其他人的报告,且希望查看报告背后的程序代码时,通常会遇到很多障碍,包括执行环境没有相同的配置等。Mozilla表示,不少交互式资料可视化工具,像是Python、R和Julia等程序语言都有优秀的函式库可将数据可视化,但是要在网页上呈现,势必要使用Javascript,而这些工具的互相转换并不容易。因此Mozilla打造了Iodide,将最终输出文件与编写文件的工具绑在一起,帮助数据科学家快速迭代网页文件。Iodide提供用户报告(Report)功能,这是一个可以填写内容的网页,并提供用户迭代探索数据和修改报告的工具,当使用者编辑完成后,便能以连结的方式,邀请其他人查看报告,甚至深入程序代码中的细节,需要的话,还能创建一个分岔处理新版本。

Mozilla释助科学家使用网页技术 可深入探索原始码

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服务器,或是将笔记输出搬迁至其他服务器。