
Code is not a foreign language, and high schools shouldn't treat it that way - bookofjoe
https://www.nytimes.com/2019/03/17/opinion/code-foreign-language.html
======
sorenn111
It is clearly not a foreign language, but it might honestly be a better
substitute for most students' time. In the US, a foreign language can be a
great thing to learn, but with our failing math and science teachings, perhaps
shifting towards CS instead might be a good idea for helping many high school
kids prepare for a STEM dominated job market.

From the article: "It stems from a widely held but mistaken belief that
science and technology education should take precedence over subjects like
English, history and foreign languages.

As a professor of languages and literatures, I am naturally skeptical of such
a position"

Of course a professor would refer to this as a mistaken belief, but what
evidence is there for it? CS has a much better chance of helping one find
gainful employment and a future with many paths over high school history,
english, and foreign languages.

~~~
citizenkeen
It makes me sad how little we value education beyond gainful employment.

~~~
B-Con
The fine arts are great, after you've put food on the table and a roof over
your head. Most people are much happier to have stable employment than
esoteric knowledge. The economy and society are better for it too.

School's primary purpose is to prepare people to be functioning members of
society.

~~~
holy_city
It's sad that people equate employment to being "functioning members of
society." Your job is just one thing you do in society.

Education is about teaching children how to think, communicate, and act as
much as giving them specific tools for future careers. Never mind the plethora
of studies that have found links between arts education and performance in
other educational/vocational areas. It's hardly esoteric.

~~~
dwild
> Education is about teaching children how to think, communicate, and act

CS is incredible to teach how to think. Algorithms, using logic to solve
problems, decomposing a problem, etc... Theses are all skills that make you
think, that push you to UNDERSTANDS better. Personally I never seen my college
classes as nothing else than learning to learn, because that's computer
science. More often than not, the lack of information given by the teacher
wasn't a proof of incompetence but a way to test our capacity to search and
discover by our self.

Sure I learned a bit in my french classes, sure I learned a bit in my history
classes, but I never ever learned to think in any of theses classes except CS.
I only learned to apply theses skills.

------
Upvoter33
No, not any more than math or statistics are. Replacing a foreign language
with a programming course is like replacing a music class with a math course;
you may think it's a good idea, but it's not because it's replacing the same
type of thing.

~~~
mywittyname
But how do we get law makers (or, more importantly, their constituents) to
understand this? There's a huge push towards vocational education and parents
thinks that "coding" is something their 10 year old can learn then apply to
make buckets of money. Plus, you know, it's called a programming "language."

If I personally had to chose between a foreign language course, or programming
one as a learn-but-never-really-apply course for my child, I'd push them
towards the foreign language.

~~~
ghaff
I dunno. It's hard for me to see a year (say) of a foreign language that's
never used outside of that class as having a lot of value. As I dimly remember
my high school language classes, you didn't even really get into literature
and culture associated with the language until later on.

On the other hand, a year of a language like Python probably has some value in
teaching logic and problem-solving even if the student never really programs
in the future.

~~~
mywittyname
I feel like teaching coding is a waste of resources, for several reasons:
there's a glut of material readily available for individual study; what's
taught will be largely irrelevant when the student graduates; and importantly,
it will likely be poorly taught. Good CS teachers can probably get jobs paying
3x as much, so only the most dedicated will stick with teaching.

My opinions are probably biased because I had an otherwise good teacher who
was just poorly trained, and it was a huge setback for me. I really enjoyed
programming, until I took a course in high school. This lead me to pursuing
chemistry in college until I learned to program again on my own (after which,
I flipped to CS).

I think it would be better to add discrete logic to math courses. That way,
students learn the fundamentals that they can apply independently, or in
college.

~~~
spamizbad
I had a similar experience. My first programming teacher in high school was
also my geometry teacher; a subject he taught extremely well (at least from my
15 year old point of view).

His programming class however sucked all the fun out of it. His brother-in-law
was a retired manager at Motorola and gave him a bunch of (even for the time)
thoroughly obsolete suggestions:

Everything started with being handed a specification. From there, you had to
write a solution in pseudo code, which was a separate language from the one we
were learning (TrueBasic I believe). Once your pseudo code was handed in and
approved, you could begin programming; however, you had to document up-front
all the variables you were going to be using and document their purposes. In
addition, you had to explain in plain english what each subroutine did and
what variables it would access and state whether it would simply read or read
and write them (and then explain why).

