写点什么

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:002615

评论

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

hadoop源码编译参考

Clarke

一篇通俗易懂的Android视图系统设计与实现,精通android网络开发pdf

android 程序员 移动开发

不愧是阿里技术官,Android-Framework的精髓全写在这本“限量笔记

android 程序员 移动开发

不是吧!做了3年Android还没看过OkHttp源码?好吧,kotlin开源

android 程序员 移动开发

专科渣校,呕心沥血在家3个月“拿下”330页PDF,终于拿下阿里OFFer

android 程序员 移动开发

下次一定会成,Android面试血泪教训(九场面试的经验与得失

android 程序员 移动开发

Microchip发布2.3版TimeProvider® 4100主时钟授时和同步系统

业余时间如何开发一个App?出于好奇心QiShare带你体验一下 _ 创作者训练营第二期

android 程序员 移动开发

两年 Android 经验面经(有赞等公司),请查收

android 程序员 移动开发

一篇文章,全面总结2020最新整理-Android-大厂高频面试知识点

android 程序员 移动开发

中年危机并不可怕,可怕的是你没有做好自己的规划,斗鱼Android开发二面被刷

android 程序员 移动开发

中年程序员崩溃大哭:混不上管理层,加不动班,flutter游戏背包

android 程序员 移动开发

专科毕业,我是如何拿到字节跳动、网易双offer的,白嫖党最爱

android 程序员 移动开发

一篇看懂Android与Flutter之间的通信,最新Android开发面试解答

android 程序员 移动开发

专科 二本程序员的“黄金五年”该如何规划,kotlin协程和线程的区别

android 程序员 移动开发

专科培训班出生,四年换四次工作被朋友嘲笑面霸!最终拿下字节跳动Offer年薪57w

android 程序员 移动开发

为了KPI,对APK进行极限优化!,大厂Android研发岗面试复盘

android 程序员 移动开发

一种清晰, 便于扩展android项目架构方案,kotlin编程

android 程序员 移动开发

一文读懂深克隆与浅克隆的关系

Tom弹架构

Java 架构 设计模式

与面试官的一次促膝长谈:人家也是第一次当面试官,你们答不上来我也特别尴尬

android 程序员 移动开发

不愧是阿里技术官,Android Framework的精髓全写在这本“限量笔记

android 程序员 移动开发

一线互联网技术总监的忠告:我们精通那么多技术为何还是做不好一个项目?

android 程序员 移动开发

一键登录已成大势所趋,Android端操作指南来啦!,handler机制的原理面试

android 程序员 移动开发

三年Android开发却只有一年工作经验,是怎么收到offer的?

android 程序员 移动开发

三年开发经验,跳槽腾讯音乐,三面斩获Offer,Android入门教程

android 程序员 移动开发

不知道这些你就OUT了,2019年最常见又实用的Android开发面试题

android 程序员 移动开发

《穷爸爸富爸爸》

石云升

投资理财 11月日更

一篇文章让你彻底了解三次握手和四次挥手,轻松拿下offer

android 程序员 移动开发

一行代码解决安卓重复点击,稳进大厂

android 程序员 移动开发

一起来看看 Android 官推 kotlin-first 的图片加载库(1)

android 程序员 移动开发

一线大厂大型APP性能优化系列-自定义启动器(三),2020-2021阿里巴巴安卓面试真题解析

android 程序员 移动开发

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