
\documentclass[12pt]{article}
\usepackage[T2A,OT1]{fontenc}
\usepackage[default]{cantarell}
\usepackage[a4paper, top=20mm, bottom=20mm, left=20mm, right=20mm]{geometry}
\usepackage[utf8]{inputenc}
\usepackage[russian, english]{babel}
\usepackage{tabu}
\usepackage{hyperref}
\usepackage{parskip}
\usepackage{graphicx}
\usepackage{tabularx}
\usepackage{float}
\floatstyle{boxed}
\restylefloat{figure}
\usepackage{setspace}
\onehalfspacing
\author{Artyom Bologov}
\date{\today}
\title{Explanations, not Algorithms}
\makeatletter
\def\endenv{\expandafter\end\expandafter{\@currenvir}}
\makeatother
\begin{document}
\maketitle

\includegraphics[width=\textwidth,height=\textheight,keepaspectratio]{./assets/explanations.png}

Algorithm (in the context of tech) has two main meanings:

\begin{enumerate}\item To programmers: an encodeable sequence of steps to achieve some system state.
  E.g. Sieve of Eratosthenes algorithm to get a sequence of primes.
\item To non-programmers: black box rules that do something inside the program, often to “fun” external effects.
  E.g. Twitter algorithms.
\end{enumerate}

Both of these imply a certain impenetrability and obfuscation.
Be it via a programming language or a soothsayer server.
Relying on these means giving up one’s agency to some abstract party you cannot control.

\paragraph{Aside on why I’m so hard-set on independence} \begin{quote}
  <p>
    My parents raised me in a golden cage.
    Providing for me, but also restricting me in everything.
    I had no way to know the world and to make mistakes while at it.
    So the moment I was able to break free—I did.
    Same with programming—I don’t want to be stuck in an algorithmic cage, however comfortable.
\end{quote}

So algorithms are overrated and should be replaced with something more graspable:
Explanations.

\paragraph{Aside on which algorithm sense I pick} \begin{quote}
  <p>
    I'll mostly ignore the second sense of “algorithm” in this post.
    Because it’s obvious (?) that it’s bad letting someone else’s computer decide things for you.
\end{quote}

\section*{But Algorithms Are Explanations Already!} \label{but}

CS algorithms—finite sequences of steps usually encoded in pseudo-code, C, or Lua.
They are understandable to us programmers.
But not all of them and not to all of us.

The next (unlikely) time you have to implement a sorting algorithm, which one would you pick?
Quicksort or Mergesort?
While Mergesort is slightly slower (worst-case) than Quicksort, it’s much easier to explain:

\begin{figure}[h!]\begin{quote}
  So we split a sequence in single-element subsequences.
  They are sorted by definition—nothing to sort if there’s only one thing.
  Then we merge these subsequences in pairs by putting them into new sequences in the right order.
  It’s nothing, because single-element subsequences are “sorted” already.
  And then we merge the intermediate sequences in pairs.
  It’s mostly mechanical because they are sorted too:
  Just pick the least element from one of the sequences until you run out of them.
  Repeat until the whole thing is merged and sorted.
\end{quote}\caption{Artyom explaining Mergesort}\end{figure}

Somewhat long-winded, but quite understandable, isn’t it?
Now explain Quicksort to me.

\section*{Explain Your “Intelligence”} \label{weights}

No, not with ChatGPT.
ChatGPT is the embodiment of The Algorithm in being impenetrable and inexplainable.
Can you explain ChatGPT?

\begin{figure}[h!]\begin{quote}
  No one denies the many benefits of metahuman science,
  but one of its costs to human researchers was the realization
  that they would likely never make an original contribution to science again.
  Some left the field altogether, but those who stayed
  shifted their attention away from original research and
  towards hermeneutics interpreting the scientific work of metahumans.
\end{quote}\caption{Ted Chiang, The Evolution of Human Science}\end{figure}

While it's debatable whether “AI” is actually intelligent.
\href{https://mitpress.mit.edu/9780262046664/artificial-communication}{And whether “Intelligence” is even applicable to it}.
We do have a certain technology that behaves weird enough
\href{https://wikipedia.org/wiki/ELIZA_effect}{for ELIZA effect to kick in}.
Yet we (programmers and non-programmers alike) don’t really understand how it works.

We (as an industry) have given up on explaining stochastic models.
It’s billions of weights and features anyway, no use in trying.
\href{https://darioamodei.com/post/the-urgency-of-interpretability}{There are ideas and realization of urgency}.
But it’s “within 5-10 years” that we’re supposed to understand anything.

And yet we use ChantGPT as The Algorithm for many problems.
We ask it for sorting algorithms too!
And we will, until climate crisis hits us hard.

\section*{Bootstrappability} \label{bootstrap}

There’s this local trend of “collapse computing.”
Computing after shit happens to us and the planet.
\href{https://duskos.org}{Some—like Dusk OS} and its ancestor, Collapse OS—are focused on surviving the collapse.
\href{https://solar.lowtechmagazine.com}{Some—like Low Tech Magazine—search for simple, reusable, and energy-efficient solutions} to soften the blow.
One common solution is making tech that can be easily \emph{bootstrapped} to something useful.
From something small and easy to reuse.

\href{run:prose-vs-tweet}{Humans (antiquity to collapse) think in stories, preferably short ones}.
So what will be the most collapse-proof way to pass on sorting algorithm knowledge down the generations to bootstrap it back?
A story.
An explanation.
Quicksort requires scaffolding like array indices and pivots.
Mergesort doesn’t.

Much like the Greek and Medieval bards,
\href{http://users.cs.utah.edu/~elb/folklore/mel.html}{we programmers can disseminate the programming lore}.
As stories, not as index management minutiae.
\href{https://wikipedia.org/wiki/Sorting_algorithm#/media/File:Merge_sort_animation.gif}{We can also use visuals to transmit this lore}, but one has to somehow reproduce those.
Stories don’t need paper nor screens nor Internet connection.

\par\noindent\rule{\textwidth}{0.4pt}

The next time someone asks you about how some tech works.
Ask yourself: do you really understand it?
Like, at the level of transmitting the knowledge and reproducing it with other people.
And how do you think of it?
Not as hard-set algorithm steps or black boxes, I bet.

\emph{Explanations, not algorithms.}

\par\noindent\rule{\textwidth}{0.4pt}
Copyright 2022-2025 Artyom Bologov (aartaka).
Any and all opinions listed here are my own and not representative of my employers; future, past and present.

\end{document}
