3 ms·
It doesn't seem to me so much as a victim of Sapir-Whorf (i.e. in the strong form, the hypothesis that the set of concepts that can be conceptualized is constra
by nvoorhies 17y ago
It doesn't seem to me so much as a victim of Sapir-Whorf (i.e. in the strong form, the hypothesis that the set of concepts that can be conceptualized is constrained by the language used for conceptualization) as a victim of some presumption that everyone thinks of their code "out loud".
I wonder if there's a correlation between this kind of thinking about code and a predisposition towards imperative languages and thinking of all programs as recipes with lists of things to do in a particular order.
- gaius 17y agoExactly, it's about structure. E.g. if you are an OO programmer you will be thinking "what classes do I need to represent this problem? Is this a has-a or an is-a? Do I need a Factory pattern here?" and so on. You won't literally be thinking "public static void main...".
- nostrademons 17y agoCuriously, I almost never think of my code as "Is this a has-a or an is-a? Do I need a Factory pattern here?" I reach for the pattern names only when I need to explain things to coworkers. I do occasionally think in terms of "what classes do I need to represent this problem?", but more accurately it's "Okay, what interface do I want to present to the outside world, what data do I have available to me, and how can I transform that data so it does what the interface claims it does?"
- RyanMcGreal 17y agoBut if you can think in structure (and I certainly do when I'm planning an application), it follows that thinking is not constrained into the realm of language - hence my reference to Sapir-Whorf.
- gaius 17y agoWell, people will obviously plan their application in a way that makes most sense given what their preferred language makes easy, or what their language community values. A Java programmer will think "how can I make this enterprisey". A Perl programmer will think "how can I do this in one line of code". A Haskell programmer will think "what is the underlying maths". Like I say, no-one is literally thinking code. It's not that people can't think outside their language, it's just that why would you try to smush in a concept that's a poor fit?