
The language brain matters more for programming than the math brain? (2020) by smusamashah
When you think of learning another language, you probably think of French, Spanish, or Chinese. But what about Python or Java? The two processes might be more similar than you’d think.
A recent study published from researchers at the University of Washington showed that language ability and problem solving skills best predict how quickly people learn Python, a popular programming language. Their research, published in Scientific Reports, used behavioral tests and measures of brain activity to see how they correlated with how fast and well participants learned programming.
For the study, 42 participants were recruited to try a popular online coding course through Codeacademy. They were asked to complete ten 45-minute lessons of the “Learn Python” course. From the 36 participants who completed the study, they were able to determine rate of learning and how well the students learned the lessons.
Before doing online classes, participants did a battery of tests designed to look at math skills, working memory, problem solving, and second language learning ability. During their online programming course, the researchers were able to track how quickly they learned and how well they did in the quizzes built into the online software. They also completed a quiz and coding task at the end of the study to look at their overall coding knowledge.
The researchers where then able to compare the test results from before and after the Python course. The goal was to determine how much of the differences in participant Python learning could be explained by their performance on the different pre-tests: how much did memory, problem solving, and an aptitude for numbers or languages influence how quickly they learned to
72 Comments
Qem
I wonder if this finding hold across programming languages. I suspect the conclusions would be different for people programming in APL instead of Python, for example.
jp57
After I started my PhD program in CS/AI (late 90's), one of the faculty told me that the GRE verbal score was thing on the application most predictive of student success in the program. Of course, most applicants had perfect or near perfect GRE math scores, so there was no predictive power there. But the application also included the GRE subject test, transcripts, and letters of recommendation.
swayvil
Math is a subset of language, surely.
jboggan
I have found a fairly interesting correlation between people who are good at learning programming and people who are good at English spelling bees. Something about holding a lot of anecdotes and esoteric rule exceptions when performing an otherwise algorithmic process.
QuercusMax
This totally makes sense to me. I've always been a very good / fast reader, which has been incredibly useful in my programming career. I had a good SAT math score (710) but got a perfect score (800) on the SAT verbal (in the late 90s).
I remember when I first started working on my Master's project on wireless sensor networks, my advisor sat me down and said "I think I know a good project for you. I want you to print out the source code for TinyOS, study it for a week, and come back to me when you think you know enough to make these changes." This was a sort of formative experience for me, and ever since when joining a new project I made sure to take the time to read through the code to understand how things fit together.
abraxas
This mirrors my personal experience. My writing skills have been above average and my parents' presumption was that I would pursue some humanistic studies. I ended up studying software engineering and made a career out of it of almost three decades and counting. Meanwhile my wife who always had a "math brain" has struggled to learn to program at a decent competency level.
paride5745
Interestingly, I became better at learning human languages after learning a couple of programming languages. I was good at math at the beginning. I guess programming kinda bridged the gap.
p0nce
Programming education should have more humanities such as writing, sociology, epistemology and design, and not nearly as much maths.
canjobear
This makes sense for my path to math. In high school I was bad at math and good at learning languages. Then I started learning Python and realized that it was just like learning a language. Then at some point I realized math notation was just another language for expressing the kinds of things you could express in Python. Now I'm in a job where I do math every day and I read math textbooks for fun.
It helped that Python was meant to resemble natural language. I had learned C++ and Perl before but they never stuck, because I never made the connection to language. Ironically, since Perl was designed by a linguist!
odyssey7
And yet CS grad programs seem to care about only the math section of the GRE
contravariant
Learning mathematics is likely to benefit more from whatever a language brain is as opposed to whatever a math brain is.
divbzero
So maybe it makes sense that LLMs do okay at programming even though they lack the ability to reason?
deeThrow94
100% agree, I've been saying this for years. I'm terrible with arithmetic but great with symbols and relations. Recursion is also fundamentally linguistic, and although our internal "stacks" for processing it naturally are quite small, language remains the easiest demonstration of recursion in our daily lives.
Oddly, I also use spatial intuition when thinking about stuff like stacks and the shape of data structures.
karmakaze
This says more about our programming languages than it does about the brain.
I've always wondered why FP isn't more popular. I concluded it's because most folks don't like thinking like abstract math.
armchairhacker
Good code doesn’t just solve a problem, it solves it in a way that’s readable and modular.
I think the problem-solving part of coding requires math skills, while the organization part requires writing skills. The organization part affects the problem-solving part, because if you write messy code (that you can’t reread once you forget or extend without rewriting) you’ll quickly get overwhelmed.
Writing large math proofs also requires organization skills, since you’ll refer to earlier sections of your proof and may have to modify it when you encounter issues. But to me, math seems to have more “big steps”: sudden insights that can’t be derived from writing (“how did you discover this?”), and concepts that are intrinsically complicated so one can’t really explain them no matter how well they can write. Whereas programming has more “small steps”: even someone who’s not smart (but has grit) can write an impressive program, if they write one component at a time and there aren’t too many components that rely on each other.
flkiwi
I tell people all the time that the single greatest tool an aspiring lawyer can have is a background with programming, as the analytical and algorithmic mindset is FAR more important than being "good at public speaking" or any of the other base skills often cited as desirable for lawyers. I've also said the second greatest tool an aspiring lawyer can have (in my personal opinion) is a significant background in foreign language learning, as that is a skill that is closely related to programming, though a bit abstracted and coming from a different angle. I'm going to see if I can use this article to support that.
rowanG077
The article is extremely misleading, I dare even say almost malignant.
The study itself claims:
– fluid reasoning and working-memory capacity explained 34%
– language aptitude (17%)
– resting-state EEG power in beta and low-gamma bands (10%)
– numeracy (2%)
They take math skills to equal numeracy. The study itself implies this too. I disagree on a fundamental level with that. Math skills align much more closely to fluid reasoning than to numeracy.
del_operator
This is largely true, but also, the dynamic shifts depending on how learners engage with peers as they move from understanding to synthesis.
In small peer groups (“pods”) that debug and learn together, communication becomes a core skill—and that can actually change how math skills are applied and developed. Language doesn’t just support learning; it reshapes the process.
matt3210
You guys have more than one brain?
casey2
For learning a programming environment*
This has the effect of making programming easier, but don't confuse it.
scotty79
I feel like I'm using language part of the brain for almost everything. My performance at any task (except purely manual and automatic ones) drops to 0-15% when I can hear someone talking. Alternatively if I manage to focus on the task I immediately stop understanding what's being said.
shadowgovt
You know where we got a lot of really solid programmers before we had formal computer science degrees?
English majors.
ulrischa
The best programmers were good in Latin at school
eximius
I'm very curious what this math pretest looked like, whether it was "proper" high level math or, like, computing some trig problems. Folks who have aptitude with algebra or number theory or topology, I'd expect that to be correlated, but not to rote computational math.
mtmickush
I don't find this too surprising. The study itself was primarily just testing a students ability to identify syntax and remember what various functions do. I wouldn't expect math proficiency to help much in this area vs I would very much expect language to.
It'd be interesting to see correlations (language brain vs math brain) for how easy or hard it is for people to solve new problems with language after they already know the basics.
adamc
Strangely (I was a math major as an undergrad), I never doubted this. It just feels more like writing.
makk
Those long held assumptions were held by people who aren't professional programmers, right?
Because, if you do what we do, it's obvious that language > math for most of this stuff.
I'd go so far as to say that music > math for programming.
shayneo
As a self taught programmer with a Communication Studies degree, this definitely resonates. The ability to articulate the problem in code is kind of the starting point for most productive development work.
taeric
I'm strong in the belief that kids having lower reading scores is directly related to lower math scores. Learning to decode words is directly translatable to learning to decode equations. Down to some of my favorite math passages would include how to read something as it introduces a symbol or other construct.
linguae
(2020)
As a new computer science professor at a community college, this is a timely article for me that may end up influencing how I teach, especially my introductory programming course as well as my discrete mathematics course.
darkerside
Couldn't this difference be explained by the fact that the lessons were in English? If your language skills are poor, it's going to be hard to read the directions. You'll definitely be slower, which was the primary finding around language.
That side, I wonder if early programming was much more math heavy, and higher level languages have successively reduced that need over time.
jll29
There is no such thing as a "language brain" or a "math brain" unless you show experimentally that those bunch of neurons can be grouped into two non-overlapping regions dedicated to "language" and "mathematics".
Mathematics itself is a human-made formal language that can be bootstrapped from definitions and axioms of logics and set theory, which have to be given in human language first.
Experienced mathematicians read formal theorems written in Greek letters off their blackboards as if it was normal English, suggesting they think about it like it was just normal English. This is not to say they cannot also view in front of their mental eye visual representations isomorphic with that language if they chose to.
CobrastanJorji
Makes sense to me. "Language" is an oft-forgotten part of "programming language." I'm sure math skills probably would better predict, say, ability to do well in advanced theory classes, but programming doesn't require that. It DOES require learning a specialized language.
qwerty456127
This sounds obvious. To me it seems the majority of developers hardly use any math.
fjfaase
I did not read any mentioning of testing non-verbal IQ. Many math skills also depend on verbal IQ. Verbal IQ correlates strongly with academic performance and probably also with learning new programming languages. I personally have a much stronger non-verbal IQ than a verbal IQ. Often when I think about algorithms, it is all about abstract blocks moving around even before I have written a single line of code. I usually see multiple solutions in my head and often find myself being stuck because I cannot make a choice. I always takes some effort to code the solutions and weed out stupid bugs due to spelling errors mixing up varisbles, but then things work correctly.
hunkins
Interesting. I grew up most of my life overseas learning various different languages. Anecdotal, but most of the best coders I know are talented writers and often are multi-lingual.
janalsncm
> language ability and problem solving skills
First red flag is here. The title rewrote this to be language only. That problem solving skills are relevant is pretty obvious, but language less so.
I’ve been programming for most of my life and I don’t consider myself a very good speaker. My language skills are passable. And learning new languages? Forget it. So I’m skeptical. Let’s look at the study.
First of all, “math” becomes “numeracy”. But I think programming is probably closer to algebra, but even then it’s less strict and easier to debug.
> Assessed using a Rasch-Based Nuemracy Scale which was created by evaluating 18 numeracy questions across multiple measures and determining the 8 most predictive items.
Also, the whole thing is 5 years old now.
karmakaze
The article is from 2020. Recent LLM developments show that a model trained on math and code is better at coding than one that's trained on language and code without math.
gitremote
Absolutely. That's why people can be perfectly fluent in a programming language and a high performer at work, but fail an interview algorithms/leetcode problem in that language, as algorithms are math problems that programmers almost never see at work.
The recruiter labels an algorithm problem as a "coding" test, but it's a math test, and concludes that most applicants who claim to be fluent in a programming language can't code and must have lied on their resume.
For context, I don't mind algorithm tests, but I strongly disagree with recruiters presenting it as a coding assessment.
qwertytyyuu
Computer science definitely requires math brain
_ache_
That is now obvious, any LLM is able to code, and is usually very bad at math.
This alone proves that a good part of programming is linked to language not math.
Even if CS is sort of applied mathematics.
godelski
It think this is silly on multiple accounts. I'll claim that there's not real thing such as a "language brain" or "math brain." I'll also claim that most people don't know what math is, and that their evidence supports a "math brain".
Math isn't about calculations/computations, it is about patterns. You get to algebra and think "what are these letters doing in my math" but once you get further you think "what are these numbers doing in my math?"
A great tragedy we have in math education is that we focus so much on calculation. There's tons of useful subjects that are only taught once people get to an undergraduate math degree or grad school despite being understandable by children. The basics of things like group theory, combinatorics, graphs, set theory, category theory, etc. All of these also have herculean levels of depth, but there's plenty of things that formalize our way of thinking yet are easily understandable by children. If you want to see an example, I recommend Visual Group Theory[0]. Math is all about abstraction and for some reason we reserve that till "late in the game". But I can certainly say that getting this stuff accelerates learning and has a profound effect on the way I think. Though an important component of that is ensuring that you really take to heart the abstraction, not getting in your own way by thinking these tools only apply in very specific applications. A lot of people struggle with word problems, but even though they might involve silly situations like having a cousin named Throckmorton or him wanting to buy 500 watermelons, they really are part of that connection from math to reality.
This is why "advanced" math accelerating my learning, because that "level" of math is about teaching you abstractions. Ways to think. These are tremendously helpful even if you do not end up writing down equations. Because, math isn't really about writing down equations. But we do it because it sure helps, especially when shit gets complicated.
[0] https://www.youtube.com/watch?v=UwTQdOop-nU&list=PLwV-9DG53N…
ohgr
As a mathematician by trade, the math brain is a language brain. Mathematics is about abstract communication rather than mechanics.
Oh wait neuroscientists, explains it all. A statisticians favourite target for being unable to interpret data correctly.
725686
For the 99% of programming I come across, I need about 0% math.
hinkley
I’m old enough to have caught the tail end of CS being an offshoot of the Math department and I had a gaggle of fellow undergrads who were happy ours had been moved to the Engineering college and upset to know other students at other schools who were still in Math.
I don’t know about for learning but definitely for collaborating and mentoring. And it’s difficult to make a definition of mastery that excludes both of those, so I suppose after a fashion it’s right.
Despite being a professed lover of math, I scored higher on the verbal than the math SAT. There’s a lot of persuasive and descriptive writing in software, particularly if you’re trying to build a team that works smarter instead of finding more corners to cut.
quantadev
There's only a handful of key concepts people need to learn to understand the basics of 'coding'. If you understand what a variable is, how they're scoped, how step-wise transformations happen, and what loops are, you know 90% of "coding". I knew it at age 13 in 1981 doing "Basic" programming. Sure mastery of the art of coding does take decades, but that's just just adding polish, rather than capability.
Math is VASTLY different with VASTLY more concepts that are all much more abstract in nature and harder to understand the infinite numbers of different ways one mathematical construct can be applied to another. A person can "master" coding, but no one ever masters math.
So comparing math to language or to coding is silly. They're completely separate domains. Just because each of the three can encode and represent the other two doesn't make them similar in any way whatsoever.
JohnMakin
> There’s a lot of people out there who “aren’t math people,” but they just might be computer science people
This is beyond silly from my perspective. I know the field of CS is vast, but this seems to conflate programming with CS. My school was more theory heavy but there definitely came a point in certain paths of study where I didnt touch a line of code for a year, just pure math. I struggle to even understand how someone can think of this sentence – computer science at its core is underpinned by mathematics.
calebm
This is why women are so dominant in the software development field – because women are known to have higher language skills than men.
tmaly
I just started reading this. Only 42 people in this study and only 36 completed the activity. I am a bit skeptical about the findings with such a small sample size.
alexpotato
This reminds me of the following quote:
"Coding largely involves the 'logical part' of your brain. It tends to not include the 'language part' of your brain.
This is one reason why comments you add to code are so useful: they force you to engage both parts of your brain and therefore get better results.
This is also why when you go to explain a problem to a colleague, you often have a flash of brilliance and solve the problem: you are reframing the problem using a different part of your brain and the different part of your brain helps solve the problem."
I'm sure some readers here will say this is preposterous and there is no such thing as having "two parts of your brain".
To them I suggest watching:
1. "You are are two" (about people with their corpus callosum being severed)
https://www.youtube.com/watch?v=wfYbgdo8e-8
2. "Conscious Ants and Human Hives" by Peter Watts https://www.youtube.com/watch?v=v4uwaw_5Q3I
TheGrognardling
I certainly don’t dispute the empirical validity of the findings from the study – but there are important nuances to consider as well. I am certainly more naturally-attuned to languages as-far as language-learning and reading than mathematics, but I have also found myself understanding more mathematical and theoretical linguistics as well. I also love programming.
It wasn’t until high school, when I tested-into the highest math class that the school offered, that I began to unlock (with some initial struggle) more logical and procedural reasoning specific to mathematics that I had always done well in, but never explicitly went above-and-beyond in, despite hints of such in arithmetic competitions that my school would hold and that sort of thing. I just think my brain works well for both the linguistic aspects of programming (more naturally) and the computational problem-solving aspects of programming. Certainly there are individuals who have strengths in both cognitive aspects, despite being more naturally-attuned to one versus the other, at least presumably.
Perhaps this shows a cognitive profile that has natural strengths in both "brains", or maybe this highlights limitations of the article's potentially narrow definitions of "language" and "math", implying a more complex intellectual landscape.
Interesting findings nonetheless.
resters
I've noticed that the people who initially grok programming language syntax are often better at learning new symbolic systems, but I think this is actually due to a persistent type I error their brains make that is OK for early learning.
People who end up being the best programmers have a deeper appreciation for semantics and information flow, but tend to commit more type II errors early on, making them inferior intro CS students.
Much of the CS curriculum (and typically also the required maths curriculum) in universities still favors the first type of student over the second, driving out the most capable and creative minds.
osigurdson
If you are bad at math, don't assume you will be bad at programming. Similarly, if good at math, don't assume you will be bad at programming.
If you try programming and you don't like it chances are you won't be very good at it.
randerson
As an accomplished programmer who is not great at language nor math, I feel like my "modeling brain" is the key to success. I can envision all the aspects of an architecture, its data shapes and program flow, making it obvious which data structures and algorithms to use, or where to look for a bug. I did spend a lot of time naming things though… until ChatGPT replaced the need for a thesaurus.
hirvi74
Isn't math somewhat a language in of itself? If not, a language has surely derived from math.
tgv
Hold your horses. The summary of that article does not offer any proof of what the title says.
* It's a small sample, and they did not analyze the people who didn't complete the course. That's dubious. Those 6 could have had a massive influence on the outcome.
* The summary does not present the actual numbers. These are: "fluid reasoning and working-memory capacity explained 34% of the variance, followed by language aptitude (17%), resting-state EEG power in beta and low-gamma bands (10%), and numeracy (2%)". Note: numeracy, not math.
* The test result was only partially programming related. 50% consisted of the results of a multiple choice test with questions such as What does the “str()” method do?. Linguistic knowledge indeed.
* It's about completing a 7.5 hour Python course. That's learning indeed, but only the very beginning, where abstraction is not in play. The early phase is about welding bits of syntax into working order.
* The numeracy skills required are very low for such tasks, as the tasks are simple, and mainly require thinking in steps and loops, whereas numeracy aptitude is generally measured on rather problems involving fractions.
Edit: the paper uses the Rasch-Based Numeracy Scale for this, which seems to involve estimation and probabilities.
* 17% explained variance is a rather minimal result, and you cannot easily compare factors in such a small design, even if the other one is only 2%. That's a rather hairy statistical undertaking.
* Linguistic expedience might be explain the speed with which the course was followed, since the instruction is, obviously, linguistic. Hence, this factor is not necessarily related to the actual learning or programming.
* The argument from beta waves is clutching at straws.
* The argument that "perhaps women should have more of a reputation for being “good” at programming" because they score better on tests, is –however well meant– utterly ridiculous. It reverses correlation to causation and then turns that into a fact.
* That linguistic skills are useful for programmers is widely understood. However, this is not because of the actual coding, but because the coder needs to understand the environment, the specs, the users, etc., all of which is transferred via language.
* And of course, the statistical result relies on Null Hypothesis Test Significance, which is rotten in its very foundations.
* Note that the CodeAcademy course "Learn Python 3" is 23 hours in 14 lessons.
msvana
At the beginning, the article mentions correlation with language skills AND problem-solving. Focusing only on language skills in the second half is misleading. According to the abstract of the original paper, problem solving and working memory capacity were FAR MORE important.
Also, the article doesn't mention "math skills". It talks about numeracy, which is defined in a cited paper as "the ability to understand, manipulate, and use numerical information, including probabilities". This is only a very small part of mathematics. I would even argue that mathematics involves a lot of problem solving and since problem solving is a good predictor, math skills are good predictor.
BXLE_1-1-BitIs1
Started programming over half a century ago. The insurance company I was working for gave me a joint life actuarial evaluation problem for which I wrote a Fortran program, picked up from a book. My uni student buddy let me use his ID so I could drop decks into their IBSYS. Turnaround was about a day. My career as a professional manual reader began.
Well yes, my high school maths were in the high 90s – more than my language scores in French, German and Latin with some off curricular Russian. I guess being a polymath helps.
Unless you are doing an engineering or mathematical application you don't need much math, especially as you can just call a function in the vast majority of the time.
I did a number of software products and operating system modifications without using any math beyond arithmetic operations.
I was a resource for other programmers including the odd math PhD.
dismalaf
Notwithstanding Puritanism like "language is maths" or "logic is maths" I definitely agree.
I learned to program when I was a kid and my maths skills were super basic. Programming can almost be distilled to something as basic as "if this, then do that", plus "do this x times". Then read API documentation and call functions that do what the docs say.
With just this basic understanding you can create a lot of stuff. The maths is obviously the foundation of computation, but to be a programming language user and build stuff, you don't actually need to understand most of it.
In university I did eventually do some math-y stuff (econ degree so prerequisites in stats, maths and even CS) and it helps with certain stuff (understanding graphics programming, ML and LLMs, plus knowing maths on its own is useful), but I still don't feel it was strictly necessary. Language and basic logic is enough IMO.
Tlousebenza
[dead]
Ygg2
Whenever encountering such sensationalist headline, it's good to remind ourselves of "[Replication needed]" tag.
rconti
The most obvious way in which I think "math" and "programming" are related is the way they're taught; by repetitive performance of problem sets. I got frustrated in math for this reason; it takes a lot of energy to sit and focus on a whole bunch of hard problems that all "look the same". It was too easy to do 1 or 2 and think "okay, I got it" and then move on, not realizing the repetition was the key to memorization.
I feel the same way about starting learning programming. Repetition, repetition, repetition, until you "get good".
literallyroy
Is 42 participants statically significant?
mrinterweb
Personally, I find ruby one of the most readable languages because of the language and its DSLs. To be fair, the DSLs are very readable, but the lines can blur between what is ruby and what is a DSL.
jackcosgrove
I had to scroll through most of the paper to find this.
> All participants were right-handed native English speakers with no exposure to a second natural language before the age of 6 years
Which removes a confounder that Python mimics English syntax.
Still if this is a typical study recruiting thirty-some undergrads as subjects it's probably not generalizable, or even replicable given the same experimental setup.
vlovich123
Counter example: I can pick up any new programming language within 3-6 months and be proficient but it takes a year to pick up some minor fluency in a human language and I still have yet to obtain full fluency in any other language as an adult.
kjellsbells
It's funny that this popsci article instantly succeeded in dividing the HN commenters into math/not-math camps. Porque no los dos?
Programming is the manifestation of thought through the medium of a keyboard and screen. If you are a clear thinker, if you can hold multiple things in your head at once, if you can reason about things and their relations, well, you can be a strong programmer.
It seems wholly unremarkable to me that someone new to Python would not be fazed by it, given it's fundamental basis in words (print, if, etc.) Someone with a background in languages, who can think well enough to explicitly or implicitly pick up the structure of the language, is gonna do just fine. "Oh, so when I see a while, I need to end with a colon" isnt so different from "when I shout, I need to add a ! at the end"
(Java gets a special place in hell for forcing "public static void main" on every beginner.)
Math only really comes into it when you want to reason about things that have a history of being manipulated mathematically, typically for reasons of convenience. You could probably invert a matrix in SNOBOL, but its a lot easier to pull out lists and arrays and linear algebra.
In other words, lets see the follow up paper to this where Python newbies are asked to model the trajectory of a bead on a wire and see how they do.
rerdavies
The language brain is more important than the math brain for reading the first lesson on how to program in Python. Fixed that for you.
Does answering a quiz on the contents of the first lesson on how to program in Python really encapsulate anything concrete about who will and will not be able to actually program in Python?
I've always been disturbed by the disconnect between "first lessons" on programming languages and how I personally actually learn programming languages. I can't help thinking that the researchers have measured something else other than whether people have learned to program.
FilosofumRex
You can make any subject "mathy", because there are relations, ratios, correlation and patterns in everything. My favorite example, is how Chomsky mathified linguistics, and made it esoteric, undecipherable, uncomputable and thereby linguists unemployable, even in research labs.
But as a matter of practice, teaching programming to engineers/scientists, even to mathematicians, is an order of magnitude easier than teaching math to CS folks. Simply quiz job candidates on fp arithmetics, and see how many fail miserably.
kevin_thibedeau
I'd posit that this is part of why Pascal lost. Making and/or the same precedence as */+ only appeals to mathematicians and gets in the way of ordinary uses for Boolean expressions where you want them lower than the sub-expressions they concatenate in a language-like manner.
twodave
In my experience, language skill may or may not matter for programming, but it certainly matters for understanding a problem space. You can be a great programmer, building the wrong thing because you didn’t understand the requirements or see the gap in them and know to ask the right clarifying question, etc.
Lately I’ve also felt language skills matter when writing concise, specific AI prompts. This has become a useful part of my programming workflow in, I suppose, the last year or so. Before that it was knowing “how to Google” well, but that’s less language-dependent in my opinion.
PicassoCTs
I guess its the ability to tell long, forking stories, traversing several abstraction layers. Dante Alighieri would be loving this! Its the ability to walk through a mental palace, room for room again.