Table 1:
Language | Build/deploy | FASTA reading | Command-line argument parsing | Unit testing | Logging | Static analysis | Code format |
---|---|---|---|---|---|---|---|
C | make | kseq | getopt | assert | custom | lint | clang-format |
C++ | cmake | Seqan | boost::program_options | catch | boost::log | cppcheck | clang-format |
C# | dotnet | .Net Bio | Microsoft.Extensions. CommandLineUtils | Microsoft.VisualStudio. TestTools.UnitTesting | Serilog | N/A | N/A |
Clojure | lieningen | Bioclojure | clojure.tools.cli | clojure.test | timbre | Eastwood | cljfmt |
Java | maven | biojava | Apache Commons | junit | custom | checkstyle | checkstyle |
JavaScript | node | fasta-parser | commander | mocha | winston | N/A | standard |
Haskell | stack | BioHaskell | optparse-applicative | hspec | hslogger | hlint | N/A |
Perl | CPAN | BioPerl | Getopt::ArgParse | Test::More | Log::Log4perl | perlcritic | perltidy |
Python | pip | biopython | argparse | unittest | logging | pylint | N/A |
R | R | seqinr | optparse | testthat | logging | lintr | N/A |
Ruby | gem | bioruby | optparse | Test::Unit | logger | N/A | N/A |
Rust | cargo | bio::io::fasta | argparse | native test feature of Rust | log, log4rs | N/A | rustfmt |
Instances where no appropriate option was available are marked with N/A.