4 ms·
programmers don’t think in code. Sure, some might tell you they think in code, but I can almost guarantee that there’s a little voice in their head that’s still
by RyanMcGreal 17y ago
programmers don’t think in code. Sure, some might tell you they think in code, but I can almost guarantee that there’s a little voice in their head that’s still speaking a human language (especially since many programming language constructs are essentially unpronounceable
Sigh. Another victim of Sapir-Whorf.
- jibiki 17y ago"Everyone generalizes from one example. At least, I do." -- Steven Brust
- nvoorhies 17y agoIt 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?