写点什么

JavaScript 进入太空,真正成为“火箭科学”

  • 2020-07-16
  • 本文字数:1655 字

    阅读完需:约 5 分钟

JavaScript进入太空,真正成为“火箭科学”

SpaceX 公司发射的“龙飞船”(Dragon)2 号将 JavaScript 技术带入了太空。飞船系统的用户界面采用了 Chromium 和 JavaScript,所以很大一部分依赖了 Web 技术。


Twitter 上的相关讨论以及与 SpaceX 软件团队成员进行的 Reddit AMA 会话出现了一些非常幽默的内容,比如“node_modules 真的是太空中最重的模块吗”,但不管怎样,JavaScript 确实在为 SpaceX 龙飞船上的触摸 UI 提供支持。


正如美国宇航局(NASA)宇航员 Christina Koch 在最近的OpenJS世界大会上所说的那样,SpaceX 拥有非常现代的显示器。“龙飞船”是第一艘搭载触摸屏的航天器。“龙飞船”上的宇航员穿着带有特殊手套的宇航服,以便能够在极其恶劣的环境下使用触摸屏。他们使用几个按钮来执行非常关键的任务和访问冗余系统。


Koch 说,在空间站里,团队通过平板电脑使用 Web 应用程序,这些平板电脑连接的是与空间站其他系统相独立的网络。他们使用基于 Web 的调度软件和程序,并定期通过网站(如 YouTube)完成专业和娱乐方面的事情。


https://youtu.be/j2-mrQDJ_Sk


NASA 目前正在研发猎户座(Orion)飞船,用于登月和执行火星任务。最初,NASA 通过一个快速原型实验室为航天员设计界面,关注的是用户驱动型的需求,而非自上而下型的需求。虽然“猎户座”目前还没有使用触摸功能,但他们计划提供一些可编程按钮和程序,以便获得高效的飞行体验。


在龙飞船上,界面使用了大量 Web 组件和自定义响应式框架。SpaceX 公司软件工程师 Sofian Hnaide 在 Reddit AMA 上解释说:


在关键任务环境中使用 Chromium 和 JavaScript 是一个普遍的问题。我们必须明白,在这些情况下,Chromium 只是作为一个 UI 渲染引擎。带有显示和容错功能的飞行软件的交互层定义良好,并位于显示边界之外。 就是说,无论采用怎样的技术栈,我们都遵循相同的开发流程。 我们对开发人员进行交叉培训,使用 C++编写代码,并怀着相同的心态开发出可靠的软件。我们非常重视可靠性和性能,就像其他飞行软件一样,我们在不同条件下进行测试,以便了解所有可能出现的故障模式。我们有警报系统和处理程序,在出现故障时可采取相应的行动。

虽然我们一路上遇到了很多挑战,但我们对自己的表现非常满意。最重要的是,我们的两个客户(到目前为止)也感到非常满意。飞船的地表软件已经在使用这些显示技术栈,用不了多久,我们就会开始为飞船设计人机界面。


SpaceX 龙飞船软件团队经理 Wendy Shimata 补充说:


你可能从某些图像中注意到了,显示屏下方仍然有一些硬件按钮。这是为了确保在显示器出现故障无法使用时,宇航员仍然可以使用硬件按钮来启动关键任务,例如响应机舱火灾。


为了保证软件的可靠性,团队采用了很多方法进行测试。在 SpaceX 团队负责 Demo-2 的 John Dietrick 解释说:


我们进行所有能够想到的测试!单元测试、容器化集成测试(借助物理模拟在本地机器上执行这些测试)以及在真实硬件上进行的完整“HITL”(硬件环路)测试(完全仿真)。使用模拟器来测试软件是我们拥有的最强大的工具,尤其是在真实硬件上运行的时候。我们将硬件放在实验室的桌子上,然后模拟整个任务过程,甚至是一些故障。在飞船上这么做非常容易。为了深入研究,我们通过通信通道和网络快速地从飞船上获取大量数据。


这个项目最初是一个模拟器原型,为了向 NASA 展示设计愿景。然后,团队对其进行了修改并在硬件上运行,取得了一些进展。在开发原型时,SpaceX 团队对基于 Web 的方法有了更强的信心。正如 Hnaide 解释的那样:


