Conviviality in computational science
22 points by ayba
22 points by ayba
The bolsheviks, supporting Python 3, decided to kill Python 2 by various means, including highly questionable methods such as the Python 3 Wall of Shame, an online pillory listing projects that had not yet made the migration. This was possibly the most destructive event in the history of FOSS, and in particular a lot of domain-specific research software, the kind that only a handful of people would ever have heard about, was made unusable.
I don't think this is an accurate assessment of how that went.
tldr: I posit that there does not exist a "stable" layer on which to build software. There are gel phase layers where things are constantly shifting and glass phase layers that seem stable until an event comes along to shatter it. I find it more convival to live in the gel than build an ever growing tower of glass so I can pretend that the base isn't just a bunch of spheres in suspension.
As someone else who also did a PhD on colloidal suspensions, I did feel that that segment was almost backwards. I'm younger than the author and was in grad school when Numerical Python came out, but my experiences at the time have left me with the conclusion the opinion that "convival software is living software". Anecdotes that formed this opinion:
I appreciate the author's concerns. Heck, the software I wrote for that neutron camera was in Python 2.7 with wxPython. It will not trivially run on any computer I could buy today and I fully agree that it is not convival. However, I disagree that the solution is to freeze the world so that my code can run forever, nor to build a pile of shims and emulators that can allow my code to continue to pretend that it's 2008. The solution is to recognise that code is a living document that requires constant maintenance. Granted, the group who truly needs to recognise this are the funding bodies who should be providing funding for grad students and post docs to perform this maintenance.
The author mentions that Fortran is stable. In my experience, C and Linux are also stable. I wrote a ton of software for my personal use in the 1990's, and it all still works today. I think I've had to change 2 lines in the last 20 years. It wasn't originally designed to run on Linux, but it runs on Linux.
I disagree that the solution is to freeze the world so that my code can run forever, nor to build a pile of shims and emulators that can allow my code to continue to pretend that it's 2008. The solution is to recognise that code is a living document that requires constant maintenance. Granted, the group who truly needs to recognise this are the funding bodies who should be providing funding for grad students and post docs to perform this maintenance.
Sounds like a dystopia to me.
This perpetual software upgrade and maintenance grind is not what grad students and post docs should be spending their time on IMO.
I want to live in a world where I can write some software, and it is done. I don't want to dedicate the rest of my life to upgrading and maintaining my old software just so that it can continue to work the way it used to.
Just as not all software is proprietary, there is also free and open source software, I would prefer to live in a world in which there also exists convivial software for those who want it and want to participate in that community. Maybe the convivial software people just need to organize and promote their values. That was a successful strategy for the FOSS people.
What about his actual point, though?
It is a good support for large corporate libraries such as PyTorch, but no longer a good choice for typical research teams that don't have the resources for dealing with high rates of tech churn (Illich's obsolescence). It is now more difficult to run a five-year-old Python script than a 40-year-old Fortran program, and even if it runs, it may not produce the same results as it did in the past.
While I wasn't familiar with his "conviviality" framing, I also quit using Python as my main toolsmithing language around this time for similar reasons -- I intuited that the ecosystem churn around the Python 2 / Python 3 split was going to cause major problems for reverse compatibility, on top of being a big hassle for a while. I switched to using Lua for most personal scripting, and code I wrote literally 15+ years ago still works. Sometimes it needs very minor updates for standard library interface changes, but that's it.
When he says "the scientific Python ecosystem is the example I know best for progressive loss of conviviality," he's talking about how the Python 2 / Python 3 split pulled the rug out from under libraries and other infrastructure being used for scientific research. "The scientific Python ecosystem flipped from a stable infrastructure for research projects to an unstable software layer whose frequent breaking changes required researchers to invest more and more time just to keep their code in a usable state."
what a nice Illich-hole. Thanks for sharing!
I like the "convivial" framing, as it captures what I think many of us, myself included, consider to be a fundamental belief:
Convivial technology was defined ... as technology ... that strives to grant each of its members as much agency as is possible without infringing on other members' agency.
For me, the fundamental problem is that what's good for individual freedom might be detrimental for collective good. The article considers cars, for example, saying " ... the total societal cost for car-based mobility is enormous ...". I don't claim to have deep knowledge but, to me, it's a red flag when this is talked about without mention of logistics of resource transportation, like food and goods. Would they be possible without a modern infrastructure of transport? I think no but this is almost never addressed in articles I've read that take this stance, including this one.
I got to the fourth paragraph and couldn't get further:
Let me start with the observation that most pre-digital technology in scientific research is convivial.
This is incorrect.
Scientific research is and has been focused on industrial application and profitability. Even 30 years ago, research institutions required researchers to hand over patent and copy rights to the institution. Industry research institutions are worse.
The research system was better than keeping industry secrets with conference and journal publishing a benefit over word-of-mouth or apprenticeship, but the system is and was focused on creating, keeping and enforcing their intellectual property for profitability.
It's hard to take articles like these very seriously when they don't address the benefits large scale technology has to society. I don't want to be too puritanical but it's also hard to take the author seriously about "convivial" and respecting the free flow of ideas and technology when their own work is under a non-commercial license, specifically restricting its use.
logistics of resource transportation, like food and goods
The discussions that I've seen on the matter haven't suggested abandoning roads entirely, but rather limiting their use. There would still be roads for delivery vehicles, buses, ambulances, and even taxis, but driving your own private vehicle would be forbidden. This would vastly reduce traffic allowing for smaller roads. The traffic that remains would fall under the higher standards of a CDL licence, which should (but likely won't) give better adherence to traffic rules and vehicle flow. The reduced traffic would also improve public transport reliability. Finally, there would be vastly reduced parking needs, reducing the empty space surrounding most commercial buildings.
Now, I'm sure you can think of a dozen problems off the top of your head (I certainly can), but resource transit is built into the system.
It's hard to take articles like these very seriously when they don't address the benefits large scale technology has to society.
The author cites degrowthers; degrowth as a movement doesn't just fail to address those benefits, it's actively antagonistic towards the idea that they exist.
My only semi-flippant definition of the degrowth movement is that it's what you get when the radical left realise that their brand of socialism isn't capable of delivering material prosperity to the working class (or any other), and start arguing against material prosperity instead ;)
This blog post has a DOI!!! What a time to be alive