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.
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.
The principle of linguistic relativity is that language (particularly L1) influences the thought patterns of those who use it. It does not state that certain thought patterns are easier to express in various languages.
To demonstrate support for linguistic relativity, it's not sufficient to say that Perl is better at text manipulation than C. You'd have to say first that Perl programmers tend to view generic programming problems (say, how to route email messages) as questions of text manipulation rather than other paradigms. You would also have to show that this paradigmatic shift is a result of the language itself, and not other factors including (but not limited to) language instruction or library availability.
In terms of natural language, sure, I can't translate the sentence "Time flies like an arrow; fruit flies like a banana" effectively into French (since the different senses of "to fly" are «voler» and «mouche»). But that doesn't matter for linguistic relativity. The linguistic relativity argument is over whether or not the difference between English tending to use "do" for its modals precipitates a different worldview than the French «faire» ("make").
Which I think you could actually make a strong case for. It's very natural in Perl to reach for a regular expression instead of other tools, and to join data into and split data out of strings, since the core data types don't distinguish between numerical and string data, the operators do.
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.
And, yes, if a concept is hard to express in a language that it, potentially, limits your thinking. If all thought is just language, then it may even bar thinking of concepts. But that gets into another debate, is language the key to thought, or is language an expression of thought. We can all probably conceive of things or maybe even have witnessed things which we are unable to articulate in many or all existing languages, but language expands or we adopt new languages (such as mathematics and calculus in particular to express physics). The precise motion of the planets could be explained in plain English, through complex circumlocutions. But calculus and its derived languages allow us to express this concept far more easily (even if just the English translation of the formulae and expressions, and not the precise notations used by physicists and mathematicians).
If an individual can't express a concept, how can you be sure they 'possess' that concept?
(answer might be found in bilinguals. There was an early saint from capadoccia who was grateful some of the more sophisticated greek heresies couldn't even be expressed in his language).
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.
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.