我们喜欢浏览器附带的所有现代化功能,也喜欢那些已经受过相关技术栈训练的人才。我们并不担心在这里做一些不一样的事情会影响我们。我们喜欢采用“第一原则”方法来解决问题,而不是只遵循行业标准。


在一篇很长的推文中,JavaScript 作者和 Brave 首席执行官 Brendan Eich 对此进行了幽默的评论,并就如何利用 TypeScript、Flow 或 Hegel 的类型安全性来确保 TypeScript 在太空中的安全使用做出了严肃的回应。


很显然,JavaScript 现在实际上已经成了一门“火箭科学”。


原文链接


JavaScript Reaches the Final Frontier: Space


2020-07-16 08:002775

评论

发布
暂无评论
发现更多内容

Bean生命周期的扩展点:Bean Post Processor

华为云开发者联盟

后端 开发 华为云 华为云开发者联盟 企业号 6 月 PK 榜

龙蜥白皮书精选:面向芯片研发和验证的操作系统 SiliconFastOS

OpenAnolis小助手

开源 操作系统 芯片 龙蜥社区 SiliconFastOS

国内高校最大的云上科研智算平台在复旦大学正式上线

新云力量

智能 计算 复旦大学 云上科研智算平台

免费沉浸式Twitter翻译工具 ZipZapAI用AI打破语言障碍

Ricky

ChatGPT GPT-4 ChatGPT4 chatgpt插件

体验超凡速度的美国独立IP虚拟主机服务!

一只扑棱蛾子

美国主机 美国独立IP虚拟主机 美国虚拟主机

华秋一文带你读懂eMMC芯片引脚定义和工作原理

华秋电子

《2023 信创软件品牌影响力报告》发布!融云入选「信创生态」代表厂商

融云 RongCloud

IT 品牌 信创 数字 融云

软件测试 | 性能测试范围

测吧(北京)科技有限公司

测试

一个斜杠引发的CDN资源回源请求量飙升

互联网工科生

CDN

云原生时代,如何通过极狐GitLab x KubeSphere 构建安全应用?

极狐GitLab

DevOps 云原生 DevSecOps KubeSphere 安全左移

什么是Buck电源?矽力杰SQ51201值得关注

华秋电子

浮点数-Float-Double转二进制在线工具

入门小站

英特尔以领先产品,为AI领域客户提供高性能和高性价比

E科讯

支撑 “千万设备日活” 的创米数联 7 年微服务架构演进之路

阿里巴巴云原生

阿里云 微服务 云原生

云原生应用交付平台 Orbit 主要功能与核心能力

CODING DevOps

Orbit gitops 应用管理

11个开源项目,5位技术大咖…华为云亮相2023开放原子全球开源峰会

华为云开发者联盟

开源 后端 华为云 华为云开发者联盟 企业号 6 月 PK 榜

需要转变ITSM策略的12个信号,您中了几个?

龙智—DevSecOps解决方案

金融科技领先者Broadridge选择CloudBees CI来加速软件交付

龙智—DevSecOps解决方案

ci 持续集成

扫码登录认证技术原理介绍及实践

互联网工科生

程序员

RocketMQ on openEuler 提供高性能消息队列的稳定性解决方案

openEuler

Linux cpu 操作系统 openEuler 内核

数据交换不失控:华为云EDS,让你的数据你做主

华为云开发者联盟

云计算 华为云 华为云开发者联盟 企业号 6 月 PK 榜

开源之夏2023中选结果公示,504名高校生将投入开源项目贡献

openEuler

Linux 开源 操作系统 openEuler 实习

故障分析 | 从慢日志问题看 MySQL 半一致性读的应用场景

爱可生开源社区

MySQL innodb 事务

如何充分利用制作游戏原型的免费资产,加速游戏开发

龙智—DevSecOps解决方案

游戏开发 游戏引擎

AIGC+灵活用工|延长行业生命线、改写传统用工模式,还得看AI的!

TE智库

人工智能 人力资源 灵活用工 AIGC 生成式AI

软件测试 | 性能工具规划

测吧(北京)科技有限公司

测试

打破孤岛运营,增强企业凝聚力

智达方通

数据孤岛 全面预算管理 企业绩效管理 信息孤岛 预算管理

软件测试 | 性能测试整体规划

测吧(北京)科技有限公司

测试

JavaScript进入太空,真正成为“火箭科学”_大前端_Dylan Schiemann_InfoQ精选文章