Code is not a foreign language, and high schools shouldn't treat it that way
nytimes.com
nytimes.com
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.
School's primary purpose is to prepare people to be functioning members of 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.
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.
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.
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.
read: "productive economic units."
Also, ever since we started making schools actively hostile to religion, I question how appropriate it is as a vehicle for teaching civic values.
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.
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.
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.
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?
Until college, schools generally do a very poor job at teaching STEM.
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).
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.
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.
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.
I am shocked shocked to find C P Snows two nation divide in effect at the NYT
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).
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.
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.
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.
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.
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.
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.
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 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
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/
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.
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.
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.
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.)
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.
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.
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.
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.
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.
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
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.
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.
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.
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 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.
using(var usPeoples = new UsPeopleContext())
{
var waverers = usPeoples.Where(x => x.IsUnsureOfContextOfCivilWarAndReasonsToPersue == false).ToList();
waverers.ForEach(x =>
{
x.Reassure();
x.Inspire();
});
await usPeoples.SaveChangesAsync();
}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.
I'd say you answered your own question, here.
(satirizing its overuse and flattening of style)
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.
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?
https://en.wikipedia.org/wiki/Non-English-based_programming_...
Discussion:
Thank you!
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.
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.
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.
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.
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
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.
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
* 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.
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.
Can you please expand on this? Montessori School?
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!
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.
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.
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.
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.
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?
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.
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.
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.
The declensions!!!
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'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.
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!
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.
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.
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).
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.
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 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.
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.
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.
# assuming Python3
print("\U0001F310\U0001F44B")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.
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.
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.
The author's answer is "no."
That "No" is smack dab at the extreme beginning, within the subtitle.
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".
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.
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...
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.
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).
> 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...
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.
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.
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.
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.
Maybe the author addresses this pragmatic issue later on?
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.
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.
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.
> 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.
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.
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.