Help Privacy Policy Disclaimer
  Advanced SearchBrowse





Writing Extensible Software for Researchers - Principles and an Example in Julia


Ernst,  Maximilian S.
Center for Lifespan Psychology, Max Planck Institute for Human Development, Max Planck Society;

External Resource
No external resources are shared
Fulltext (restricted access)
There are currently no full texts shared for your IP range.
Supplementary Material (public)

(Multimedia), 27MB


Ernst, M. S. (2022). Writing Extensible Software for Researchers - Principles and an Example in Julia. Talk presented at MPG-Workshop 2022 "Future Opportunities for Software in Research". Plön. 2022-05-12 - 2022-05-13.

Cite as: https://hdl.handle.net/21.11116/0000-000B-1E3C-2
Software for research has to keep up with the methodological developments in its
field. All too often, only a handful of maintainers bear the load of maintaining and
extending software. In consequence, they are swamped with demands for adding addi-
tional features, resulting in long delays until new innovations become available.
However, in many disciplines, methodological researchers are somewhat proficient
in writing code and would in theory be able to contribute to existing software solutions.
But often the existing code base is not easily extensible, and researchers instead write
idiosyncratic ad-hoc software solutions for their specific tasks. In consequence, they
reimplement large parts of existing software and add their required features, resulting
in many similar software packages co-existing but not being compatible to each other.
To solve this problem, it is necessary to design open software that is easily exten-
sible by other researchers. I will show that this is not only about making source code
publicly available, but about design patterns and software development methodologies.
Many features of the Julia programming language make it ideal to meet these demands,
while achieving high performance for compute-intensive tasks. In addition, I will show
everything in action in the experimental Julia package StructuralEquationModels.jl.