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)