5 ms·
Are you kidding me? Are you claiming the Sapir-Whorf hypothesis isn't true on ycombinator? This is a forum famous for talking about blub languages and lisp. A
by pebblexe 10y ago
Are you kidding me?
Are you claiming the Sapir-Whorf hypothesis isn't true on ycombinator?
This is a forum famous for talking about blub languages and lisp. And if it's true for artificial languages, that's a strong indicator that it's true for human ones.
But sadly there are very few studies comparing programming languages and I've never seen one comparing human languages qualitatively.
- awinter-py 10y agoI have a fairly large sample set suggesting that claiming to know C++ on your resume is not correlated with understanding the concept of memory allocation.
- chaoky 10y agoNo, programming languages are completely different from natural languages. You are conflating some concepts here. There are artificial programming languages which are context free and express computation more or less. Then there are artificial and human languages which express statements in real life and are not context free. Its obvious that some methods of expressing computation are easier for humans to comprehend than others and are formed on a much more mathematically logical basis. For example, the lambda calculus is much more readable than a turing machine and has 3 easy mathematical rules, although it is harder to implement on a von Neumann model. Sapir Whorf applies strictly to natural languages and to some extent constructed ones, but here most modern linguists agree it in its strong form has been discredited in the same way that race instrinsically influencing behavior has been discredited. People are people, and looking at historical sound change should convince that sound changes over a long period of time do not change any absolute measure of "complexity" in a language in a well defined way.
- pebblexe 10y agoWhere is it written that programming languages can't support the theory of linguistic relativity?
- jcranmer 10y agoBut the evidence for programming languages is that the Sapir-Whorf hypothesis is completely and totally false. To take a topical example, a lot of people complain that the idea of classes in JavaScript is antithetical to its underlying design philosophy. Presume that the statement is true (it's debatable), and you'd find that many of the people who push for this feature are likely to be those who have known no other language than JS. Their views are not being shaped by the language itself but by the views of those who taught the language, who like the paradigms of classes and came up with multiple, sometimes somewhat incompatible, ways of expressing that paradigm in JS. The problem of Blub is less that people are incapable of understanding concepts, but that the people explaining concepts are incapable of explaining them. I've yet to find a feature that I couldn't explain to a "Blub" programmer. If you take, e.g., call/cc, sure, describing that to a mediocre Java programmer would probably elicit a blank stare. But I could instead describe the yield operator and get excited responses on to where it would be useful, despite it being basically the same thing as a call/cc (modulo issues like saving the call stack). The evidence for natural languages is equally poor, although it's obfuscated by the extreme difficulty of separating culture from language in early childhood instruction.
- pebblexe 10y agoDo you have to manipulate text? Perl is probably better than C for that. Do you have to write a program that operates on lists? Lisp probably is better than Java. Do you have to write a formal proof? Coq is probably better than Python. Do you have to write distributed networking code? Erlang is probably better than PHP. How can the strengths of each language not be direct support for linguistic relativity? All that means is that certain concepts are easier to manipulate and understand in certain languages.
- vidarh 10y agoThe first problem here is that you mentioned Sapir-Whorf, and Saphir-Whorf does not have a precise definition. You simply be talking past people with respect to how strong a degree of relativity you are claiming. I can agree that different languages are more suitable for different purposes and affect how we express different problems. That is consistent with a very weak form of Sapir-Whorf. If that's the extent of your claim, then I don't think there's much controversy over that specific claim.
- vidarh 10y agoWhich form of Sapir-Whorf? Sapir-Whorf is not an entity that can have a theory. Sapir and Whorf are two different scientists that never co-authored anything, and certainly never set out a hypothesis. The strong form of Sapir-Whorf proposes that language completely determines the scope of cognitive processes. This form is generally considered to be false. The weak form suggests that language influences thought, but the extent of such influence claimed can vary greatly depending on who is talking. I would tend to think that might be true in the weaker forms, but at the same time my experience with programming languages is that you can write your desired type of code in any language and many developers do so, so I don't believe there is evidence that the influence is very strong. E.g. I've written object oriented assembler. Object oriented C is almost a rite of passage. You can implement closures in C (been there done that), or co-operative multitasking (not been there, but others have). Greenspun's Tenth Rule states: "Any sufficiently complicated C or Fortran program contains an ad-hoc, informally-specified, bug-ridden, slow implementation of half of Common Lisp." And you can write functional Ruby (you can even write Ruby with immutability by freezing objects, though you'll find a lot of third party code breaking). Back when C was still relatively young and Pascal was still popular, it was not unheard of to come across C code that started something like: #define begin { #define end } ... and more, followed by C code superficially looking like Pascal. If anything, programming languages have a long history of people inventing ways of emulating things they've seen and liked in other languages, but that are foreign to the language they are working in. So while I do think that language influences thinking to some extent, I also think that influence is weak enough to be easily overridden by other things, such as sufficiently strong zealotery with respect to the advantages of some programming practice or another. I'm Norwegian, but live in the UK and mostly think in English, and I do occasionally come across things that might qualify as language having influenced my thinking, but they are unremarkable enough most of the time that I rarely take note of it. In fact, trying to think of it now, I can't really come up with any good examples. For programming languages it is easier. I would not immediatly think "first let's make a class for ..." when programming assembler, for exampl. You may eventually end up with concepts of objects and classes in assembler programs too, but if that's the first tool you think of, you'd probably pick another language. How to structure control flow changes. How to treat variables changes (if things can fit in registers vs. is suitable to push on the stack vs. directly accessing memory suddenly matters much more). But still, at the same time, you can program assembler the way you program a higher-level language if that is what you want. The language only shapes your thinking as much as you let it. You'll probably be a better programmer in that language if you let it shape how you write code in that language, though.