Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Code is not a foreign language, and high schools shouldn't treat it that way (nytimes.com)
147 points by bookofjoe on March 18, 2019 | hide | past | favorite | 180 comments


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.


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


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.


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.


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


> Never mind the plethora of studies that have found links between arts education and performance in other educational/vocational areas.

It seems at least possible that this might be due to schools that are better funded tend to offer more arts education, and the better funding would also presumably increase the quality of the education in other areas. Without seeing the studies, it seems hard to conclude that the arts education is the cause of the better performance in other areas.


Correlation or causation?


Define "functioning"?

I can prepare almost anyone to be a functioning member of society so long as you don't want them to be capable of thought or creativity. They won't be a functioning member (or a well-functioning member) of a society ruled by a democratic system of government, though.


At least here in Finland high school (or more precisely, upper secondary school) is regarded to provide students with "general knowledge" and a least exposure to various different fields of study. How are you supposed to know what you want to do in life, if you do not know what possibilities there are?


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

read: "productive economic units."


It makes me sad that people who think education is for something other than gainful employment are in charge of the government-mandated education people are forced to dedicate their childhoods to.


That's a thing that you say that you don't really believe, because there are obvious other goals for mandatory public education; for instance, instilling our civic values.


My post was ambiguous. I think education is “for” gainful employment in that it’s the overriding purpose. Basic socialization is obviously another, and there is some element of instilling civic values. I strongly disagree, however, that compulsory schooling should be a vehicle for teaching kids a variety of things that school boards think is important for “well rounded” people. It becomes too much of a vehicle for shaping kids in the mold of the teachers and academics on the school board.

Also, ever since we started making schools actively hostile to religion, I question how appropriate it is as a vehicle for teaching civic values.


I think it's pretty important to hammer in basic US civil concepts like the meaning of the First Amendment, what roles we're expected to vote for, the separation of church and state, stuff like that. My understanding is that we have an unusually stable constitutional order (relative to other countries) and I assume public education is a big part of that.

Basic numeracy also has value outside of making people more employable, and a reason that there's a nascent movement to replace Algebra 2 with something closer to a basic course on statistics and critical data thinking.

I attended 12 years of Catholic school and while some of my Jesuit high school religion classes were interesting, they were not an especially good use of my time (although they did give me a nuanced understanding of Islam that became valuable for understanding the world later on, which I appreciate). I'd probably have been better off in the public high school my kids went to. And I went to an atypically disciplined and college-focused religious school.


Really? Trade school is what you think of when it comes the reason for public education?

That seems outside the normal experience & expectations of public school in the USA. Here it seems like language, civics, and basic skills are the job.


finally some sense around here, thanks!


[flagged]


Personal attacks are not allowed here, and we ban accounts that do that, so please don't do that.

https://news.ycombinator.com/newsguidelines.html


yeah, right call. My bad.


Do you think you were taught to value education beyond gainful employment? If so, by whom? If not, where did it come from?


Yes. All my teachers and my family. Life is not slavery.


I think parents and other family members are the ones who most often effectively instill a love of learning in kids, followed by middle and high school teachers, followed by college professors/lecturers.

Information can be transmitted by almost anyone, but a deep love of something can only be instilled through a personal relationship of mutual respect and trust.


art is a hobby


I'm just exploring an idea here but I wonder if the point is that practicing language skills (writing, reading, presenting) are as important as practicing technical skills (computer science, chemistry, math). I might argue that in the business world, we call those language skills soft skills and that they are VERY important in the success of software developers. A great developer who can't communicate or express their ideas thoughtfully struggles more than a less technically inclined developer who communicates more effectively.

One of my favorite interactions to see is when my developers have a thoughtful conversation on a pull request and come up with a creative solution together using a combination of their language and technical skills. Maybe we need people to do both?


Yep, I (easily) spend less than half my time programming. The rest is writing and talking, sometimes to relate facts and sometimes to persuade. I think these skills are more important than just knowing how to write code after a relatively small number of years of experience (maybe 5 to 10). (Unfortunately we don't know how to interview for this and still give people at this level the same coding focused interviews, but that's a whole different discussion...)


