The obscure sorrows of R, Python and JavaScript
On R, Python and JavaScript as isolated countries — and why Python might finally unite them
Gooood morning kits!
Anyone who knows me is painfully aware that I am a uncurable logophile, and for todays chronicle I'd like to talk about languages and how they affect our thinking.
I'd like to start on weird note by introducing you to one of the best things that the internet has to offer; The Dictionary of Obscure Sorrows - a compendium of words that exist only in certain cultures and subcultures that exist to capture and insanely specific thing.
Some of the entries have illustrative videos set to music, and here is one of their most beautiful ones, Parô:
This morning, I had a discussion with a friend who works in academic data science. They are a subscriber of funfun.email mostly because they knows me personally, rather than because it naturally found them or because they can relate to the chronicle - my talk about TypeScript and database tooling is alien to their R-intesive university world.
While I naturally speak in ways right now that appeals to the existing FFF audience because I belong to it myself so to speak, and that is fine, but in the long run, I have a vision for Fun Fun Function that it unites three groups:
Frontend developers
New near-developers
...and a group I have not talked about much yet:
The R academics
A vastly over-simplifying charicature would be that that one group wields JavaScript, one wields Zapier and one wields R. These are three vastly different groups, almost like different countries.
I am interested in these three groups in particular because I consider them together to be incredibly important to the quest for more quality truth, because of their overlapping impact in academics, presenation and everyday access to data.
But I am also interested because while all three groups have a lot in common and there is a massive potentional for knowledge and technology exchange, the three groups might as well be living in completely different continents. They have separate ecosystems, thinking, language, social circles, news sources - basically it is three isolated countries.
This is a massive amount of duplicated work and loss of potential productive discourse and learning. My hope with the Dawn of the Data Developer initiative is to put a crowbar at a weak point in this ecosystem apartheid and crack it open.
Making Python an
actual lingua franca
My working strategy is that Python could serve as a bridging language between these three groups. Python is, in practice, not quite yet a Lingua Franca of data development, but I think if we are to have one, I think Python is a good candidate:
Python is somewhat near JavaScript in syntax, so it's easy for web devs to pick up.
Python is a language hailed as a good beginner language, so it is relativelty approachable for a Zapier professional as their first programming language.
Pandas, which is the most challenging part of learning "Data Python" is essentially modeled on R, which makes much of it familar to R developers.
It did not surprise me that my data academic R friend expressed wanting to learn Python during the discussion, having heard this from other people with their background, but what I wanted to muse about today the motivation they expressed:
They said that many people that they respect highly in data science and engineering are Python natives.
🧐 hmmmmmmm
This was a interesting motivation that I could relate to myself, but in another domain - I've been learning a lot of greek words because I've found that people with Greek heritage has a (to me) novel way of thinking that I find refreshing and inspirational.
And, like almost every goddamn sentence anyone ever says within 8 meters of me, this made me contemplate the general abstract concept of it.
The Sapir-Whorf hypothesis
The Sapir-Whorf hypothesis in linguistics suggests that the language we speak influences our cognitive processes.
The hypothesis was introduced in the early 20th century and has been a subject of ongoing research since. While the more extreme versions of the interpretation has been discredited, research has indeed shown examples of:
🎨 Color perception: Some languages have fewer color terms than others, which may affect how speakers of those languages categorize colors.
⏰ Time concepts: Some languages express time differently (e.g., some Aboriginal Australian languages use absolute directions instead of relative time expressions), which may influence how speakers conceptualize time.
🧭 Spatial reasoning: As mentioned earlier, some cultures use absolute directions (north, south, east, west) instead of relative directions (left, right), which appears to enhance their spatial awareness and navigation skills.
That third one is a particular fascination of yours truly, and I spent another sunday morning diving into the work of cognitive linguist Stephen C. Levinson and his colleagues at the Max Planck Institute for Psycholinguistics:
Some cultures, like the Guugu Yimithirr aboriginal people in Australia, use cardinal directions (north, south, east, west) instead of relative terms like "left" and "right".
I.e. They might say "There's an ant on your southeast leg" instead of "There's an ant on your left leg".🐜
🙀 In addition to relative and absolute reference models, there are also cultures that primarily use Intrinsic Reference Systems - using features of the objects themselves, like "at the front of the house" or "at the nose of the plane".
There are some wild implications of these systems:
🦅 People using absolute reference systems have been shown to have an incredibly accurate sense of direction, even in unfamiliar environments.
🧠 These differences in spatial reference systems affect not just language, but also memory, and perception (and possibly dreams)
🤔 I wonder how we would have talked about political blocks if we used cardinal direction - how would we say left-wing and right-wing? Would mainstread political categorization vocabulary be more multi-faceted?
🤯 Left and right is something that I am so used to that I consider it "natural", and I love learning things like this which shatters my assumptions about what is "natural" or "intuitive" ways of thinking about space (and time).
Native speaking in R, JavaScript and Python compared
I entertained myself by testing Claude Sonnet by asking it to give an example of how "native speakers" of R, JavaScript and Python speakers would approach analyzing and visualize a dataset of customer purchases over time:
1. The R native below immediately thinks in terms of data frames and the Tidyverse ecosystem. They're likely to approach the problem with a statistical mindset, focusing on aggregation, visualization, and potentially running statistical tests or models on the data:
2. The JavaScript native below might immediately think in terms of client-side interactivity and visualization. They're likely to approach the problem with a focus on creating a dynamic, potentially interactive visualization that could be embedded in a web page:
3. The Python native below might approach the problem with a more general-purpose mindset, using pandas for data manipulation, matplotlib for visualization, and potentially scikit-learn for predictive modeling. They might be more inclined to think about how this analysis could be integrated into a larger data pipeline or machine learning project:
There is always inherent approach bias that is introduced merely through our ecosystem, norms and tools, and learning a different world will always change you a bit, even just looking briefly. I remember how I started writing JavaScript distinctly different after I spent just one weekend learning Haskell while hung over (don't watch that video, its really bad for you):
Thinking (wildly) different
Working in a tool that one is familar with and wield comfortably brings many benefits, especially in productivity, but it also sets one in ones ways. One preconception and limitation of my own mind that has been rattled a little bit lately is the separation of data and code.
Pkl by Apple is an interesting alternative to JSON and YAML that introduces some logic constructs into the expression language itself in very interesting ways (there is also an interesting meta observation in this video how weird Apple are about using Github, revealing a bit of Apple culture in how commits are made)
The game engine Bevy that is currently gaining a lot of traction has some very interesting ideas that blurs the line between asset and code, that I find to be a novel re-think that could have potential application in data development as well:
Unity through common language
But the most important aspect of having a shared language is that humans just speak to each other more. When you speak the same language, you are simply closer. My partner speaks 7 languages pretty fluently, and I am constantly envious how it allows her to form instant bonds in situations even when the counterparty speaks english well.
I had a period where I was in Brazil often, and I often pushed young programmers that the most important programming language is English, because it opens up a world of career mobility and learning resources.
That period made me appreciate the fact that Swedish is such a small language that learning English is effectively mandatory. I am also grateful that I wasn't born in a country where English is the overwhelmingly dominant language, because I would likely not have learned more than one language if that was the case.
Before you go...
Do you have a personal story about how being multi-lingual (be it natural language or programming) affected you? If so, please to hit that reply button - I don't always have the time to reply, but reading your replies is always current favourite type of procrastination.
🚨 And I want to make the smooooooooothest sponsor segueway ever here for CodeCrafters, since they have guides in C++, C#, Go, Java, JavaScript, Kotlin, Python, Ruby, Rust, TypeScript and ZigI (whatever the heck a Zigl is).
If the idea if learning a new language through building your own Redis, Git, SQLite, Grep, BitTorrent, HTTP Server or DNS Server appeals to you, you can support FFF while supporting yourself by signing up through fff.dev/codecrafters for 40% off (but make sure you ask your manager to pay for it with your L&D budget, it's what it's there for!)
💛 I hope that something little peculiar happens to you this Monday. 🐑











