Programming languages really are just languages, aren't they...?
It seems a little different, though, because there's the linguistic aspect -- i.e. learning the formal grammar of the language -- and understanding the "way to think" -- this computational, algorithmic thinking, algorithmic, "constructivist" thinking.
But isn't that true for pretty much anything? For example, mathematics definitely has a loosely defined "language" (I mean, there are subsets that are formalized which claim foundational and expressive power over a large part of mathematics, namely mathematical logics with set theory, category theories, type theories... but that's neither here nor there), but it's mostly about a way of thinking that transcends any particular way of writing it. It's an insistence on rigor and certainty, and a reductivist way of thinking that attempts to capture global complexity by working locally and inherently using conscious processing at least on the surface (the unconscious mind has a huge role, but mathematics is filtered and written by the conscious mind) and scaffolding up.
For another example, anyone who has ever even attempted to learn a different language has faced the fact that there are certain words that simply don't exist in another language. That's because the native speakers of that language literally think differently than them -- i.e. they slice up the cake differently than you do. For instance, in Korean the word for soybean is pretty much the foundational word for all beans, in the sense that black beans are just "black soybeans". Every bean is just a different kind of soybean.
This is a relatively easy one because the understanding can still be expressed in terms of English language, and therefore the Korean understanding of beans can be understood in terms of the English way to understand things (it sounds complicated, but just know that there are two layers: language and understanding, and we're talking about two versions of these things represented by their language, English and Korean).
This is all precisely captured in what logicians and philosophers term as the duality of syntax and semantics. Here, syntax refers to literally the language itself: the words, the grammar, the sentences. Semantics would then refer to the understanding beneath which is expressed by those words.
Hypothesis: Perhaps language learning (as in English, Korean, etc) is a little bit different because there seems to typically be good syntactical mappings between two languages. Everyone seems to split the cake basically the same way, so to speak. If there's a slice that's a bit weird, that slice can often be expressed in terms of simple algebraic combinations of other slices... addition? Union? Subtraction? Complements? Linear combinations? Whatever the proper algebraic structure is, whether we end up talking about linear combinations, sigma algebras (actually the category theorists probably have a thing for this already, so we can talk about some really general structure that fits the bill. Maybe consult math3ma), the point is that some language can be understood "in terms of" another language and vice versa. And this "in terms of" is a "simple enough" transformation (linear? continuous?).
But then again, is it really?
No comments:
Post a Comment