Jacobo Martín

Software writer

Thinking barefoot

Great picture. Van Gogh’s A pair of shoes. Worn out at the moment of being portraited, let’s stop for a second to notice that, once, those shoes were new. Can you make them out in that state? They were clean, new, unused, undeformed by any personal and unique way of walking… Waiting for someone to bring them to life, making them interact both with a foot and a floor, like a chaperone… Then Van Gogh entered into the picture and… we know the end of the story.

My shoes and other animals

I have two dogs. I usually walk them through the countryside, so I need a good pair of trekking shoes. In fact, I need a new pair more often than I expected when I bought my first ones: by then I was expecting them to last much longer. The ones that I’m currently using, bought about one year ago, although comfortable, are in ruins. While contemplating them, it seems quite impossible the huge transformation that they’ve gone through in such a relatively short span of time. In my mind, I can see them clearly when I used them for the first time: they were beautiful, fresh and robust. Obviously, they didn’t crystallized into what they are now in one single day. The shoes seem to age faster than our feet do.

The shoes age faster than the feet. This sentence left a wake in my mind containing an analogy between thinking and walking. Do we use mental shoes when we think? What are the models we, consciously or not, wear in our mind? When we write code, are we using the proper shoes for each task? Not all shoes have diamonds on their soles as in that cool song by Paul Simon.

The brains of a model

Mental models can be prisons if we see them as more than what they really are: tools. When we start seeing tools as paradigms, we’re more easily prey for becoming followers of a cult.

Don’t get me wrong. Models, when used, can be immensely helpful and enlightening in multiple ways (although I’m not fond of acronysms due to their excessive use for everything, I like the one used by Scott E. Page in his book The model thinker, REDCAPE, that describes the categories of uses of models: Reason, Explain, Design, Communicate, Act, Predict, Explore).

However, models also can use us inadvertently, becoming prisons for the free-thinker, if such a concept really exists. I mean, can a free-thinker exist as such? Is that really possible? To think freely? Applying this to our shoes analogy, why not think barefooted? Wouldn’t it be more honest and effective, something like a first-foot experience?

Trains of thought

Perhaps, at least to the average man, we’re always jumping someone else’s train, as in that song from The Cure. The freedom, thus, in reality, would be limited to deciding when to jump, which train to choose, etc. So just aiming at being a thinker is enough and the freedom comes naturally as an effect of thinking; so free-thinking is not a special way of thinking but a redundancy.

Talking about the devil, all these got me thinking… thinking of one of the most red-hot debates of lately in the software Programmers’ community, which one is better: functional (FP) or object-oriented programming (OOP)?

Is it just a shoe fashion debate? Or is there more to it, something more substantial? When seen through the lens of cosmetics vs intrinsics, sometimes you can end up with apparently different snippets of code that, intrinsicallly, do exactly the same thing. And vice versa.

Lots of literature/podcasts have been written/recorded about this OOP vs FP debate. Of all of them, perhaps the best synthesis lies in how Brian Goetz ends one of his talks in which he enters into this debate:

Don’t be a functional programmer; don’t be an object programmer; be a better programmer

Brian Goetz

So remember: there are feet inside every shoe, and it’s not always necessary -nor healthy- to wear shoes. Think before picking the shoes you’re going to wear. If you have to use very frequently a pair of shoes due to the type of soil you usually have to step on, take some healthy time whenever possible to walk barefooted, lest you come to a point in which it becomes harder for you to distinguish between the feet and the shoes.