韦伯太空望远镜拍摄的美丽图像,背后有JavaScript参与运行

JavaScript是网页构成的三巨头,也是许多开发人员抱怨的一种编程语言,但人类史上最优秀的科学成就之一:韦伯太空望远镜,发送许多美丽照片回地球的背后推手很大程度由JavaScript技术控制。

JavaScript是一种最初用于网页的程序语言,能做出网站特效、动画等几乎所有事(也不是所有事,但只要短短几行JavaScript程序代码就能实现许多网页多媒体互动),以网页组成来说,Html是骨头,决定网页的轮廓与体型;CSS是皮肤、外表,决定网页呈现的面貌;

JavaScript则是肌肉,决定网页如何运行。

现在,我们还知道了JavaScript是詹姆斯‧韦伯太空望远镜(JWST)生成漂亮照片的幕后推手。

ISIM(Integrated Science Instrument Module)模块是韦伯望远镜相机仪器的集合体,NASA将之称为“詹姆斯韦伯太空望远镜的心脏”,然而它却采用了陈旧的JavaScript编程语言控制工作过程。

简单来说,JWST有一堆用于执行特定任务时预先编写的脚本,地面控制中心团队可以指示望远镜何时运行这些任务,并经由脚本控制器(Script Processor,SP)翻译JavaScript代码,并联系其他执行命令所需的系统。ISIM模块软件由SP控制,在收到命令后便能运行用JavaScript编写的脚本。

或者说,JavaScript不是太空望远镜的核心操作系统,更像是一名接受上头指令、然后将内容委托给旗下团队的经理。

此外,JWST的飞行软件虽然用C++ 编写,但具体操作脚本也是用自定义JavaScript编写,即飞行软件用来操作探测器与科学仪器,而JavaScript脚本用于执行所有特定操作和遥测请求。

根据太空望远镜科学研究所科学家Ilana Dashevsky、Vicki Balzano说法,韦伯太空望远镜ISIM模块之所以由JavaScript编程语言,第一原因是脚本使用Nombas ScriptEase 5.00e编写,Nombas已停运,而该软件上次更新已是约20年前的2003年1月。

其次,JavaScript能让工程师在操作望远镜时更方便调试与更新脚本内容,如果要修改脚本,可以先当地面进行多次测试再发送给韦伯太空望远镜,比起用晦涩难懂的C++ 编写,修改JavaScript肯定更容易也更不容易出错。

(首图来源:NASA)