Comparing Ease of Programming in C++, Go, and Java for Implementing a Next-Generation Sequencing Tool. (August 2019)
- Record Type:
- Journal Article
- Title:
- Comparing Ease of Programming in C++, Go, and Java for Implementing a Next-Generation Sequencing Tool. (August 2019)
- Main Title:
- Comparing Ease of Programming in C++, Go, and Java for Implementing a Next-Generation Sequencing Tool
- Authors:
- Costanza, Pascal
Herzeel, Charlotte
Verachtert, Wilfried - Abstract:
- ElPrep is an extensible multithreaded software framework for efficiently processing Sequence Alignment/Map (SAM)/Binary Alignment/Map (BAM) files in next-generation sequencing pipelines. Similar to other SAM/BAM tools, a key challenge in elPrep is memory management, as such programs need to manipulate large amounts of data. We therefore investigated 3 programming languages with support for assisted or automated memory management for implementing elPrep, namely C++, Go, and Java. We implemented a nontrivial subset of elPrep in all 3 programming languages and compared them by benchmarking their runtime performance and memory use to determine the best language in terms of computational performance. In a previous article, we motivated why, based on these results, we eventually selected Go as our implementation language. In this article, we discuss the difficulty of achieving the best performance in each language in terms of programming language constructs and standard library support. While benchmarks are easy to objectively measure and evaluate, this is less obvious for assessing ease of programming. However, because we expect elPrep to be regularly modified and extended, this is an equally important aspect. We illustrate representative examples of challenges in all 3 languages, and give our opinion why we think that Go is a reasonable choice also in this light.
- Is Part Of:
- Evolutionary bioinformatics online. Volume 15(2019)
- Journal:
- Evolutionary bioinformatics online
- Issue:
- Volume 15(2019)
- Issue Display:
- Volume 15, Issue 2019 (2019)
- Year:
- 2019
- Volume:
- 15
- Issue:
- 2019
- Issue Sort Value:
- 2019-0015-2019-0000
- Page Start:
- Page End:
- Publication Date:
- 2019-08
- Subjects:
- Next-generation sequencing -- sequence analysis -- SAM/BAM files -- C++ -- Go -- Java
Bioinformatics -- Periodicals
Evolutionary computation -- Periodicals
Genetic programming (Computer science) -- Periodicals
Computational Biology
Evolution, Molecular
Bioinformatics
Electronic journals
Periodicals
Fulltext
Internet Resources
Periodicals
Periodicals
576.8 - Journal URLs:
- http://insights.sagepub.com/journal-evolutionary-bioinformatics-j17 ↗
http://www.uk.sagepub.com/home.nav ↗
http://www.la-press.com/evolutionary-bioinformatics-journal-j17 ↗
http://bibpurl.oclc.org/web/38943 ↗ - DOI:
- 10.1177/1176934319869015 ↗
- Languages:
- English
- ISSNs:
- 1176-9343
- Deposit Type:
- Legaldeposit
- View Content:
- Available online (eLD content is only available in our Reading Rooms) ↗
- Physical Locations:
- British Library DSC - BLDSS-3PM
British Library HMNTS - ELD Digital store - Ingest File:
- 12121.xml