Hacker News new | ask | show | jobs
by influxed 2655 days ago
My experience with written/spoken languages vs programming languages has been vastly different.

In my early 20s I picked up enough Spanish working in a restaurant to have conversations about simple topics/small talk, including native speakers at family dinners. Not much effort.

In my late 20s using Anki (SRS) I learned enough Russian to mostly understand radio broadcasts and television, but I never practiced speaking.

In my mid-to-late 30s I started learning Korean also using Anki, and it has been a grinding and slow process. After many months of on again/off again studying, I can pick out some words and use context to maybe understand what is being spoken.

Obviously the curve has gotten a bit steeper with each language being further away from English, but definitely a salient reminder about the ability to learn new languages with age.

Programming languages on the other hand have been a much different experience, not nearly as difficult to pick up. I haven't considered exactly why it's so different until now.

3 comments

> Programming languages on the other hand have been a much different experience, not nearly as difficult to pick up. I haven't considered exactly why it's so different until now.

Well, general purpose, procedural, imperative languages -- the first programming languages we typically learn -- are all essentially the same. In many ways, they're all re-imaginings of Fortran, COBOL, Pascal, ALGOL, BASIC and C. They're really different dialects that express ideas in basically the same ways. All languages that derive from this family work in essentially the same ways. Sure, they have different features, syntax, abstractions, paradigms, etc., but Python, Go, Rust, C#, Java and JavaScript are all essentially the same way of thinking and express things in nearly the same ways.

When you start to work with languages that increasingly deviate from that common general purpose, procedural, imperative paradigm, you start to see people struggle. That's when you're actually learning a different language. Established programmers have a notoriously difficult time picking up declared languages like SQL and XSLT, for example, and domain-specific languages like LaTeX can give others difficulty, while functional languages like Lisp seem to be either something you love or hate.

It shouldn't be a surprise why programming languages are easier to learn. The grammer is highly regular and the vocabulary is absolutely tiny. Even complex computer languages are toys compared to any spoken language. Plus with computer languages you have a machine that can tell you if you're doing it right at your beck and call all day long. No need to bother a real life person to practice.
Plus computer code is always in Latin/English script.

Even if you just study a Western European language you'll end up with extra characters. A bit further afield and you end up with alternative alphabets or for example Chinese characters.

> computer code is always in Latin/English script

No it isn't.

I'm working on an application now where many of the variable names use Norwegian specific characters and the bulk of the comments that I write are in Norwegian. Now that we have Unicode there is no reason why non-keyword text should be in English or in a Latin or Latin derived alphabet unless you expect people who can't read that language to maintain the code.

You can always count on HN to find the exceptions.

Do you have Norwegian standard libs for your application? Or is it just your business logic that's in Norwegian?

Fact is most of the code you find anywhere uses English keywords like "while" or "except", and the standard libs will use English names like "socket". The occasional non English code language is an oddity.

The language syntax is often pretty small for most programming languages, but the vocabulary (libraries) are often enormous.

Most professional programmers program as if they were speaking with a dictionary and thesaurus at hand and stopped in the middle of every sentence to look up a work or usage.

> Most professional programmers program as if they were speaking with a dictionary and thesaurus at hand and stopped in the middle of every sentence to look up a work or usage.

Which is probably why code that feels like you're reading prose is hard to come by