An experiment in writing 100 words a day:

Any programming language can be broken down into the primitives it provides and the means of abstraction it provides for combining those primitives in new and exciting ways. For example, many computer languages today have a “built-in” data type implementing the integers we learn in grade school math, like the number 2. Many languages also have a notion of a “function”, so that we can take arbitrary combinations of these integers and do some computation on them. For example, a sum function that returns the addition of two integers x + y. I’d argue that the means of abstraction are the more important features when evaluating a language as the primitives are either commoditized or merely reflections of what is amenable to the underlying hardware at that given point in time. Understand abstraction (and the various ways it has been explored in the menagerie of various languages written to date) and you will find timeless principles applicable to any language you encounter.