  The traditional foundation of science lies on the cornerstones of theory and
experiment. Theory is used to explain experiment, which in turn guides the
development of theory. Since the advent of computers and the development of
computational algorithms, computation has risen as the third cornerstone of
science, joining theory and experiment on an equal footing. Computation has
become an essential part of modern science, amending experiment by enabling
accurate comparison of complicated theories to sophisticated experiments, as
well as guiding by triage both the design and targets of experiments and the
development of novel theories and computational methods.
  Like experiment, computation relies on continued investment in
infrastructure: it requires both hardware (the physical computer on which the
calculation is run) as well as software (the source code of the programs that
performs the wanted simulations). In this Perspective, I discuss present-day
challenges on the software side in computational chemistry, which arise from
the fast-paced development of algorithms, programming models, as well as
hardware. I argue that many of these challenges could be solved with reusable
open source libraries, which are a public good, enhance the reproducibility of
science, and accelerate the development and availability of state-of-the-art
methods and improved software.