Taking this back to academic subjects, I wonder if studying philosophy might be some of the best academic training for this side of programming work.


Unlike many other fields, I would wager that the vast bulk of IT staff were mostly self-taught and many have a lifetime of experience in their field. For those people, school in fact got in the way of their education and career track as it was simply less time they could spend self-educating.

Until college, schools generally do a very poor job at teaching STEM.


But if our schools can't teach math and science, why do you think they're going to be able to teach CS?


It's fashionable to dismiss the humanities today, but we're not talking about Latin here. Speaking Spanish or Mandarin or Hindi is tremendously practical and opens up a wider range of opportunity than learning to code. CS is great, but it's not for everyone, even those who do pursue CS can benefit from being able to communicate with more people.


I passed high school Spanish through the third year at a top-50 California public school. Later when visiting Argentina people found my speech near-incomprehensible, and I could barely get the gist of a typical newspaper story. That was a couple decades later and it's not nothing, but it was nowhere near worth the time it took.

If you're genuinely motivated to learn a language you can do a much better job (and I did, with French as an adult; yes, the Spanish long ago did accelerate that a bit).


You're correct, but the same thing can be said about any grade school subject.

Grade school and a lot of undergraduate work are often about breadth, and you'll never know where your interests lie and how you'll want to apply your knowledge to a career until you have some exposure.

Inevitably, some percentage of people taking math in high school will become engineers, mathematicians, or scientists. Some percentage of people taking English or Social Studies will become project managers, politicians, marketing professionals, etc. Some percentage of foreign language students will do business with a foreign country or otherwise continue their studies. And some percentage of computer science students will become programmers. Some percentage of students taking band, orchestra, choir, or drama club will pursue creative fields. Some percentage of shop and woodworking class students will become tradespeople.

But not every student in every one of those classes will become all of those things.

It doesn't mean that students taking these courses are wasting their time in any way. In an alternate reality you could have fallen in love with Spanish and studied it more rigorously, and you'd have used that knowledge to advance your career. But it didn't really benefit you, and that's okay.


I agree with almost all of that -- but it's not okay to waste people's time with lots of required classes. Compulsory schooling has some benefit, mostly in the basic three R's, outweighed by the costs the further you get from that core. (Among the costs are making a lot of people reflexively hate/disdain subjects they might've liked by coming to them more naturally in their own time. In this case I didn't hate Spanish, it wasn't worse than average for school, but that's saying little.)


It is somewhat practical if there is no opportunity cost, but there is an opportunity cost. Four years of a normal class is nothing. If you devote 4 hours per day for a decade, sure... but that is a lot of time that could be better used for so many other things.

Then, OK, so you learned Mandarin but it turns out you need Hindi. Oops. All that time was wasted because you incorrectly guessed which language (of hundreds) might be useful many years later. Not that it matters of course, because by then you've forgotten the language you learned anyway.


And English is one of the national Languages of India any way


I would argue with the silent conceit that CS/STEM funding must come from humanities funding.

The problem is a lack of funding for useful education. This has led to a hollowing out of useful humanities classes and STEM classes no longer up-to-date with current needs.

Aside, I hope we reinvest in humanities instead of the toothless versions available now. Introducing civics, philosophy, and logic classes back into the curriculum is hugely necessary.


Oh noes an old school media publisher prefers people like them with an English lit degree from an Ivy or Oxbridge.

I am shocked shocked to find C P Snows two nation divide in effect at the NYT


How about wanting to, I don't know, travel to and work in foreign countries one day?


Having a CS education can help pay for that, and help you get work visas. I'm not sure how studying Shakespeare can help though.

Also, learning French won't help you in Germany, but learning JavaScript will help you land a job there if you speak English (a friend of mine who doesn't speak German moved there to do just that).


Having experience in learning a language helps you to learn more languages. In this particular example, understanding that nouns have grammatical gender in French is a helpful bit of linguistics to know that softens the blow when the JavaScript developer decides to learn German.


So you spend a year to save a day. Doesn't sound very wise.


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.


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.


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.


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.


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.


> 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) and gantt charts wer in decline as agile became the hot new thing.


