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