Our paper about comparing Go, Java, and C++ for implementing our DNA sequencing tool elPrep has finally been published at https://bmcbioinformatics.biomedcentral.com/articles/10.1186/s12859-019-2903-5
elPrep is a tool for accelerating major parts of common DNA sequencing software pipelines, with performance improvement factors of up to 10x compared to de-facto standard tools used in the field. Performance and memory use are extremely important for us, because we are dealing with workloads of up to several hours and memory use of up to 200 GB RAM, depending on specific use cases.
When deciding for a new programming language for elPrep version 3, we investigated Go, Java, and C++ as candidates and implemented significant parts of elPrep in all three languages. The Go implementation performed best, yielding the best balance between runtime performance and memory use. While Java is somewhat faster, the memory use was significantly higher than in the Go version. The C++17 version ran significantly slower than both Go and Java, primarily due to a lack of a concurrent, parallel garbage collector.
You can find the details of the experiment in this paper.
elPrep itself is available at https://github.com/exascience/elprep and another paper describing elPrep at a more general level is available at https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0209523