Tuesday, November 27, 2018
Astronomy and astrophysics has long been on the forefront of scientific software. "Astronomical" data sizes, unique signal-to-noise regimes, and a tendency towards open data sets has meant the astronomy community has often had to invent its own tools with relatively little involvement from other fields. However, a major shift has occurred in the last decade or so: the advent of Data Science and "big data" (driven in part by astronomy itself) has resulted in a software ecosystem that much better matches the needs of astronomy while being supported by a much larger (and better-funded) base of users. I will describe how this ecosystem came to be, and what keeps it alive, with a focus on the Astropy Project, the core libraries for doing astronomy with Python. I will also describe how these tools enable a newer philosophy that hopefully can help you implement your own code better. This approach focuses on modularity and a "build your own workflow" approach informed by practical software engineering, as well as an open development model that allows us to better share our collective scientific wisdom embedded in our code. Finally, I will describe developments on the horizon that suggest an even larger shift is coming in the era of JWST, LSST, and WFIRST: software platforms in the cloud.