Tech, 天文
控制詹姆斯·韦布太空望远镜所有动作的程序,是JavaScript脚本
詹姆斯·韦布太空望远镜可说是人类最杰出的科技成就之一。容易理解,NASA托管它们的网站使用了JavaScript。不容易理解的是,望远镜本身,很大程度上也是由 JavaScript 脚本控制的。哦,它基于 2002 年的开发包。
根据 JWST 的集成科学仪器模块(ISIM)的手册(PDF),ISIM 的软件由“脚本处理器任务 (SP) 控制,在收到命令后运行用 JavaScript 编写的脚本。 ”负责将这些 JavaScript脚本转化为动作的实际代码可以同时开10个进程。
由太空望远镜科学研究中心的Ilana Dashevsky 和 Vicki Balzano 撰写的手稿和论文 (pdf) 《JWST:最大化效率和最小化地面系统》非常详细地描述了这一流程。JWST有一堆为执行特定任务预先编写的脚本,地面上的科学家可以告诉它运行哪些任务脚本。JavaScript语句将由一个被称为脚本处理器的程序来解释,然后程序将根据脚本的要求访问其他应用程序和系统。当然,JWST 没有运行JavaScript的 Web浏览器——它更像是给经理一个任务列表,让他委派给团队。
JavaScript只是拼图的一部分,尽管如此,JavaScript仍然非常重要——ISIM实际上是帮望远镜拍摄照片的仪器的内部命令集合,脚本控制着这个过程。美国宇航局称其为“詹姆斯韦伯太空望远镜的心脏”。
那么,它使用如此古老的技术似乎有点奇怪。根据 Dashevsky 和 Balzano 的说法,编写脚本的语言被称为 Nombas ScriptEase 5.00e。根据 Nombas(现已不复存在)的网站,ScriptEase 5.00e 的最新更新于 2003 年 1 月发布——是的,差不多二十年前。当控制 JWST 的一些最重要仪器的软件问世时,读到本文的很多人或许刚刚满月。
不过,稍微思考一下,就能明白其中的合理性——虽然 JWST 于 2021 年底推出,但太空望远镜项目于1989年立项。在2004年开始实际建造望远镜时,ScriptEase 5 还是2002年才问世的开发包。考虑到航天器通常采用久经考验的技术而不是最新最好的技术,这实际上并不是特别古老。由于像 JWST 这样的项目需要很长的时间启动,所以当发布日临近时,必须尽早确定的东西可能会显得过时。
值得注意的是,与项目本身一样,这些描述 JWST 的 JavaScript 系统的文档已经很老了;根据 ResearchGate 的说法,Dashevsky 和 Balzano 写的那本书没有注明日期,但出版于2006年,而 ISIM 手册是2011年的。从那时起,NASA 确实有机会替换脚本系统,但那可是一项相当大的工程。
顺便说一句,手册里还包含有关望远镜的68 GB SSD硬盘的更多详细信息,称它可以容纳 58.8 到 65 GB 的实际科学数据。等等,我是不是忘了提这个?是的,这台望远镜的固态驱动器的容量与2008年 MacBook Air 中可用的容量大致相同。
无论如何,我们不是在这里谈论JWST的存储。至于为什么选择了Javascript?使用网页脚本语言有什么意义——为什么不用更传统的C++或Java?
好吧,美国宇航局的文件说,这种方式让“操作人员对望远镜操作有更大的可见性、控制力和灵活性”,让他们“在了解操作仪器的后果和微妙之处时”可轻松更改脚本。基本上,NASA 正在处理一堆以某种人类可读格式编写的文件——如果他们需要进行更改,他们可以打开一个文本编辑器,在地面上进行一堆测试,然后发送更新的文件到 JWST。如果每个程序都是用晦涩难懂的代码编写的,如果你想进行更改就必须重新编译,这肯定更不容易。
如果您仍然担心,请注意太空望远镜科学研究中心的文件提到脚本处理器本身是用 C++ 编写的,显然有效,对吧?韦布传回图片令人难以置信,然而,现在您又听说了一个有趣的幕后花絮——下次当你诅咒现代网络如此缓慢并希望有人将 JavaScript送出地球时,记住,NASA 已经这么做了。
https://www.theverge.com/2022/8/18/23206110/james-webb-space-telescope-javascript-jwst-instrument-control