I knew this distinction for a while. It goes back to when I started learning how to implement algorithms in various languages. Back then, I was still in middle school. And as is the case with many thoughts I had when I was young, they resurfaced back years later with much perceived depth to them. The depth was already there I was just focused on something else.
What I knew is that human language was one where ambiguity can be raised by a context reading so we allow imprecisions in the formulation for the sake of brevity. What I learned is that the language of machines didn’t have that feature and formulation had to be precise at the cost of brevity. In that regard human and machine languages stand on two opposite sides of a spectrum. It was clear to me that what was natural for us is unnatural for machines and vice versa. This exact spectrum was used to classify coding language, where a low-level language was one closest to machine language and a high-level language was close to the human one.
In retrospective, I can say for sure that I used this distinction countless times in my explanations within discussions that didn’t necessarily have to do with machines. Which proves in some sense that I saw more to it than just a construct to classify coding language in computer science. In fact, I believe that I abstracted those as details and thought of it in a broader sense.
To understand exactly what I made of that distinction, we need to leap forward up to the period where I engaged with topology and more importantly the reason behind such engagement. To be honest, I already had a thing for topology. I don’t know if it is the word or its broad meaning but something in me resonated well with the topic. On a more rational account, I learnt a great deal of the language used to describe physics during my training in academia, still I felt that there were hidden things — a more fundamental grammar — that I wasn’t aware of which made the difference between those who can do impactful research and those who are still learning. The language we were taught had to be accessible and thus can be termed fairly as high-level. However it was clear that research required insights residing at a deeper level of communication/understanding. At that level there was topology among many other things. When looked at from a historical perspective, topology was the product of a program aimed at unifying the various parts of the mathematical language by studying the structures that give raise to their high-level concepts. We see that again I had to deal with the distinction which lead to think that I should give it the attention it deserves.
The most distilled version of the definitions regarding the elements of our distinction can be put as follow. Brevity and ease of communication are the hallmarks of being high-level. A language with those features enables exchanges where one can fairly formulate complex interesting thoughts in a very concise manner without having to go through a laborious explanation. On the other hand, precision is the indication of being low-level. A language with this feature exposes every detail in the articulation. The formulation can be long but it is made of the simplest objects you can find.
It is clear that we are playing with a relative scale and that what matters is the relation which reads as, the concisely expressed complexity at the high-level is made out of a complex combination of low-level simplicity.
Now that I think about it, this connects to something quite interesting. Western and eastern philosophies differ in one major thing, the first strives for rigor and precision while the second treats of vague things. This observation made me think that for one to harness the world’s wisdom, one needs to come in term with both tendencies and see them as complementary, as necessary. If we term the eastern tendency as high-level and the western one as the opposite, we can extend the last conclusion to say that mastery comes from the ability to handle each level individually and both in combination.
Suppose we want to understand something. The fact that there is some knowledge to be desired tells us that the comprehensive picture isn’t available yet and by our definitions we have a problem. We know enough to say that there is a piece of knowledge lacking to connect our actual state of knowledge with the something we want to understand. Still we had to formulate the need to begin with, right? The very first formulation is something quite close to our base mode of cognition meaning that it ought to be high-level. Attaining the desired understanding become a problem of finding the correct low-level structure that enables the high-level description plus solves whatever problem that did breed the interest. It is clear that we generally start with a simple question which upon investigation we end up with a whole framework of understanding where that structure find a natural solution. The framework was engineered in a way that answers the question itself.
Something to think about here is that unification is a problem where the solution is a framework in which every fundamental question finds a natural answer.
We can think about the opposite situation where suppose we understand something. The understanding has to take form in some precise language which according to our scale would be the low-level description. Of course there could exist a lower level which can explain the possibility of that understanding itself but all we need here is a sufficient descriptive level that has enough available to satisfactorily answer the question about the “something”. That being said we are left with the question, we can try to come up with a high-level language to speak about topic but why would we do that? There are a number of interesting perks. One of the most obvious ones is that, suppose the two parties in the conversation know about the low-level description, they get access to a high-level speech where they don’t have to drag every little detail but speak about the relevant things only. Another perk that also helps the previous one is that, it makes it possible to find patterns across domains. Patterns are found when performing the ascend from low to high. The abstraction of detail forwards the core structures which may be found to similar to already existing structures in other domains. We can then effect an experience transfer from the the already known domain to the of interest. Thus, we gain high-level terminology in addition to methods of handling problems at that level of the description. This process is actually referred to as “coming up with an analogy”, which is just a mapping between two domains of experience.
There is more to say about mapping two domains of experience which I will differ to a future post treating of metaphors. Which unlike what most people have in mind, these constructs are more than linguistic embellishments. They help us navigate the world purposefully and we can make the case that in practice, the way we describe what is around and what is in us stems from our experience of fundamental domains — space, matter and pattern — and how we map it to the rest of our experience. This means that we fundamentally function that way and necessarily, all we do is constrained by it. It is a good thing, because now we have something to rule out all what is not and think in term of what is at all times. Thus, regardless of the level, you shouldn’t be surprised that you find familiar constructs across the scale which decompose into, build on and simplify to each other.
My attempt here is to showcase how the adoption of a meaningful distinction can lead one to the most fertile grounds of inquiry and reveal the most interesting connections to layout and study for the benefit of one’s understanding.