>> "If you're a professional programmer, there's a good chance you'll have a manager

This is the number one reason that schools should not try to teach students employable skills, because they usually get it very wrong. Teaching youngsters business processes that will be 10 years old when they graduate from college severely limits what they can achieve.

I am all for teaching coding and other creative activities, but these should be explorations. Let the student discover on their own the degree of technical rigor they want to apply themselves to.


I took 2 years of HS programming from an excellent teacher, pascal one year then C++ the second. The second year was an AP class and every student got a 4 or 5 on the AP test.

10 years later, I taught myself to do web development but I started with a strong understanding of core concepts and how to read code to understand how a large code base worked. Even before then, the understanding of logic and the practice of procedural thinking was immensely valuable.

A year afterwards, this teacher requested to be allowed to work part time and only teach the programming classes and not the other math classes they wanted to schedule for him. He wanted to be able to do higher paying work on the side to supplement his modest teaching income. Instead the school district fired him and put the football coach in charge of the programming classes. My brother took those classes and they were a complete waste of his time.

So getting legislatures on board with teaching or requiring programming is not enough. We need enough trained quality teachers to teach these classes so we don't waste students time and turn them off to coding. We also need school boards and principles who value these teachers and understand the difficulty with simply slotting other teachers into these positions and giving them a text book to work from.


I think that's because it is taught by people who are not well trained in CS themselves for the most part, and a not so well defined curriculum. "You can build a cool website/mobile app" can help only so much in inculcating an interest in computing.

I wish there's something more like this book (https://en.wikipedia.org/wiki/Structure_and_Interpretation_o...) for schools which show that computation is a good extension of mathematical thinking (when used in the sciences), and beyond that, it can used to build "cool stuff" like mobile apps or software to control robotic arms.

In case my last sentence was not clear, I'm trying to allude to different roles of software. One can use it as a useful, very fast but dumb calculator doing computations to predict a molecular structure or a spreadsheet doing a bunch of stuff for an accountant/finance guy. Many times, we tend to think of it as useful to build cool tech apps/websites and force feed them Java/C++ or some such things which they're not ready for yet[1]. We should inculcate "computational thinking" before we teach them Javascript websites/java apps.

[1]As per my experience with some fancy schools teaching 5th/6th grade kids how to build their first apps


I'm currently trying to teach a friend structured software design via the https://deinprogramm.de [0] approach based on Racket/Scheme, resisting a friends opinion on it being not useful enough in industry and all that. The thing is, that while I'll have an easy time finding her a job with no real experience if she can demonstrate a structured approach I can vouch for, the opposite is far harder. If she can write python, fine. But no one will pay her/teach her without a long trade school contract if she can't demonstrate that she can be left alone with a task that takes 50~150 hours. Or at least that she only lacks a bit experience and needs some guidance to end up with a concise overall design.

Considering that the most senior engineers spend far more time on high-level design than on coding, it seems the better carreer path.

The book you search might be the one linked below, btw.

[0] German brother of https://programbydesign.org/


Fair enough. Though, unfortunately, high school curriculums have to be more or less designed on the premise that individual study won't happen in many cases.

If you assume independent study, there's probably very little that has to be taught in high school and we'd probably do things very differently.


I've talked about this for a few years on my programming channel with millions of views.

At least main stream news publications are now writing articles about it. This is a perfect example of just how clueless lawmakers can be. It's scary.


Coding might be aiming too high.

A year of critical thinking and logical reasoning, how THAT is a general skill that can be applied everywhere.

I'm not sure a whole year would need to be filled with that though, those skills would also be better grounded in reality.

Combining those skills in to what used to be home ec (which I never had the opportunity to take) could be a good general life skills class.


A music theory class can involve quite a bit of math. Often music theory can be taught as part of a larger music study.

Just as there is room for music theory in a well-balanced music education, perhaps there is room for programming language study in a well-balanced linguistics education. That said, the goals of foreign language classes are rarely (strictly) about the arts and sciences linguistics, but more often targeted more directly towards the arts and sciences of culture, sociology, sometimes anthropology. (Programming languages are somewhat deficient in teaching useful life lessons in these other studies.)


