Advertisement

CEAS Space Journal

, Volume 10, Issue 1, pp 115–123 | Cite as

A comparative study of programming languages for next-generation astrodynamics systems

  • Helge EichhornEmail author
  • Juan Luis Cano
  • Frazer McLean
  • Reiner Anderl
Original Paper

Abstract

Due to the computationally intensive nature of astrodynamics tasks, astrodynamicists have relied on compiled programming languages such as Fortran for the development of astrodynamics software. Interpreted languages such as Python, on the other hand, offer higher flexibility and development speed thereby increasing the productivity of the programmer. While interpreted languages are generally slower than compiled languages, recent developments such as just-in-time (JIT) compilers or transpilers have been able to close this speed gap significantly. Another important factor for the usefulness of a programming language is its wider ecosystem which consists of the available open-source packages and development tools such as integrated development environments or debuggers. This study compares three compiled languages and three interpreted languages, which were selected based on their popularity within the scientific programming community and technical merit. The three compiled candidate languages are Fortran, C++, and Java. Python, Matlab, and Julia were selected as the interpreted candidate languages. All six languages are assessed and compared to each other based on their features, performance, and ease-of-use through the implementation of idiomatic solutions to classical astrodynamics problems. We show that compiled languages still provide the best performance for astrodynamics applications, but JIT-compiled dynamic languages have reached a competitive level of speed and offer an attractive compromise between numerical performance and programmer productivity.

Keywords

Scientific programming Computational astrodynamics Open-source software 

Notes

Acknowledgements

We would like to thank Luc Maisonobe for providing improved versions for some of the Java benchmarks.

References

  1. 1.
    Bate, R.R., Mueller, D.D., White, J.E.: Fundamentals of Astrodynamics. Dover Publications, New York (1971)Google Scholar
  2. 2.
    Bezanson, J., Edelman, A., Karpinski, S., Shah, V.B.: Julia: A fresh approach to numerical computing. SIAM Rev. 59, 65–98 (2017). doi: 10.1137/141000671 MathSciNetCrossRefzbMATHGoogle Scholar
  3. 3.
    Evans, B.J.: Java in a Nutshell, 6th edn. O’Reilly, Sebastopol (2015)Google Scholar
  4. 4.
    Hairer, E., Nørsett, S.P., Wanner, G.: Solving Ordinary Differential Equations I: Nonstiff Problems, 2nd Revision. Edition no. 8 in Springer Series in Computational Mathematics. Springer, Heidelberg (2009)Google Scholar
  5. 5.
    Marz, N., Warren, J.: Big Data: Principles and Best Practices of Scalable Real-Time Data Systems. Manning, Shelter Island (2015)Google Scholar
  6. 6.
    Metcalf, M., Reid, J., Cohen, M.: Modern Fortran Explained. Numerical Mathematics and Scientific Computation. Oxford University Press, Oxford (2011)zbMATHGoogle Scholar
  7. 7.
    Prechtelt, L.: Two comparisons of programming languages. In: Oram, A., Wilson, G. (eds.) Making Software: What Really Works, and Why We Believe It, 1st edn, pp. 239–258. O’Reilly, Sebastopol (2011)Google Scholar
  8. 8.
    Stroustrup, B.: The C++ Programming Language, Fourth, edition edn. Addison-Wesley, Upper Saddle River (2013)zbMATHGoogle Scholar
  9. 9.
    Vallado, D.A., McClain, W.D.: Fundamentals of Astrodynamics and Applications. Microcosm Press, Hawthorne (2013)Google Scholar
  10. 10.
    van der Walt, S., Colbert, S., Varoquaux, G.: The NumPy array: A structure for efficient numerical computation. Com. Sci. Eng. 13(2), 22–30 (2011). doi: 10.1109/MCSE.2011.37 CrossRefGoogle Scholar
  11. 11.
    Wilson, G., Aruliah, D.A., Brown, C.T., Chue Hong, N.P., Davis, M., Guy, R.T., Haddock, S.H.D., Huff, K.D., Mitchell, I.M., Plumbley, M.D., Waugh, B., White, E.P., Wilson, P.: Best practices for scientific computing. PLoS Biol. 12(1), e1001, 745 (2014). doi: 10.1371/journal.pbio.1001745

Copyright information

© CEAS 2017

Authors and Affiliations

  1. 1.Department of Computer Integrated Design (DiK)Technische Universität DarmstadtDarmstadtGermany
  2. 2.Telespazio VEGA Deutschland GmbHDarmstadtGermany
  3. 3.Universidad Politécnica de MadridMadridSpain
  4. 4.CS GmbHDarmstadtGermany

Personalised recommendations