4 ms·
OOP is about large scale, and FP is about small scale. They best work together.
by solomatov 11y ago
OOP is about large scale, and FP is about small scale. They best work together.
- nullspace 11y ago> OOP is about large scale, and FP is about small scale Sorry, but this is an extremely audacious claim to make without backing it up. I also think "FP is about small scale" is quite wrong, looking at empirical evidence.
- solomatov 11y agoIf you are interested in this topic, I recommend you reading Martin Odersky's papers on Scala design.
- brianobush 11y agoMaybe you can just let it go and think of it as an "opinion" or based on years of experience? Doubt you will find a journal article laying the foundations you desire.
- sklogic 11y agoModularity is about the large scale. OOP should not highjack the exclusive rights to the tools introduced long before it became popular. I'd always prefer the SML module system to anything OOP for a project of any scale.
- solomatov 11y ago>I'd always prefer the SML module system to anything OOP for a project of any scale. There's a problem. I don't know any project which was implemented with SML on scale (I mean at least several MLOC).
- sklogic 11y agoOk, choose the Ada modules instead. And Ada was used for many MLOC scale projects.
- solomatov 11y agoI don't have experience with Ada, but I suspect, all its cool modular features can be expressed in Java (and sure in Scala). Could you give examples of features that you would like to have in modern OO languages which are available in Ada?
- sklogic 11y agoI am not talking about any "cool features" in particular. My point is that for the large systems you need a decent module system and namespaces, not the OOP. The fact that most of the statically typed OO languages also provide these features does not mean that OO is suitable for scalability - this is totally orthogonal to OOP. This is a fallacy similar to attributing pattern matching and ADTs to the functional programming, while these features are not inherently functional in any way. Try to build a large system in a dynamically typed OO language to see why OO per se is of no use for a large scale architecture at all.
- solomatov 11y agoI think, you are making mistake here. You shouldn't treat objects as objects, but as instances of modules. If you see it this way, everything looks much better in OO languages.
- sklogic 11y agoWhy do I need any OO in the first place, if the only value they can offer is in a poor man substitute for modules? I'd rather use the proper modules instead, with generic (i.e., inherently anti-OO) features.