Both math and music are often called languages. Of course that doesn't mean schools can replace foreign language requirements with them.


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.


> 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


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.


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.


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.


And yet, a vast component of code is communicating to developers.

Some patterns (e.g. Java) try to minimize the expressiveness in favor of consistency, others (e.g. Perl, etc) focus on expressiveness (which makes the subsequent result highly dependent on the skill of the _expression_ of the original programmer). But either way, there's distinctly language going on. It just conveys in a different manner than the common human languages I know of.


I have a challenge for you, or anyone really. Translate Gettysburg Address into your programming language of choice and present it here for determining of those fluent in your chosen language understand what you have translated. Constraints: You can't use print statements to echo the English text of the address. You can't use English or English-like identifiers.

I know of no programming language that can convey the meaning of these sentences, it's simply not what the languages are meant to do:

>But, in a larger sense, we can not dedicate—we can not consecrate—we can not hallow—this ground. The brave men, living and dead, who struggled here, have consecrated it, far above our poor power to add or detract.


in c# (partial code)

  using(var usPeoples = new UsPeopleContext())
  {
     var waverers = usPeoples.Where(x => x.IsUnsureOfContextOfCivilWarAndReasonsToPersue == false).ToList();   
     waverers.ForEach(x =>
     {  
        x.Reassure();
        x.Inspire();
     });
     await usPeoples.SaveChangesAsync();
  }


Eh, there are human languages that cannot convey meanings that other languages can. Those languages, by your definition, are not human languages (which is silly, because they are).


> But, in a larger sense, we can not dedicate—we can not consecrate—we can not hallow—this ground. The brave men, living and dead, who struggled here, have consecrated it, far above our poor power to add or detract.

Sounds like some "brave" developers defined a "Ground" class (maybe they "struggled" over its name?) that they "consecrated" by marking it as final, so that other developers shall not extend it later to "add or detract" from its original purpose.


It's surprisingly difficult to translate any nontrivial passage from any human language to any other human language in a way that everyone can agree preserves meaning.


> it's simply not what the languages are meant to do

I'd say you answered your own question, here.


Reminds me of Peter Norvig's translation into PowerPoint: https://norvig.com/Gettysburg/

(satirizing its overuse and flattening of style)


soulwise, these are trying times


> I know of no programming language that can convey the meaning of these sentences

Are _these_ meanings the meaning that define language?

To say that programming languages exist to convey meaning does not equate to being able to express all meanings.


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?



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

Thank you!


Beyond cultural influences, they also reflect a strange human conception of logic. We have an intuition of the concepts "AND", "OR" but not for "NAND" which would be much more convenient. We also merge implication with causation to create an idea of "if x the y".

If a jelly fish, remorah or shark built a programing language, I too wonder what it would like like. Maybe we can get an AI to make one someday and see what happens.


"Arrival"


Most electronic schematic languages (which I'm guessing is what you meant by electronics diagrams) very much are human languages, sometimes the human readable part is a presentation of a machine readable part but often the goal is to have something that a human interprets.


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.


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


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


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.


I see it more as several stages of life, some easier than others:

baby/toddler growing up in a multilingual environment = fairly easy

baby/toddler growing up in a monolingual environment = difficult

Young child -> teenager (e.g. I actually began learning french in primary school) = slow and difficult

Late teens -> young adult = the best time after baby/toddler

+40 = more difficult but not impossible


Learning a foreign language is more than just learning grammar and vocabulary. It is also learning to distinguish the different sounds of that language and the ways to make those sounds. I can't do the searches for it right now, but from what I recall, people lose the ability to distinguish sounds that they don't hear often by a very young age, since their brain figures it's not important to distinguish those, so that it becomes increasingly harder to pronounce and understand those languages which use different sounds. This is why L and R differentiation is very hard for Asian speakers, and tonal languages like Chinese and Vietnamese are very hard for English speakers.


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

IIRC, while that's long been a popular belief, it's not all that clear that it's true; a major effect, if not the whole effect, comes from it being easier to spend more time on it when younger. This portion of the effect is equally true of computer languages.


While the “critical period” hypothesis is not proven, language acquisition is an automatic process for almost every human child, given that they are in an environment where they are being spoken to.

Also, recent research suggests that the ability to differentiate sounds of a certain language rapidly narrows after a child leaves the baby stage.

> By 10 to 12 months, however, monolingual babies were no longer detecting sounds in the second language, only in the language they usually heard.

https://www.nytimes.com/2011/10/11/health/views/11klass.html


I feel like I could pretty easily be fluent in more natural languages if, as with programming languages, "fluency" included being able to look things up in reference manuals, and if my expression of the language was limited to reading and writing, rather than listening and speaking.


That's actually how classical languages (Latin, Ancient Greek, Babylonian, etc.) are generally taught. Even professional classicists are generally not expected to speak their ancient tongues and using dictionaries are par for the course for making translations.


Clearly, I should have opted for Latin in fulfillment of my required foreign language credits in college. :-)


