BioJava (Java)

  • BioJava is a biological data processing library written in the Java programming language
  • BioJava tooling is distributed via multiple classes within the same org.biojava package
  • Launched in 2002 with six major releases covering more than 11 Java releases

A few equivalent applications between BioJulia and BioJava:

ApplicationBioJulia packagesBioJava modules
Input/OutputFASTX, XAM, BigWig,...nbio.genome.io.fastq, nbio.ontology.obo,...
Sequence alignmentBioSequences, BioAlignmentsnbio.sequence, nbio.alignment
Macromolecular structuresBioStructuresnbio.structure

A few package/ecosystem equivalents between Julia and Java:

ApplicationJuliaJava
Data manipulation/analysisDataFrames, CSV, QueryTablesaw
Plotting/visualizationPlots, Makie, TidierPlotsJFreeChart, Jzy3d
Statistical analysisStatistics, HypothesisTestsStatistics (Apache Commons), NM Dev
Machine learningFlux, SciML, MLJJava-ML, Neuroph
Numerical mathematicsLinearAlgebraNM Dev
Notebook/report generatorIJulia, PlutoIJava
Web applicationsGenie, FranklinGrails, Javalin

A few notable differences between Julia and Java:

JuliaJava
High-level, general-purpose compiled languageHigh-level, object-oriented, two-step (compiled and interpreted) language
Expression-based (statements yield a value)Statement-based (assignment as a statement)
Dynamically typed with multiple dispatch and optional type annotationsStatically typed with required type declarations
Built-in parallelism via threads, coroutines (Tasks)Built-in parallelism via threads, streams, fibers (Project Loom)
Extensive metaprogramming (Lisp-like macros, homoiconicity,...)Less extensive metaprogramming (reflection, annotations,...)
Included default package managerNo default package manager (dependency/build management tools include Maven, Gradle,...)
Single implementation available (JuliaLang)Multiple implementations available (OpenJDK, GraalVM,...)

To transition from Java to Julia: