This is a cross post from my blog (http://blog.remlog.net) here: http://blog.remlog.net/?p=5

A friend from Microsoft reminded me of a post I did on my MSDN blog when I was previously at Microsoft on the Sapir-Whorf hypothesis (roughly, the hypothesis that your language shapes your view of reality) and its application to programming languages.  The blog was: The Sapir-Whorf hypothesis. Does program language “centricity” limit you?  At that time (April 2005) I was just making the transition from Java to C#, learning some ML in the CS master's program at Depaul, and, getting influenced by a few quite a bit by a few Ph.D. friends down the hall at Microsoft (in particular Erik Meier and Ralf Lammel).   I had nearly forgotten the post but looking back on it I guess I was fated to end up in a group focused on implementing programming languages such as Ruby and Python (and perhaps other emerging languages over time).

By the way, it appears that Sapir-Whorf has more acceptance in programming languages and methodologies than it does in psycho-linguists circles (here, and here) at least at the extreme end of the  language determinism spectrum.

On another note Sapir-Whorf is being invoked regularly in relation to Behavior Driven Development (BDD) as implemented in RSpec the popular ruby testing framework.  BDD is heralded as an evolution of Test Driven Development (TDD to get to the promised land of TDD where tests become executable specifications.    Developers move from using the verbiage of "test" and "assert" to words like "describe" and "should" using the business domain language as much as possible.  There are many articles and blogs  (just web search 'rspec sapir-worf') linking RSpec to the Sapir-Whorf hypothesis (many of them pretty in a pretty cavalier manner) .  The general idea appears to be that because BDD changes the words for writing  "tests" (whoops, I used the wrong word there), I mean "specifications", which in turn influences the developer's to think differently about tests.   I generally agree with the conclusion, we are using a variation of RSpec to test IronRuby completion and we think of it very much like a language specification,  however I am not so sure that Sapir-Whorf is the right theory to support this change in perception.  I am no expert whatsoever but it seems that the language determinism point of Sapir-Whorf is about an entire language shaping an individual's view of reality based on the inventory of words available to express a concept.  It seems like BDD's effectiveness is orthogonal to Sapir-Whorf since the developer is already likely to know and understand the concept of "test" and "assert".  RSpec is really influencing a mindset by introducing and enforcing words that will invoke a "set of assumptions, methods, or notations" that create a "powerful incentive" to "adopt or accept" a set of "behaviours, choices, or tools" (paraphrase of the wikipedia entry for mindset).   I like the response that John Roth gave here along these lines.  This is all just quibbling though.  RSpec is a most excellent step forward.

rem