I think I’ve discovered why I have such a hard time learning human languages, but a much easier time learning computer languages. Essentially, all computer languages are built from the bottom up. For example, computers start out with simple instructions that are easy to perform in hardware and implement as sequences of bits. There is generally a small set of instructions (RISC) like addition, subtraction, comparison, jump that can all be optimized to run as quickly as possible. Every computer language is built by saying “given these primitives, what useful abstractions can we build on top of them?” So it’s a bottom-up approach, much like what mathematics has become after the great formalization projects of the last few hundred years. And we all know exactly how many scientific and technological marvels have been created due to this “on the shoulders of giants” approach.
On the other hand, human languages are built by looking at the world around everyone and giving names to everything one sees. Fundamentally, it’s a top-down approach since we didn’t/don’t know the basic structure underlying the things we see. It also has the side effect of making the basic vocabulary much much larger, which I have a hard time with (bad at memorization, good at deductive reasoning - which is why mnemonic devices are so helpful to me). If everything could be reduced to just some fundamental “bits”, our basic language could become a lot simpler, easier to deduce, and possibly universal.
I believe that there will be a cross-over between these two worlds sometime in the mid-term future (50 or so years) and that this intersection will lead to discoveries in both the technical and the social realms.
Okay, time to stop procrastinating and finish studying for my Chinese test.