in academia, we write throwaway code: typo/addendum

This commit is contained in:
Wouter Groeneveld 2023-11-10 16:27:59 +01:00
parent 554887edaa
commit b33c9c286e
1 changed files with 4 additions and 2 deletions

View File

@ -8,11 +8,13 @@ tags:
- academia
---
Something scary dawned to me recently after having peeked into several source code repositories of funded projects here in academia. Most of these repositories contain code that would instantly make my software developers ex-colleagues sick---and by sick, I mean suddenly-needing-a-bucket sick. What gives?
Something scary dawned to me recently after having peeked into several source code repositories of funded projects here in academia. Most of these repositories contain code that would instantly make my software engineering ex-colleagues sick---and by sick, I mean suddenly-needing-a-bucket sick. What gives?
In academia, we write throwaway code. There's nothing inherently wrong with that. For most projects, that is. For some of these that we want to keep in the air for just a little while longer, where the adoption rate gradually increases, the scope is ultimately stretched out beyond the lifetime of a typical project. In that case, leaning on something called _clean code_ to increase maintainability is no longer a luxury: it's a requirement. Sadly, that's never taken into account during the development of these prototypes---because that's what these are.
The code I write for my research has the following purposes:
The code I write[^exc] for my research has the following purposes:
[^exc]: A notable exception is the [gba-sprite-engine](/post/2019/04/teaching-oo-with-gba/) I wrote to aid teaching object-oriented programming using the GBA. I approached that as a hobby side-project, where oddly enough I employ higher standards?
1. It queries and stores data. Bespoke surveys with specific drag-and-drop components fall into this category. In case I help out an engineering or computer scientist colleague: it produces data.
2. It manipulates, aggregates, and summarizes data. The program and its output is mostly used once, as part of the publication process.