
Lucas Paul
This is my take, as a CS undergraduate.
I'm not sure if we can say that a programmer's language of choice determines the way they think about programming (the strong version of linguistic relativity for programming, as I see it). But I think it's fairly obvious that the language we choose to use to solve a problem affects how we think about the solution. That's basically the entire raison d'ĂȘtre for domain-specific languages (DSLs)!
DSLs are popular (and becoming more so) precisely because the right choice of DSL can make expressing the solution to a particular kind of problem almost trivial. A poor choice can almost doom an endeavor. Imagine trying to query a database in assembly language. No SQL. It would at the very least require some mental gymnastics that a SELECT statement simply obviates.
I think this can be partially explained by noting that programming languages, and in particular the way that programmers use them, afford a capacity for essentially limitless amounts of abstraction, unlike human language and human communication. For example, I might easily have a magic library that does exactly what I want, with bindings for my programming language of choice, in which case I don't need to think about what to do, I just call the appropriate function. In human communication, while someone might have perfectly formulated exactly the idea I want to communicate, it is rarely sufficient for the purpose of communication to say "insert pages 204 through 356 of _Foobar_ by John Doe here" in the middle of a conversation :) -Keshav