This will be represented in a programmatic format, but to start is written in this file. These categories were derived from original discussion here. Note that a piece of software that ultimately might not be considered research software (e.g., our Linux or git examples) can still be classified here, as it is incidentally used for research.
- Domain-specific hardware (e.g., software for physics to control lab equipment)
- Domain-specific optimized software (e.g., neuroscience software optimized for GPU)
- Domain-specific analysis software (e.g., SPM, fsl, afni for neuroscience)
- Numerical libraries (includes optimization, statistics, simulation, e.g., numpy)
- Data collection (e.g., web-based experiments or portals)
- Visualization (interfaces to interact with, understand, and see data, plotting tools)
- Interactive development environments for research (e.g., Matlab, Jupyter)
- Workflow managers
- Provenance and metadata collection tools
- Databases
- Application programming interfaces
- Frameworks (to generate documentation, content management systems, etc.)
- Operating Systems
- Scheduling and task management (for people)
- Version Control
- Text Editors
- Communication/collaboration tools or platforms (e.g., email, slack, journals, etc.)