Traveling the Solar System with C++: Programming Rocket Science
Spacecraft travel our solar system with exquisite accuracy. It is almost commonplace to learn that a spacecraft hit bullseye to within a few seconds after over a decade of space travel. How do we do that? What does it entail to design and operate the trajectory of a spacecraft? Newton, Kepler, Einstein, Tsiolkovsky, Battin and many others gave us beautiful mathematical models of the universe. Beautiful, yes, but also perversely complex. Without hope for analytical solutions, we must rely on numerical methods. Initially, numerical methods were executed by hand (people known as "The Computers"). Eventually we adopted electronic computers, and entered a multi-decade period of Fortran domination. Over the last decade, we have been experiencing increased adoption of C++. Organizations feel attracted to C++'s uncompromising performance, and its ability to abstract away the overwhelming complexity of spacecraft trajectory calculations. But it has not been an easy move! For example: luminaries of the field are stuck in Fortran, and current Engineering schools seldom offer any C++ education. As advanced scientific concepts require increasingly complex spacecraft trajectories, we see a bright future for C++ in this field. But we must be proactive in attracting, accommodating, and educating the current generation of engineers and scientists.