“If What We Made Were Real: Against Imperialism an...
# linking-together
c
“If What We Made Were Real: Against Imperialism and Cartesianism in Computer Science, and for a discipline that creates real artifacts for real communities, following the faculties of real cognition” by Basman (2020) https://www.ppig.org/files/2017-PPIG-28th-basman.pdf
👀 3
❤️ 4
> Here are a number of kinds of power, widely considered traditional powers amongst software engineers, that we should give up: > > • The power to create grammars with infinite numbers of valid sentences > • The power to construct programs that might consume unbounded time and/or space, or perhaps never terminate > • The power to hide pieces of state behind abstractions (APIs or other kinds of interfaces) > • The power to construct pieces of software through irreversible or nearly irreversible machines such as compilers > • The power to divide up a particular domain into a single hierarchical decomposition of entities with properties, connected by relations > • The power to prescribe the exact sequence of operations needed to achieve a particular result > • The power to import machinery, definitions or methodologies from related disciplines, without evaluating their tendency to result in appropriate products > • The power to change the form or behaviour of a program in an updated version, without giving a cost-free (to both users and developers) choice to retain the old form
> All of the "fake software" we have today is not like this, and does not allow this. Instead, it consists of a number of "locks" through which water only flows in one direction - conducting power out from the worlds of developers into the worlds of users, and accepting no inflow in the other direction. This is precisely what APIs and abstraction boundaries, compilers and modules are designed to achieve - to concentrate power in the hands of those who have it, and to ensure that none of it leaks outwards.
d
Wow this is just my kinda stuff, I'll read that, then hopefully come by here again with my usual Deep Insights...
c
Cant wait to hear your thoughts!
🤓 1
d
I've just started reading it now - and I'm nodding along furiously. I'll have to finish reading it tomorrow as I've had a glass of wine so won't remember it well enough! Anyway, here's one of my articles bemoaning the same issue (in a more trivial way perhaps), and offering my solution - which is "The Inversion": https://duncancragg.substack.com/p/turning-the-blob-inside-out
i
(Possible spoiler: we're considering doing an episode of the podcast on this paper; I'm going to save my thoughts for that)
❤️ 6
j
This really feels like there is a pendulum that has almost never swung away from one extreme for computation for decades and we’re close to realizing it.
d
OK, I've read the doc, and I agree with all the sentiments and motivations and broad concepts, but of course, don't agree with the details of the solution side! Basman's solution alludes to Declarative programming as a better alternative to Imperative, but doesn't call for that jump as explicitly as I do, or recognise it as a choice between duals: what I call the "Inversion". Here's another one from my blog on that: https://duncancragg.substack.com/p/the-inversion
We shoulda pinged the author! @Bosmon 🤗
d
I haven't finished reading this yet, but given the intro that says "I argue that we have not yet succeeded in constructing any real software", does the paper define what "real software" is? (Is the list of "powers to give up" in some sense a definition?)
d
Yeah good point, I was just glossing over that phrase as a bombastic or provocative label for their goal, you don't need to analyse it beyond that I don't think.
d
Thanks — fair enough!
o
by the way this was already in our slack at least on 5th of February https://futureofcoding.slack.com/archives/C037X8XMFB3/p1707152489784429
I read this article before and it is good, worth reading second time