I remember him saying "If you're a professional programmer, there's a good
chance you'll have a manager who isn't a programmer and they'll be reviewing
your work!" I think he took his brother-in-laws advice too much to heart,
because he really felt like he was giving us all a real taste of what being a
"real" programmer was like. Sadly, this was 1998, and I suspect software
development hadn't operated like that for a good 15-20 years (or if this was a
weird practice localized to Motorola in the 70s)

Any programming classes taught to minors should favor core fundamentals,
exploration and creativity and avoid dwelling on industry practices which
often have a shelf-life measured in years.

~~~
flukus
> Everything started with being handed a specification. From there, you had to
> write a solution in pseudo code, which was a separate language from the one
> we were learning (TrueBasic I believe). Once your pseudo code was handed in
> and approved, you could begin programming; however, you had to document up-
> front all the variables you were going to be using and document their
> purposes. In addition, you had to explain in plain english what each
> subroutine did and what variables it would access and state whether it would
> simply read or read and write them (and then explain why).

I think that's good to start with, for a start it's mostly just the CS
equivalent of "showing your work". It's also important to they develop the
ability to break a problem down and to beginners doing this at the same time
they're fighting the compiler can be overwhelming. I agree exploration and
creativity are important, but they could make room for that as well, more so
when they're more comfortable with everything else.

As an approach it's quite similar to literate programming, which still has
it's champions.

> Sadly, this was 1998, and I suspect software development hadn't operated
> like that for a good 15-20 years (or if this was a weird practice localized
> to Motorola in the 70s)

