← Back to context

Comment by Skinney

13 days ago

> Languages that are easy to reason about would be generally in the category where you need to do fewer translations before you get to the way the program is executed

This is a very interesting definition of "easy to reason about".

To me, "easy to reason about" means that it's easy for me to figure out what the intent of the code is, and how likely it is that the code does what it was intended to do.

How it translates to the machine is irrelevant.

Now, if you work in an environment where getting the most out of the machine is crucial, then I understand. In my domain, though, dealing with things like allocating and freeing memory makes it harder to see what the code is supposed to do. As a human, I don't think about which memory to store where and when that memory should be forgotten, I just act on memories.

Functional languages, then, tend to be high level enough to not expose you to the workings of the machine, which let's me focus on what I actually want to do.