Math is cheap. Show me the code!

5 minute read

“Computers Speak a certain language, so there’s a fast moving language that you have to learn. And then once you have done that, you just explain the mathematics but in that language; and the big problem is that in maths departments across the world, we’re teaching people the mathematical ideas, but nobody is teaching them the language that these computers speak. Mathematics is not quite what it’s sold … We tell undergraduates that mathematics is this completely rigorous you know complete theory built from the axioms and in practice that’s not how mathematics is done; computers are quite picky because they do want to know what’s going on. So one challenge that we have faced is that people are slightly imprecise and computers don’t buy it … Before you wanna teach something to a computer, you need to understand it perfectly.” Kevin Buzzard

This post is a détournement of the phrase of Linux Torvalds: “Talk is cheap; show me the code”.

I adore math and I have no problem with it as a practice and I also encourage it. Everything can basically thought as math. All of logic even basic argumentation. It is certainly what makes a language consistent and what secularizes a practice from intuitive subjectivisms, providing the means to knowledge. But the position of math in relation with Computer Science, has been for a big period a hierarchical one. Math says: “Without us you would be nothing”.

In what follows I will develop a very short claim, that the combination of software and hardware we use has become itself a dominant infrastructure, where the essence of math as a dominant infrastructure of this or as holy grail which turns software into a higher art, is redundant and conservative. In addition, the software and the hardware I claim - the technology - is in it’s turn what makes math a higher art. What my moto tries to emphasize is that the computational infrastructure of modern computing has become so important that we have to make it part of our theory, legitimise and distribute it in the same way we do with math. In short the substitution of a matrix operation with an numpy matrix operation, may in a certain perspective seem to be the same thing, but what I argue is that the latter is what makes science possible (in the some way math can make science possible).

It seems sometimes like the mind-body division, which in a way becomes idealism offensive to biology, psychology etc. “Everything that is not a science doesn’t belong to the high arts”. And the same accounts for the position of computer engineering: at its best it’s a excellent craft. Math on the other hand was one of the higher arts and even today the people that produce novelty in math indeed are some of the smartest and most talented people in the world. Engineering in general has its predecessor to craftsmanship, which was was always respected but not given a high place in the academia.

Engineering practices where also related with corporate activity, where math was more related with state or institutional activity. This gave the latter sometimes, a French revolution kind of aesthetic of free thinking and of what moves humanity forward and the first the grim look of industrial of financialized corporate practices.

Computer science became science through a process of abstractions, analytical methods and math. One of the most notable achievements in computer were the complexity bounds, Turing machines and proofs of what a machine can’t do. Drawing from areas of statistics and experimental methods for physics, it has now constructed a big body of tools and technology for what is known as “machine learning”.

From my graduation thesis on GraKeL I had emphasized that modern python libraries become part of the infrastructure of knowledge in the same way that math does. And even in a more organic way. A numpy implementation of matrix multiplication has a totally different performance than a custom one. Numpy becomes organic science, in the same way that the facebook’s network and algorithms become an organic sociology. So it becomes fundamental to the research and the reporting of science, as a material condition becomes to an ideology.

As math is an infrastructure itself (as it happens with any language - python, numpy, scikit-learn, pytorch etc) and thus becomes part of a latent language which sometimes is only effective, by making things usable and feasible or performative. An example of that is automatic differentiation, a mix mathematics and computer science. If automatic differentiation wasn’t so successfully implemented in pytorch, tensorflow etc, neural networks wouldn’t be recognized as that important, as everybody would secretly or indirectly agree on the fact that it’s hard to use them in practice. Basically advances in small technical/mathematical achievements is what made neural networks train and work in the first place.

We shouldn’t argue that the bootstrapping of a field happens with math, although it comes with an idea where a researcher thinks of something and implements it in an simple way to demonstrate it. After that someone invests in it and builds an infrastructure, which in turn allows more math to happen. Someone can argue, that even demonstrating your math idea for the first time, is based on an existing infrastructure that allows you to do it. So this becomes a chicken and an egg problem, with no particular significance for science itself, which is the totality of this process.

Additionally specific implementation details are those, which most of the time make a concept work and lead to technical advantages. To state this in a different way, it is the way a problem is defined in terms of code, that makes it successful and thus well known. A common example for that is word2Vec where there are terms that are only there in order to make it work and some other elements in the definition of the problem are there to allow for optimal runtime performance. So I would suggest, that the more groundbreaking a paper is, the more it should report its technical details which make it work.

To conclude, in that sense the problem becomes political: how much science is hidden behind company walls and restricted from access to resources. If technology is part of science, then democratizing science means democratizing technology. Also it reflects the problem of non-reproducible science, because in case there is no scam, either the scientist didn’t specify a part of their code or the code implementation was that specific, that reproduction is destined to fail. By giving technology, a more respected part in science, science in turn can become more honest.

Updated: