Il s’avère que JavaScript, le langage de programmation dont les développeurs Web et les utilisateurs adorent se plaindre, a contribué à fournir les superbes images que le télescope spatial James Webb a renvoyées sur Terre. Et non, je ne veux pas dire que d’une manière sarcastique, comme le fait que le site Web de la NASA les héberge sur utilise JavaScript (c’est le cas). Je veux dire que le télescope actuel, sans doute l’une des plus belles réalisations scientifiques de l’humanité, est largement contrôlé par des fichiers JavaScript. Oh, et il est basé sur un kit de développement logiciel de 2002.
Selon un manuscrit (PDF) pour le module d’instruments scientifiques intégrés (ou ISIM) du JWST, le logiciel de l’ISIM est contrôlé par “la tâche de processeur de script (SP), qui exécute des scripts écrits en JavaScript lors de la réception d’une commande pour le faire. ” Le code chargé de transformer ces JavaScripts (la formulation de la NASA, pas la mienne) en actions peut en exécuter 10 à la fois.
:no_upscale()/cdn.vox-cdn.com/uploads/chorus_asset/file/23917449/Screenshot_2022_08_02_at_08.54.53.png)
Le manuscrit et l’article (pdf) “JWST : Maximiser l’efficacité et minimiser les systèmes au sol”, écrits par Ilana Dashevsky et Vicki Balzano du Space Telescope Science Institute, décrivent ce processus en détail, mais je vais simplifier un peu pour vous épargner le pages de lecture. Le JWST a un tas de ces scripts pré-écrits pour effectuer des tâches spécifiques, et les scientifiques sur le terrain peuvent lui dire d’exécuter ces tâches. Lorsqu’ils le feront, ces JavaScripts seront interprétés par un programme appelé le processeur de script, qui contactera ensuite les autres applications et systèmes dont il a besoin en fonction de ce que le script appelle. Le JWST n’exécute pas un navigateur Web où JavaScript contrôle directement l’instrument infrarouge moyen – c’est plus comme lorsqu’un responsable reçoit une liste de tâches (dans cet exemple, les JavaScripts) à faire et les délègue à son équipe.
:no_upscale()/cdn.vox-cdn.com/uploads/chorus_asset/file/23914947/Screenshot_2022_08_01_at_08.54.37.png)
Les JavaScripts sont toujours très Important, cependant – l’ISIM est la collection d’instruments qui prennent réellement les photos à travers le télescope, et les scripts contrôlent ce processus. La NASA l’appelle “le cœur du télescope spatial James Webb”.
Il semble donc un peu étrange qu’il utilise une technologie aussi ancienne ; selon Dashevsky et Balzano, le langage dans lequel les scripts sont écrits s’appelle Nombas ScriptEase 5.00e. Selon le site Web de Nombas (aujourd’hui disparu), la dernière mise à jour de ScriptEase 5.00e a été publiée en janvier 2003 – oui, il y a près de deux décennies. Il y a des gens qui peuvent voter qui ne sont pas nés lorsque le logiciel contrôlant certains des instruments les plus vitaux du JWST est sorti.
Cette connaissance bouillonne sur Internet dans Hacker News et Twitter discussions pendant des années, mais cela a quand même surpris pas mal d’entre nous ici à Le bord une fois qu’il a effectivement cliqué. À première vue, il semble tout simplement étrange qu’un équipement scientifique aussi vital (pour ne pas dire coûteux) soit contrôlé par une version très ancienne d’une technologie qui n’est pas particulièrement connue pour sa robustesse.
Après y avoir réfléchi une seconde, cependant, l’âge du logiciel a un peu plus de sens – alors que le JWST a été lancé fin 2021, le projet est en cours depuis 1989. Lorsque la construction du télescope a commencé en 2004, ScriptEase 5 serait ‘ n’a que deux ans environ, après avoir été lancé en 2002. Ce n’est en fait pas particulièrement ancien, étant donné que les engins spatiaux sont souvent propulsés par une technologie éprouvée au lieu de la plus récente et la plus performante. En raison du temps que prennent des projets comme le JWST pour démarrer (littéralement), les choses qui devaient être verrouillées tôt peuvent sembler obsolètes selon des normes plus conventionnelles lorsque le jour du lancement arrive.
Il convient de noter que, comme le projet lui-même, ces documents qui décrivent le système JavaScript du JWST sont assez anciens ; celui écrit par Dashevsky et Balzano n’est pas daté mais est sorti en 2006, selon ResearchGate, et le manuscrit ISIM date de 2011. (Il semble qu’il y ait eu une version publiée en 2010, mais celle que j’ai lue cite des articles publiés en 2011 .) Il est toujours possible que la NASA ait pu modifier le système de script depuis lors, mais cela semble être une entreprise assez importante qui aurait été mentionnée quelque part. De plus, même si la NASA n’a pas répondu à Le bord demande de commentaires, cette page de documentation JWST publiée en 2017 mentionne des «opérations scientifiques axées sur les événements», ce qui correspond à peu près exactement à la façon dont les documents décrivent le système basé sur JavaScript.
Soit dit en passant, cette base de connaissances contient également quelques détails supplémentaires sur le SSD de 68 Go du télescope, indiquant qu’il peut contenir entre 58,8 et 65 gigaoctets de données scientifiques réelles. Attends, ai-je oublié de le mentionner ? Oui, le disque SSD de ce télescope a à peu près la même capacité que celui qui était disponible dans le MacBook Air 2008 d’origine.
De toute façon, nous ne sommes pas ici pour parler du stockage du JWST. J’ai l’impression que la grande question à ce stade est pourquoi Javascript? Bien sûr, il y a probablement un peu plus d’angoisse à propos du langage maintenant qu’il n’y en avait à l’époque où les ingénieurs du projet sélectionnaient la technologie pour le projet, mais la NASA est célèbre parmi certains programmeurs pour ses directives de programmation strictes – quel est l’intérêt d’aller avec le web- comme des scripts au lieu d’un code plus traditionnel ?
Eh bien, le document de la NASA indique que cette façon de faire donne “au personnel d’exploitation une plus grande visibilité, un meilleur contrôle et une plus grande flexibilité sur les opérations du télescope”, leur permettant de modifier facilement les scripts “alors qu’ils apprennent les ramifications et les subtilités de l’utilisation des instruments”. Fondamentalement, la NASA travaille avec un tas de fichiers qui sont écrits dans un format quelque peu lisible par l’homme – s’ils ont besoin d’apporter des modifications, ils peuvent simplement ouvrir un éditeur de texte, faire un groupe d’essais au sol, puis envoyer le fichier mis à jour au JWST. C’est certainement plus facile (et donc probablement moins sujet aux erreurs) que si chaque programme était écrit en code obscur que vous auriez à recompiler si vous vouliez apporter des modifications.
:no_upscale()/cdn.vox-cdn.com/uploads/chorus_asset/file/23917404/Screenshot_2022_08_02_at_08.45.30.png)
Si vous êtes toujours inquiet, notez que le document du Space Telescope Science Institute mentionne que le processeur de script lui-même est écrit en C++, ce qui est connu pour être… eh bien, le type de langage que vous voudriez utiliser si vous programmiez un vaisseau spatial. Et ça marche évidemment, non ? Les images sont incroyables, quel que soit le type de code exécuté pour les générer. C’est, cependant, une anecdote amusante – la prochaine fois que vous maudissez le Web moderne pour être si lent et que vous souhaitez que quelqu’un fasse exploser JavaScript dans l’espace, vous pouvez vous rappeler que la NASA a, en fait, fait cela.