In the world of technology, there are various programming languages used by major companies and organizations in their IT departments to perform critical functions and large-scale missions.
However, when we talk about high-level projects such as NASA's Artemis II mission,
the choice of programming languages is not random, but strategic. Every line of code can make
the difference between the success and failure of a space mission.
Programming languages are not only used in the visible interfaces of space mission control centers, as often shown in movies, but they are also essential in the internal systems that control spacecraft, both crewed and autonomous.
But which programming languages make these technological achievements possible, and why do they remain essential even today?
Use of C and C++ in Space Systems
The programming languages C and C++ are fundamental pillars in missions such as NASA's Artemis II mission, as they enable the development of highly efficient and reliable software for critical environments.
NASA has relied on these languages for decades due to their high performance, reliability, and ability to provide direct control over hardware—essential features in systems where there is no margin for error.
However, it is important to highlight that C and C++ were not the first programming languages used in space exploration. Instead, they emerged as a necessary evolution to improve the efficiency and scalability of software in increasingly complex space missions.
How did NASA introduce C and C++?
NASA began adopting the C programming language between the 1970s and 1980s as part of the technological evolution of aerospace software development. During iconic programs such as Apollo (1961–1972), C did not yet exist, so low-level languages were used, particularly assembly language in systems like the Apollo Guidance Computer (AGC).
This system was designed to provide computational capabilities for trajectory calculations, as well as navigation of both the command module and the lunar module. It was optimized for the limited magnetic core memory available at the time, yet powerful enough to support astronauts Buzz Aldrin, Michael Collins, and Neil Armstrong aboard the Saturn V rocket during the Apollo 11 mission—the first humans to walk on the Moon.
With the advancement of computing, C became a more efficient and flexible alternative, allowing developers to maintain close control over hardware while improving development capabilities. Later, C++ was introduced to manage more complex systems, providing modularity and code reusability.
Example of C++ usage:
#include <iostream>
int main() {
std::cout << "Hello, World!" << std::endl;
return 0;
}
Officially, NASA began using the C programming language in the 1970s and 1980s due to its efficiency compared to earlier languages such as native assembly, while still maintaining direct hardware control.
- In the 1980s, C became the standard language for embedded systems.
- During the 1990s, C++ began to be adopted in more complex space projects, thanks to its support for object-oriented programming.
Then these two programming languages were integrated into systems for:
- 🧭 Navigation software
- 🎛️ Flight control
- 🕹️ Mission simulators
- 💻 Ground support systems
The Ada language at NASA and its role in Artemis II
The Ada language at NASA plays a fundamental role in space missions such as Artemis II, where software reliability is critical. Ada is a high-level programming language designed for critical systems, specifically created for environments where errors are not an option.
Unlike other more common programming languages, Ada focuses on key aspects that make it an essential component of aerospace software:
- Runtime safety
- Early error detection
- Safe concurrent programming
- Strict data type checking
These features mean that, while in other languages errors may appear in production, Ada is able to detect them much earlier, even before the software is deployed in real systems.
In the context of Artemis II and other NASA missions, this is crucial. Programming systems for navigation, flight control, and communications requires an absolute level of precision.
That is why, in this type of space missions, Ada is not just an option but a guarantee: it minimizes risks and ensures that even the smallest error is detected before it becomes a real problem.
Example:
with Ada.Text_IO; use Ada.Text_IO;
procedure Hello is
begin
Put_Line("Hello, world!");
end Hello;
C/C++ and Ada Are Not Obsolete Languages at NASA
It is a mistake to claim that C/C++ and Ada are outdated or obsolete today. In reality, the opposite is true: they remain highly relevant and continue to be fundamental in missions such as NASA's Artemis II, where reliability and performance are critical.
In addition, their relevance is not limited to the aerospace field. In most universities, especially in software engineering programs and related disciplines, these languages are often among the first that students learn.
This is not because they have simple syntax, but because they help build a strong foundation in programming logic, understanding how hardware works, and mastering different paradigms—essential skills for any developer.
While the Apollo missions took humans to the Moon using assembly language, modern missions such as Artemis II rely on a set of languages like C, C++, Ada, and others that work together to ensure safety, performance, and reliability, which we will explore in the following sections.
Other Programming Languages in Artemis II Besides C, C++ and Ada
In addition to C, C++, and Ada, there are other programming languages used in Artemis II that play a key role in the mission. Although C/C++ and Ada are primarily used in critical systems, they are not always directly involved in all software functions.
NASA also uses other programming languages in essential areas such as system simulation, data analysis, algorithm development, and software testing. These tasks are crucial for validating the spacecraft's behavior before launch and minimizing operational risks as much as possible.
Together, all these languages form a highly specialized programming ecosystem that ensures precision, efficiency, and safety in a complex space mission such as Artemis II.
Python in Artemis II: data analysis and simulations
Python is one of the most popular programming languages in the world and is widely used by NASA for tasks that do not require real-time execution within Artemis II.
A clear example is the use of Python to model the trajectory and dynamics of Artemis II through physical simulations. This allows engineers to recreate the spacecraft's behavior, analyze its orbit, and validate hypotheses before deploying them in real environments.
Python performs multiple key tasks within the development of Artemis II:
- 📊 Data analysis and telemetry: it processes large volumes of data generated by spacecraft sensors and systems.
- 🧪 Space mission simulation: it is used to model trajectories, orbital behavior, and flight physical conditions.
- ⚙️ Test automation: it helps validate software before deployment in critical systems.
- 🧠 Algorithm development and validation: many algorithms are first developed in Python and later translated into languages such as C++ or Ada.
The role of Python is complementary within NASA's software ecosystems.
MATLAB in Artemis II: Simulation and Modeling of Space Systems
MATLAB (MATrix LABoratory) is a programming language and computing environment designed for mathematics, engineering, and data analysis. Unlike languages such as Java or C++, MATLAB is not primarily focused on building applications, but on solving mathematical problems and simulating complex systems.
Although it is not a traditional programming language like C/C++ or Ada, its role at NASA is essential in the early stages of critical software development. It allows engineers to create precise mathematical models to simulate the spacecraft's behavior under different conditions, from launch to its trajectory around the Moon.
The use of MATLAB in Artemis II includes:
- 🧠 Modeling navigation systems
- 📈 Trajectory and orbital dynamics simulation
- ⚙️ Control algorithm design
- 🧪 System validation before final development
Thanks to these capabilities, MATLAB allows NASA engineers to detect errors at early development stages, preventing critical failures in real systems. Its implementation is key to minimizing risks and ensuring that every component operates with full reliability before being used in space.
Fortran at NASA: Scientific Calculations and Space Simulations
Fortran is one of the oldest programming languages and was designed for high-speed mathematical and scientific computations. It was created in 1957 by IBM, led by John Backus, becoming the first widely adopted high-level programming language, long before C, C++, or Python.
Despite its age, Fortran is still very much alive and actively used, and it continues to be employed by NASA in areas related to scientific computing and high-precision numerical simulations.
- 📊 Orbital dynamics calculations
- 🌌 Advanced physical simulations
- 🧠 Scientific model processing
- 📈 High-performance numerical analysis
At NASA, Fortran remains relevant because:
- It is highly efficient for high-precision mathematical computations.
- It has decades of validation in critical scientific environments.
- It includes many optimized and widely tested libraries.
- It is considered one of the most reliable languages for complex simulations.
In Artemis II, Fortran does not directly control the spacecraft, but it is involved in scientific modeling, pre-launch simulations, and complex data analysis, helping to understand system behavior in space environments before liftoff.
Assembly Language in Artemis II: Low-Level Control and Maximum Precision
Assembly (assembly language) is a low-level programming language that operates very close to the machine code directly understood by the processor. Instead of using zeros and ones, it uses short instructions that represent operations performed by the CPU. This language emerged in the late 1940s and early 1950s.
Today, it is uncommon to see full applications developed in Assembly, but it remains essential at NASA for systems that require absolute performance control, especially in critical missions such as Artemis II.
Unlike other languages, Assembly allows engineers to interact directly with the processor, providing precise instructions at the hardware level. Although its use is limited due to its complexity, its ability to deliver maximum performance makes it indispensable in specific system components.
Is Artificial Intelligence Used in Artemis II?
NASA incorporates Artificial Intelligence as an important tool across various support and development areas. Although it does not directly control the Orion spacecraft, it is used in key phases such as data analysis, scenario simulation, early anomaly detection, and process optimization. This helps reduce risks before launch and improves the overall efficiency of the mission.
For this reason, in Artemis II, NASA combines AI as a supporting tool with the highly reliable traditional systems mentioned earlier, achieving a balance between safety and innovation.
According to NASA, Artificial Intelligence is used to enhance decision-making, optimize processes, and analyze large volumes of data in space missions and future exploration of the Moon and Mars.
Did NASA Use Obsolete Technology in Artemis II? The Truth Behind Its Systems
It is evident that this mission used equipment and technological systems from previous generations. This is not due to a lack of innovation, but rather because Artemis II was originally scheduled to launch in 2020 and experienced multiple delays. As a result, the equipment intended for integration into the Orion spacecraft was acquired as early as 2017.
These systems had already passed the rigorous certification process required to operate in space. This avoided the need to acquire newer devices, reducing costs in a project that already represented a massive investment. Ultimately, the Orion spacecraft for Artemis II launched in 2026, at a time when part of that hardware was already technically outdated.
Although it may seem surprising, NASA deliberately used hardware that is not cutting-edge in Artemis II, and this was expected. According to sources, the software was specifically developed for those platforms, which had already been thoroughly tested and certified by the agency. Unlike a smartphone, space hardware cannot be replaced every year or with each new version. One notable example was the use of the Microsoft Surface Pro tablet running Windows 8, originally released in 2013.
On the other hand, astronauts also carried modern technologies such as the iPhone 17 Pro Max, Apple's most advanced device at the time, used to capture images of the Earth and the Moon, even without an Internet connection. In this way, an iPhone became part of history as the first smartphone to document the Moon up close since humanity last visited it in December 1972.
Conclusion
In complex missions like Artemis II, NASA does not prioritize the newest or most popular technology, but the most reliable. That is why they use systems that have proven their effectiveness and safety over decades.
C and C++ are fundamental languages in this mission for developing critical systems. Their performance makes them reliable in environments where even the smallest error is not an option and every line of code matters.
Ada remains one of the most reliable and secure programming languages within NASA. Focused on safety, error detection, and operation in critical systems, it is a key component in Artemis II.
MATLAB does not directly control the spacecraft in Artemis II, but it is an essential tool for designing, validating, and simulating the systems that do.
Fortran proves that it is far from being an obsolete language, which is why NASA continues to use it in space missions for high-precision scientific calculations.
Assembly is not only used in missions like Artemis II, but is also fundamental in operating systems, hardware, and applications where full performance control is essential.
Artificial Intelligence is part of the Artemis II ecosystem to support, analyze, and optimize critical decision-making.
Recommendation
If you are starting your journey in programming and are passionate about engineering, science, or critical systems development, these languages are an excellent starting point.
Do not be discouraged by their age or complexity. C and C++ will give you a solid foundation in programming logic and hardware understanding. Ada will teach you to write safe and structured code. MATLAB will help you solve mathematical problems and simulate real systems. Fortran will introduce you to high-precision scientific computing. And Assembly will help you understand how a computer works at its most fundamental level.
Mastering one or more of these languages will not only open doors in the aerospace industry, but also in sectors such as defense, medicine, finance, and scientific research—fields where reliability and performance are just as critical as in a mission to the Moon.
Remember that NASA does not hire the fastest programmers, but the most precise ones. Learn to write clean, safe, and well-documented code from the beginning, and you will be building the foundation for a strong career in software development.
References
- NASA. (n.d.). Artificial Intelligence. Retrieved from: https://www.nasa.gov/artificial-intelligence/