3 ms·
You're not refuting the point he was making, because no one is writing code in such a language. > If writing is thinking, then object oriented code reflects th
by dom0 9y ago
You're not refuting the point he was making, because no one is writing code in such a language.
> If writing is thinking, then object oriented code reflects the way we think because we write it
The point is the huge majority of systems (by any metric; number of engineers, lines of code, budget, ...) are written in an OO style (regardless of whether the language actually supports OO; practically all bigger C projects use OO); and the majority of people are just fine with that and get started fairly easily with it. Hence it is reasonable to assume OO being a good fit to our own thinking processes.
By comparison, very few people find learning FP easy, and most seasoned FP developers openly say that getting started and acquiring the mindset for FP is a difficult and long-winded process.
Similarly, most people find reasoning about point-free programs (concatenative languages such as Forth) quite difficult.
- logicallee 9y ago(Yes, I misread the line you quoted as saying something different.) You also made your point very well, and all the facts you highlight support you and are good reason for me to doubt my conclusion regarding object oriented programming. I thought it's a terrible match for how people think about the world yet you give very strong reasons why I was wrong. (In other words you've convinced me.) Thank you.
- naasking 9y agoI actually don't think any of the points you've raised are valid or empirically supported at all. Most novices do not in fact find OO easy to learn, and most novices do not in fact find FP harder than OO to learn. What you are probably alluding to is the difficulty in learning a specific language, like Haskell. Haskell is not FP. Also, while most software projects use some kind of OO language these days, I don't know why in the world you'd think this somehow entails it fits our thinking. By all accounts, software defect rates aren't any better under OO than under procedural language paradigms. How does that make it intuitive? To make any kind of "reasonable" conclusion, you'd need a comparison against software written under other paradigms. Such studies have been done, and OO does not fare as well as other paradigms on many metrics.