From b33c9c286e4f82a12c30fbc65cf1d38999d3c52b Mon Sep 17 00:00:00 2001 From: wgroeneveld Date: Fri, 10 Nov 2023 16:27:59 +0100 Subject: [PATCH] in academia, we write throwaway code: typo/addendum --- content/post/2023/11/in-academia-we-write-throwaway-code.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/content/post/2023/11/in-academia-we-write-throwaway-code.md b/content/post/2023/11/in-academia-we-write-throwaway-code.md index d897e0b2..cdf9b8c6 100644 --- a/content/post/2023/11/in-academia-we-write-throwaway-code.md +++ b/content/post/2023/11/in-academia-we-write-throwaway-code.md @@ -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.