I think we're about the same age, but when I entered the industry (05-ish) UML
([https://en.wikipedia.org/wiki/Unified_Modeling_Language](https://en.wikipedia.org/wiki/Unified_Modeling_Language))
and gantt charts wer in decline as agile became the hot new thing.

------
influxed
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.

~~~
jandrese
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.

~~~
lordnacho
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.

~~~
kwhitefoot
> 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.

~~~
lordnacho
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.

------
bane
It's funny. In one of my first just-out-of-college jobs I worked at a company
where "the IT guys" were definitely not at the forefront of the company.
However research staff were awarded bonuses or pay differentials if they knew
a foreign language even a little bit.

I argued, somewhat successfully, that the time and effort it takes to become
"native" at a programming language was comparable to a human language...and
even if it was say 30% as hard, everybody in the department knew 4 or 5
different languages pretty well and thus should be payed as if they had put
the time into learning Spanish or French or whatnot.

The point that made it really sync in was when we had a series of tasks show
up on a contract that required people with programming ability and the
research staff wasn't able to "pick it up in a few months" despite huge
training efforts and the IT staff was pressed into service to perform on the
contract. Some of the research work was in French and most of us knew enough
about Romance languages that we could usually produce a reasonable gist of the
document before going to the researchers for a proper translation. We also
often just used babelfish to try to figure out what was being said.

They ended up creating a technical and nontechnical staff tracks and migrated
a number of the IT staff over into "Technical Researcher" roles. The
difference was foreign language bonuses applied to the nontechnical staff and
programming language proficiency resulted in a salary bump.

~~~
mikekchar
Learning a human language is not "hard" in the way that rocket science is
"hard". Almost anyone can learn a language and many of the least smart people
in the world are adept in at least one human language. That might be obvious.
We all speak at least one language because we learned it in childhood.

What's less obvious is that learning a second language is _not_ "harder" than
learning a first language -- at least in the way that learning rocket science
is "harder" than learning a card game. Language is not difficult. It's has
evolved in the way that it has precisely because _that 's the way we think
already_.

However, learning a human language is "hard" in that human languages are
_huge_. Normal adult proficiency for a college graduate is over 20,000 word
families. There are about 1500 common grammatical structures. The combination
of idiomatic phrases for a fluent speaker is mind boggling.

Learning a language is not complicated -- it's a grind. People fail to learn
human languages not because they lack the ability to learn a language, but
rather because they are unable or unwilling to simply put in the time and
effort. It takes the average human child 12-18 years of full time study and
practice to get to adult level proficiency and fluency in their first
language. You can do it considerably faster for subsequent languages if you
know how, but this is really the benchmark you should compare against.

Computer languages, in comparison, are "harder" to understand, but are orders
of magnitude smaller. We're not talking 30% as big here, we're talking 0.01%
as big. I don't think the task is in any way comparable.

------
TomMckenny
No more than a jelly fish is a fish. Code is a mixture of logic, math,
statistics and abstracted electronics diagrams.

The typical programing language is a natural language only to the degree those
others are. Which is to say it's not. At least in any normal definition of the
term.

~~~
teunispeters
Yes and no Code also contains the perspectives of the native language the
coding system was written from - which for most code languages is English (and
all too often USA centric). This may have indirect consequences, eg handling
of date/time or spacial measurements or direct in terms of how code itself is
organized. (the naming of functions has bias for instance - it directs the
reader's attention towards assumptions ...)

I suppose I'd compare natural language fish to... Most (all?) computer
programming languages would be remorah following English the shark.

I wonder what a computer language that came out of a completely different
world view would look like?

~~~
jtuente
Just check out this Wikipedia page:

[https://en.wikipedia.org/wiki/Non-English-
based_programming_...](https://en.wikipedia.org/wiki/Non-English-
based_programming_languages)

Discussion:

[https://news.ycombinator.com/item?id=6315913](https://news.ycombinator.com/item?id=6315913)

~~~
teunispeters
Some of those are just "translations on top of" which keep the metaphorical
constructs in place. A lot though ... very interesting.

Thank you!

------
semitext
My understanding is that the younger you are the easier it is to pick up a
foreign language. Whereas that doesn't appear to be the case for computer
languages. Learning either creates opportunities for life changing
opportunities for the better, but I think it would be a mistake for people to
forego learning a foreign language at that age. If they want to learn
programming languages as well they will, but I know lots of people that regret
not learning a 2nd language earlier in life.

~~~
ken
> My understanding is that the younger you are the easier it is to pick up a
> foreign language.

The latest research I've seen indicates that this is false. When you look at
vocabulary in "words learned per hour of study", adults actually do much
better than children. (I'm sure I've seen a study of this involving the U.S.
State Department or some such, but I can't find it right now.) This isn't
surprising to me: adults already know noun/verb/adjective/adverb, how [a]
grammar works, a big pile of cognates/loanwords, etc.

The reason children _seem_ to learn quicker is because they're exposed to the
language every hour of the day. They have no choice. If they want to do
anything at all, it requires using the target language. They make up for lower
efficiency by brute force.

Adults tend to do poorly at learning foreign languages because they only spend
an hour or two a day with it. Learning a language feels like a lot of work,
and adults usually fail because they have the resources to be able to avoid
interacting with it. This is also why "full immersion" (living in a place
where they speak that language) is fast and effective even for adults.

(Think you're going overboard by spending 3 hours a day studying French?
That's less than 1/5 of your waking hours. Any child in Paris will learn
French 5 times faster, not because they're younger but because they're putting
in an extra _13+ hours a day_ exposed to French.)

> I know lots of people that regret not learning a 2nd language earlier in
> life.

Sure, and I know people who regret not learning to dance, getting in shape,
playing a musical instrument, etc. I also know people who started these things
as adults and are just as accomplished as those who started young. And I know
many people who started these things when they were young, and then gave them
up -- and have basically lost all the effort they put into it. (After long
enough, you can even forget your first language.) This fascination with youth
needs to end.

~~~
SilasX
>The reason children seem to learn quicker is because they're exposed to the
language every hour of the day. They have no choice.

They also have an environment of understanding adults willing to explain their
mistakes and teach how to say what they want.

If you’re already an adult, this is hard to find. People will either switch to
your language, ignore you, or find some common language (even ad hoc hand
signs) to communicate.

~~~
gringoDan
This is sometimes the case. But in my experience, a lot of people (strangers
even) are more than willing to help you out. They are excited that you are
learning their native language and want to see you succeed.

A good portion of the time, what you're describing stems from the language
learner defaulting to an easier version of communication or trying to avoid
embarrassment.

------
kylec
I don't think anyone seriously thinks that learning a computer language is in
any way equivalent to learning a foreign language. But it is useful to pretend
that it does, so that we don't have to ask the _real_ question:

Should everyone be required to study a foreign language in school?

My answer is no. I took a year of Latin in high school and hated it, and have
never thought about it since. It was a huge waste of time. And if classifying
computer languages as foreign languages can help some students opt-out, I'm
all for it.

~~~
entee
As someone who grew up bilingual, I think knowing another language has been
invaluable to how I approach and understand the world. I disagree (fully
acknowledging my bias) that learning another language is a waste of time.

However, I think high school is too late. Most people I knew in HS that
started learning another language weren't super invested and didn't learn it.
Not to mention that it's really hard to do at 14-18. I think kindergarden-5th
grade should have the option and encouragement to be bilingual though. At that
point it's remarkably easier to pick up, and I think it would increase cross-
cultural awareness and empathy, a trait that seems in decline recently.

~~~
WhompingWindows
You grew up bilingual, though. For those of us speaking the same languages as
our parents/community, we're not going to come even remotely close to fluency
with a couple of low-level school courses.

~~~
entee
True, though I think a mixed school where a substantial portion of the day is
just held in that language (i.e. math is taught in spanish or something) can
bridge it somewhat. I think I'm a bit idealistic in this area though.

Also I'd say that young kids usually pick up languages like they're nothing,
and they may well communicate amongst themselves in the new language. That
said, my brother and I mostly speak english to one another... so maybe not.

------
droithomme
Computer languages are called languages for a reason. They have syntax,
grammar, vocabulary, and are used for communication. People who don't speak
english for example but who read python can often read code you wrote and
understand it. Math is a similar thing and sometimes called a universal
language.

These are different sorts of languages from day to day spoken and written
languages for general communication, but they can be reasonably put in the
same larger umbrella of language.

Whether they should be applied to a graduation second language requirement is
certainly debatable. Some school systems may reasonably say yes, others no.

Of perhaps no doubt though is that at the present time, complete
fluency/competency in a computer language is far more valuable to an
individual than mastery of any language other than english.

Given this, perhaps schools should instead consider dropping the foreign
language requirements entirely and replacing them with requirements for
fluency in at least one computer language.

~~~
tracker1
Communicate "Hello World!" in python without some sort of string that
references another spoken language.

~~~
yellowapple

        # assuming Python3
        print("\U0001F310\U0001F44B")

------
AYBABTME
I think people like to say that programming languages aren't in the same vein
as natural languages. But from my personal experience in both fields, I can't
help but feel that they're clearly related.

Natural languages are harder to learn, less regular and more general than
programming languages, but whenever I study either, they bring to my mind the
same sort of efforts and intuitions. Programming languages definitely don't
replace foreign languages lessons in high schools, and so on. But the popular
dismissal of "they have nothing to do with natural languages" is probably
wrong, I think.

My sample set is... fluent in French and English, studied/studying Spanish,
Korean and Vietnamese, and similarly for imperative/functional/wtv paradigm
PLs. There's clearly ressemblance in learning one or the other.

------
tombert
I remember in high school I tried to get them to count my Intro to Java class
as a foreign language, to no avail.

In hindsight, I kind of agree with their decision. Obviously I love
programming (hence why I'm always on HN), but I don't think about
C/Haskell/Lisp/etc. in the same way that I think about English.

While I understand that there are semantics that are superficially similar, I
feel programming is closer to mathematics than English, and I don't think
anyone is suggesting that we count algebra as a foreign language.

~~~
jessemillar
Came here to say exactly this. Additionally, although someone who doesn't
speak the same language as you (e.g. English) can potentially read your code
and understand what it's supposed to do, I've never seen code used as purely a
communication medium making me think that spoken/written languages are more
complex and varied than programming languages.

------
alexhutcheson
It's true that taking a programming class isn't the same as taking a high
school foreign language class, but it's also true that taking a high school
foreign language class is unlikely to give you any meaningful proficiency in
that language:
[https://www.econlib.org/archives/2012/08/the_marginal_pr.htm...](https://www.econlib.org/archives/2012/08/the_marginal_pr.html)

~~~
HarryHirsch
This Liberty Fund-supported libertarian op-ed is involuntarily a strong
indictment of US high school education. In other countries, children learn
foreign languages just fine in school.

Right now I am teaching an introductory chemistry course at a university
somewhere in flyover country. The majority of the students does not know
enough 8th grade math to calculate basic stoichiometric relations. Basic
algebra is beyond their reach. Using libertarian logic, it follows that we
should drop high school math altogether, because teaching it in school is a
waste of time, the kids do not learn it.

~~~
tracker1
I think a lot of it is lowered overall expectations (from parents to schools),
promoting kids that didn't complete the actual grade satisfactorily, etc. When
I went to school, I knew 2 kids that were held back a grade in elementary
school... neither were held back again.

------
fixermark
Spoiler for those tired of question-begging headlines:

The author's answer is "no."

~~~
beering
In defense of this particular question-begging headline, the question itself
is something the author wants us all to consider and answer. It's unlike
question-begging headlines such as, "Can eating gummy bears twice a day cure
cancer?"

------
karmakaze
Quite interesting that the reason I didn't like Scala was that it was like a
natural language. There was interacting context that wasn't immediately
visible at the use site. I wonder if linguists or Perl lovers like Scala more
than others?

~~~
yellowapple
Being a Perl lover, I wonder if I should actually take a look at Scala? I've
always been turned off it (and Clojure) because I don't care for the JVM, but
maybe a good enough language can make dealing with the JVM tolerable?

I do already like Groovy (and have been using it for my day job, since it's
one of the scripting options for Dell Boomi), so it wouldn't be the first case
I've encountered of "I don't like the JVM, but this language makes it
worthwhile".

~~~
karmakaze
The type signatures that look like line noise might be a turn off coming from
scripting langs unless you appreciate static expressiveness.

~~~
yellowapple
Considering _everything_ looks like line noise in Perl, that might not be a
problem for me :)

------
lioeters
Is computer code a foreign language? Not for me.

Having grown up with multiple "natural" languages, as well as programming
"languages" since age 8 or so, I consider computer code one of my _native_
languages. Of course, I'm only truly familiar with a few dialects for daily
use, but there's an underlying way of thinking (concepts, patterns) that
applies to all programming languages.

The more "natural" and programming languages I'm immersed in and use in daily
life, the more I see them as dialects of a single "language" \- an unwritten,
unspoken language of the mind, which gives birth to the various specific
implementations of syntax, grammar, words.

Film, dance, painting, sculpture, music, mathematics, geometry.. Even
JavaScript. These are also dialects of the language beyond languages. They're
all different ways to "speak" and "think".

I agree with the article that learning a programming language or two should
not fulfill a foreign language requirement. If anything they should be
included in a "native languages requirement", in addition to a couple of
natural languages.

------
mont
I'm not sure that anyone would argue that programming languages are anywhere
near human language.

Though the article is in response to allowing CS/programming classes to count
towards foreign language credit in highschool, which is a potential way to get
more kids involved with programming. Though given the efficacy of foreign
language programs in highschool I'm not sure CS would do any better...

------
tracker1
I have to agree... now, if they wanted to treat programming languages as a
higher than basic algebra math class, or possibly a science credit, that I
might agree with, but not in place of lower level math or science.

Computer languages are definitely languages, but the rules and constructs are
much closer to math than they are spoken language.

Even then, for a well rounded "language" course on programming, it would have
to account for at least 2-4 different languages, and enough understanding over
the course of a year to contrast and compare. In any case, I doubt much
practical use would be gained from such a course.

Again, it might be a better fit for a Math or Science credit and could
definitely see a vocational high school centered around Programming coursework
for the elective structure.

------
subway
This takes me back to High School. My senior year (2002), the school decided
to add a "computer programming" course (c++). Despite having a "computer
science" department (a lab that taught pc repair skills), the course ended up
under the Languages department, taught by the Latin teacher.

To be fair, the reasoning for this was that the Latin teacher was the only
faculty member to hold a computer science degree (he also held number of other
seemingly unrelated degrees, iirc).

------
wallflower
To make the counter argument, it is rather unfortunate that the way foreign
languages are normally taught in U.S. schools (grammar first to make it
painful) leads to the cliche of “I took 4 years of French in high school and I
can only speak very little.” On this line, make computer languages a foreign
language, as schools do a poor job overall teaching a foreign language so that
it can be truly acquired. The advantage of computer languages as a foreign
language is that picking it up for the learner does not require the learner to
deal with frustration and embarrassment in the context of interacting with
other people, like they would learning to communicate in a foreign language.

> Within this subset of multilinguals who are well-versed in a non-English
> language, 89% acquired these skills in the childhood home, compared with 7%
> citing school as their main setting for language acquisition.

[http://www.pewresearch.org/fact-tank/2015/07/13/learning-
a-f...](http://www.pewresearch.org/fact-tank/2015/07/13/learning-a-foreign-
language-a-must-in-europe-not-so-in-america/)

~~~
snek
Well four years of a language won't result in you being a very good speaker
anyway. The key here is that foreign language classes also teach you about
other cultures, which is definitely important.

~~~
ghaff
Yes, that's probably the best justification for a high school curriculum that
includes some number of years of foreign language. If classroom high school
language isn't supplemented with more immersive or day-to-day use, you're
probably not going to get to the point where you can write, speak, understand
the language comfortably.

I had 4 years of high school French and I was even relatively good at it,
albeit not quite top of class. Today, I'm more comfortable in a French-
speaking country than someone who knows no French at all, but my skill level
is really pretty low.

------
all2
Utah State University counts programming languages for the CS major language
requirements.

------
flukus
> Is Computer Code a Foreign Language? No. And high schools shouldn’t treat it
> that way.

I'd go a step further and say that coding is not a subject and high schools
shouldn't teach it, in the same sense that calculators aren't a subject they
teach. There are so many opportunities for coding to integrate and enhance
with other subjects that are being ignored.

Half of my high school physics classes and 90% of my maths ones were plotting
graphs, repeating the same exercises over and over with the same memorized
equations. That's pointless busy work we could eliminate with computers and
focus on more fundamental things.

------
collyw
> It stems from a widely held but mistaken belief that science and technology
> education should take precedence over subjects like English, history and
> foreign languages.

As someone who lives in a foreign country, computer skills have been a lot
more valuable to me than language skills. Some hotel staff here will speak
multiple languages while I have managed to get employment in English fairly
easily and I earn a fair bit more than what the multilingual hotel staff will
earn.

------
morpheuskafka
Who on Earth came up with calling computer science a forward language? By that
logic, so is symbolic mathematics and logic, chemical equations, etc.
Programming languages (more so some than others) have a lot in common with
advanced math (ex lambda calculus) and almost nothing in common with foreign
languages... not that both should not be taught.

------
ivanhoe
IMHO learning to code is quite similar to learning enough of a foreign
language to be able to explain to a tourist how to get from point A to point
B. Turn left, keep walking until you see the yellow building, then go right,
etc. We just instead learn how to give instructions to computers in the
language they can understand...

------
buu700
Seriously? This was funny to _joke_ about in high school, but we shouldn't
encode something obviously ridiculous into our legislation...

It's one thing if they want to make foreign language study optional or broaden
the requirement to be less specific, but as-is this will just lead to needless
confusion.

------
denysonique
As long as coding is optional and not compulsory. While attending primary and
secondary school I was forced to learn certain subjects, this has resulted in
an aversion towards certain subjects, which today I begin to find interesting.
However I still have some of that old feeling.

------
fixermark
Sounds like the author's concerns could be addressed by allowing programming
languages to sub in for foreign languages as long as the curriculum includes
pair-programming.

------
cfmcdonald
I can't read the whole article because paywall, but the initial paragraphs
seem to miss the point of these laws. The intent is not to indicate that a
programming language is an equivalent kind of skill to a foreign language.
It's a pragmatic decision about how to fit programming, increasingly an
important life skill, into a crowded curriculum. The core requirements
(english, math, science, history), aren't going to budge, so it has to be
slotted in somewhere if you want anyone other than the super-motivated to take
progamming/CS classes.

Maybe the author addresses this pragmatic issue later on?

~~~
Jtsummers
The author does not. And at least in the Maryland case you're correct (haven't
looked up others, but they're probably similar). However, I think the author
and others on their side have a point: Why is foreign language being singled
out for substitution?

I get that there's only so much time in the day, so only a finite number of
courses can be meaningfully conducted before a student graduates. This was an
issue when I was a student at Georgia Tech. Most engineering students received
some 130+ credit hours (1 credit hour = 1 hour lecture or 3 hour lab per week)
over their degree. To complete this in 4 years (8 semesters) meant an average
of 16 credits/semester which was very hard (especially when dealing with
prerequisites, which meant you might have a 9-12 (core) + 3-6 (elective)
credit semester followed by an 18 (core) credit semester, those latter ones
could be brutal). At GT, compared to other GA universities, there were no
language requirements and somewhat reduced general education requirements
(still true?). And many (most? don't know the stats) students took 5 years (or
10 semesters) to complete their education. But GT didn't say, "CS 1301 will be
a substitute for <Language> 101", they just said, "Everyone will take CS 1301,
and <Language> 101 will be an elective."

If the people proposing these changes made more courses substitute for each
other, then I think their argument would have more weight. Make foreign
language an option along with technology education, advanced math (those that
can be held concurrent to the core math courses), and other topical electives.
Make the selection akin to selecting a "major" focus at university. Instead,
the schools want to include something that seems to be useful (I would agree,
programming skills are useful) but have no way to fit it in to the existing
time available and are forcing one department to make a sacrifice.

~~~
tssva
The author does in fact mention it briefly which is worse than not mentioning
it. By mentioning it he acknowledges that he understands the motivation for
the law but then proceeds to make an argument against the law which completely
ignores the purpose behind it.

It is unfortunate that he sees this as some sort of binary choice. As if the
proposed law would eliminate foreign language study rather than offering
students a choice of academic paths.

------
ilovecaching
Computer science should literally be the #1 most import subject in schools.
Not only is the public's ignorance of technology exceedingly dangerous, it's
also the only skill that could net you have 100k+ salary right out of high
school. Computer science is also the study of solving problems. If you teach
kids how to be good computer scientists, they are going to naturally progress
in every other field of study.

------
izzydata
It is definitely not the equivalent of a foreign language, but it may be an
equally beneficial use of time.

------
pastor_elm
As shown by the Dragon Book, a good programming course is actually mostly
discrete mathematics.

------
ozzyman700
It depends which country you are from and what specific language you are
talking about.

------
forrestthewoods
Is algebra a foreign language?

------
x11
No. Go learn some real foreign language.

------
just1nn
Speak to Larry Wall about this.

------
failrate
No, it is an alien language.

~~~
featherrust
It's definitely not natural language.

~~~
evv
What makes computer languages not "natural"? Like every other language, it was
invented by animals(humans).

~~~
Jtsummers
Computer languages are synthetic, like the human languages of Esperanto and
Loglan.

The distinction is how they're formed and developed. Someone didn't sit down
1500 or so years ago and say, "I'm going to make English." It just grew.
Specifically Old English grew from a combination of languages used by Germanic
tribes (Angles, Saxons, and Jutes in particular). It also borrowed a fair
amount of Latin, Old Norse, and perhaps some Celtic. Followed by the
development of Middle English with the Norman conquest which brought in French
and Latin influence. And then later developed into what we call English today
via more borrowing or coinage of words and, later, standardizing spellings and
some pronunciatoins.

It's perhaps a little fuzzy if your language has an academy that tries to
preserve its essence and creates official dictionaries and bars certain types
of word creation. But for most "natural" languages, what makes them natural is
the organic growth and evolution that occurs over time. Compared to the
artificial selection of elements that happens with synthetic languages.

~~~
evv
Call me crazy, but the synthetic vs. natural distinction is still blurry to
me. All language is the natural evolution of thought.

> But for most "natural" languages, what makes them natural is the organic
> growth and evolution that occurs over time.

On this, we agree. This is the exact phenomena that I observe of computer
languages.

As a small example, take the "if" statement as used in JavaScript. It wasn't
invented by that language, it was borrowed from other languages like Java. But
the word "if" came from English. Of course, English speakers didn't invent the
concept either. As you describe, English evolved from other languages.

Computer languages are more modern, so we know more of their history. We know
who drafted the first iteration of JavaScript, and we've closely tracked its
evolution since then. We don't know who came up with the concept of "if", but
I doubt that it was given to us humans by some divine god of language.. I
think one of our ancestors invented it.

------
gabbygab
The title is rather disappointing as it implies that nobody at the nytimes
understands the difference between computer code and programming language. As
an analogy, computer code to programming language is what a book is to a human
language. Would you ask if a book is a foreign language? A programming
language is what computer code is written in. Just like a human language is
what a book is written in.

As for whether a programming language is a foreign language, the answer is an
obvious no. Programming languages have mathematical/logical limitations of
soundness, completeness, decidability, etc. If programming languages are a
foreign languages, then so is algebra or calculus.