Yes, you have identified why computer language “fluency” is not on the same level as foreign language “fluency”. While you can communicate with reading and writing in a foreign language, it limits your ability to connect with people. Whereas with computer languages, it is almost all reading and writing, especially in whiteboard interviews :)


Based on my understanding, children have a much easier time for several reasons, none of which are inherent to being children, but are extremely common among children, specifically.

* Massive amounts of input data (Just all over the place) * Involuntary immersion (Your parents can just choose not to speak to you in your first language, a shop teacher can't) * Contextual examples (people very clearly pointing at things and labelling stuff when they use language) * 1 on 1 tutelage (This one is super important and extremely expensive for adults)

An adult given this situation willingly will learn a language extremely quickly.

The biggest argument against young people learning languages more easily than adults is the learning outcomes of children without bilingual parents in school language classes.


I learned my first programming language, Basic, when I was 8 years old, and reading code feels like a natural language to me. I think the complication is that programming involves both a language and a logic system. While language may be created naturally before puberty, having the requisite logical reasoning requires something extra. I had very early access to formal logic training, and this combined with self-motivated interest helped me overcome that barrier. I think it would be a deal breaker for others. It's one thing to be able to read a language, quite another to understand what it says.

Another factor is that the kind of language children are very good at learning is the spoken kind. Human capacity for reading and writing is not necessarily natural. You don't find many children learning Latin on their own without some other factor lowering the barrier for entry, either. Having a parent with whom to speak Latin would be that kind of factor.


> I had very early access to formal logic training

Can you please expand on this? Montessori School?


No. I am simply lucky to have been born into a family of Russian Intelligentsia who could provide me with a real education.

In 1st grade, I enjoyed learning math too much, and the teacher found this disruptive, so the school found an excuse to get me classified as learning disabled and put me in special education where I spent all day isolated in a detached cottage with 2 teachers and no other students.

The teachers had no lesson plan or anything for me to do, so my mother bought logic puzzle books for me to play with to relieve the boredom. I had already gotten a strong foundation in reading from my family, so I enjoyed filling them out on my own. I also had plenty of educational video games to play at home that I greatly enjoyed. Learning to program was just another toy to play with.

Oklahoma education system at its finest!


Thanks for the detail, it seems like you and your mother were able to "home school" yourself inside the school system.


Yep, precisely that.


The jury's still out on the Critical Period Hypothesis the last I checked. But in any case, you're right that there is a big difference between acquiring natural languages and learning a programming language. Language acquisition is a special kind of learning, an innate capacity we have for natural languages that mostly takes place without conscious effort. We certainly don't start learning our mother's programming languages while in the womb.


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

I was watching an interview on youtube of a family sailing around the world in a sailboat and one of the parents said college is good, but learning a 2nd languages is really equivalent to getting a college degree.

And I completely agree.


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.


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.


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.


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.


Could you provide examples on how being bilingual has been invaluable to you?

I am only fluent in english, I live in a neighborhood where all restaurants answer the phone in spanish but there is usually a worker who speaks english to cover for me.

How do you feel being multilingual effects the way you think?


Practically speaking: French is similar enough to latin that most SAT vocab prep was far easier. It also helped when I learned spanish, because again the two are quite similar. Spanish has been useful at several points when I spent some time building things in Latin America, I actually wouldn't have had that opportunity if I didn't speak the language.

Fluffier: Watching french language movies and listening to French language music have given me an appreciation for the culture that I don't think I'd have if I didn't speak the language. I don't think I'd have as much understanding of the western European mindset if I didn't speak a western European language. There are also some things where there's a perfect word for that thing in French and those passing moments bring me joy.

Lots of these things will be also influenced by my having grown up in Belgian culture at home, but again culture and language are so closely entwined. I am a cultural mutt, which has occasionally made me feel not quite entirely of one place or the other, but on balance has been greatly enriching.


Your comment reminded me of the concept of being a “Third Culture Kid” and makes me realize how much I just I take for granted about my experience growing up in just one culture.

https://en.m.wikipedia.org/wiki/Third_culture_kid


Most children in non-english countries, especially in US influenced countries, have to learn English for up to 12 years in school.

I'm not sure, if there are any other benefits than being able to communicate in English. But in Germany we even force a 3rd language for at least 4 years to all students in the higher education school path. So there might be evidence for educational benefits?

The US might benefit from adding mandatory Spanish from a very young age with so many native speakers in the country and on the continent.


I once took a summer class in Latin and Greek, and it was one of the most useful classes I've ever taken. Half of English is based on Latin roots. It's like a programmer getting the source code to the standard library. Everything got easier.

In real life, knowing a little Latin has been way more useful than the years of German I took to fulfill graduation requirements.

Big German words are made of little German words. Big Japanese words are made of little Japanese words. Big English words are mostly made of Latin. I'm surprised Latin isn't part of the standard English curriculum.


> I'm surprised Latin isn't part of the standard English curriculum.

The declensions!!!


Well, there's the useful parts of Latin, for English speakers, and the not-so-useful parts. :-)

You can learn a bunch of basic Latin vocabulary, and make good use of it in English, without needing to practice all the declensions until your fingernails fall out.


I think it depends on the foreign language; some are more useful than others. I probably wouldn't use Latin all that much, whereas having a basic understanding of Spanish does come in handy (at least here in the US).

I'm by no means fluent in Spanish (even after taking two years of it in high school), but if at least some of it stuck then I'd say that's better than nothing. Not saying there ain't better ways of getting that education, but it's a start.

I've since found that I rather enjoy a lot of Spanish-language media (especially television and music); I'm - again - nowhere near sufficiently fluent to understand everything, but I know enough to be able to appreciate it instead of writing it off as gibberish.


Most classes are a waste of time in one way or another. Do we really need to know chemistry, physics, arbitrarily selected bits of history? No. We learn about language because it is important to human culture.


Latin isn't a living language, though.


It satisfied the foreign language requirement


Bertrand Russell argued against the use of learning Greek and Latin in the early 1930s -- for the reason that previously, the main source of education and culture and just plain 'new ideas' for people around the time of the Enlightenment was the written records of the Greeks and Romans.

Nowadays the bulk of new ideas are in living foreign languages like French, Italian, Russian, etc. I know that, for example, Spain is a large hub of the Free Software movement. Sweden has a big export on crime drama, France on romance movies. There are thousands of Russian academic papers with ideas that are still unknown in the west, because of the cold war.

You probably would have better enjoyed the language if it gave you access to things you found interesting, or if the culture contained something useful or interesting to you.

Or to see it differently, of course "It was a huge waste of time", you chose a language that has no cultural benefit to you, and was forced to learn it. And then you seem surprised that it didn't pay off!


As someone who took Latin, I don't disagree. Yes, English has roots in Latin. It also has roots in Anglo-Saxon and French. I'm not convinced that Latin has a unique pedagogical value for English speakers. It feels more like, outside of classical studies programs, a vestige of what a curriculum for properly-educated upper classes looked like a hundred years ago.

There's nothing wrong with many aspects of such a curriculum but it probably belongs as part of a classics major at a liberal arts college rather than a language option at a typical high school.


And Brainfuck and Whitespace are technically programming languages. That doesn't mean it's useful to learn them.


took 4 years of Latin in high school, and it was very useful: I guess its value varies depending on what else you do later, and if it's therefore helpful there?


What sort of uses have you had for it?


English is riddled with latin phrases, and many words have latin roots. That and many original sources are in latin.


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.


> Computer languages are called languages for a reason. They have syntax, grammar, vocabulary, and are used for communication.

Perhaps, but they are vastly simpler than even the most basic human language; and far, far more limited in what they can communicate without resorting to another language.

> People who don't speak english for example but who read python can often read code you wrote and understand it.

That's extremely unlikely to be true - they could perhaps say if it has certain properties, but it is almost impossible to understand what a piece of code is meant to do without understanding any of the identifiers, unless it's doing something very abstract (e.g. you can understand what "def id(x): return x" does if you know some Python and nothing else; but you can't probably understand what "def cumÎlStrigă(om): return om.poreclă" is meant to do if you understand Python but not Romanian).


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

I doubt that's true. It would be like reading re-prettified minified Javascript: they wouldn't understand the meaning of the identifiers or comments. That doesn't strictly make it impossible to understand the code, but it's much, much harder.

It's the same for math, frankly: without explanations of what the things in equations are, or why the author is doing what they are doing, it's somewhere between very hard to understand (for the most formal stuff, like the Principia), and hopeless for most papers.


Can confirm, dealing with code in a foreign language is not easy. A few years ago I had to re-implement from behavior in our application that had been baked into the firmware of our old printers, since the new ones were supposed to be off-the-shelf. We had the source code for the old printers, so no problem, right? Except the company that made them was French, so every comment was in French, and all the identifiers were not just French, but French abbreviations and acronyms mixed together. I could run the comments through Google translate and get a good enough idea, but there was almost nothing I could do about the identifiers, except occasionally get lucky and guess based on cognates. Can't imagine how it would have gone if the language was less similar, like any of the Asian languages.

Thankfully, I didn't really need to refer to the source code often, since I could just work out the finer points of the behaviors I needed to mimic by printing messages that hit all the corner cases.


I don't agree with all of your claims anyways, but all of this seems to miss the key fact point the "foreign language" requirement inherently implies a language to communicate with other humans. Hence why Sign language can meet the foreign language requirement in some schools but not C++.


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

I think one of the main reasons foreign languages are required is because it's an attempt to connect people with the outside world. There are positive implications on diplomacy and politics when you have a generation of young people grow up being exposed to other cultures and (trying) to learn other languages. This is more important for the world than teaching every child how to become a slave to the computer.


> Math is a similar thing and sometimes called a universal language.

But nobody is going seriously suggest put math classes in the languages department. How much different is learning Python from learning calculus? Both use specialized syntax, grammar, and vocabulary to describe ideas. If you categorize Python as a "foreign language" then calculus (and algebra, trig, etc) probably should be as well.


Interesting point.

My suggestion: use a programming language (any one you like) to explain why people who live in places where English isn't widely spoken would be better off learning English and/or a programming language.


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


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


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.


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.


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.


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


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.


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.


Spoiler for those tired of question-begging headlines:

The author's answer is "no."


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?"


It sounds like you're criticizing the author/editor for playing coy, but I don't think that's fair.

That "No" is smack dab at the extreme beginning, within the subtitle.


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?


Larry Wall studied linguistics, so that's an apropos (and fun) question, I'd say.


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


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


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


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.


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


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.


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


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


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.


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.


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


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


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


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.


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


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.


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.


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.


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?


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.


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.


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.


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


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


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


Is algebra a foreign language?


No. Go learn some real foreign language.


Speak to Larry Wall about this.


No, it is an alien language.


It's definitely not natural language.


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


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.


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.


It's not just synthetic, as in designed from whole cloth: it is a set of instructions designed for a synthetic system.

A computer "brain" does not operate remotely like a human brain. Therefore, the languages must be fundamentally different.

We apply syntactic sugar as a coping mechanism but the ultimate language is nothing like a human language.


[flagged]


Golden headline opportunity: Is Betteridge's Law of Headlines True?


"This statement is false."

For all you philosophy majors.


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.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: