In the world of High Energy Physics (HEP), software at large is usually written in a mixture of C++ and Python (with dwindling amounts FORTRAN).
This is the result of 2 somewhat conflicting constraints:
- software has to run fast to quickly analyze petabytes of data
- software has to be relatively easy to write (and tweaked) by people with a wide variety of programming skills
What could Go bring to the table?
In the first part of the talk, I'll describe the typical software environment of a high energy physicist and why Go is a good practical match for most of the issues they face.
I'll then introduce GoHEP, a set of packages allowing particle physicists write their analyses or reconstruction software in Go while still interoperating with other analysis pipelines, focusing on a library for modeling HEP detector responses.
I'll conclude with a few other "science-y" oriented packages that have been useful or written in the context of GoHEP (Gonum, Apache Arrow, Go-DAQ) and where GoHEP is being used.