Hacker News new | ask | show | jobs
by sesteel 4269 days ago
Indeed; I have had the pleasure of having correspondence with Dr. Aldrich in the past. I had interest in implementing a static compiler for CMU's Plaid programming language, but found Go sufficient at the time. He also became involved with development of the Wyvern programming language. Nonetheless, he is well versed in programming language design and theory as that is his area of interest. It would be hard to imagine any related ignorance on his part.
1 comments

Jonathan aldrich does come from the UW side of PL, which leans toward objects (a bias I share as well). But he knows his FP. Still, I'm not much for arguments by authority; either you see a proper comparison in the paper or not (I haven't looked closely enough). What both William and Jonathan both seem to miss, however, is more a discussion on object thinking, which I think would make the difference between OOP and fp more clear from a design perspective.
I don't think this is really an argument from authority since I'm not saying 'he's right because he has a PhD and teaches at a renowned university'. I'm saying that assuming he's ignorant of FP given both what he says in the paper and his background is silly and shallow.

It's not really fair to say that Aldrich 'misses' a discussion of object thinking, he just chooses to put the focus of that particular paper elsewhere - this is from the intro

Some of the advantages of object-oriented programming may be psychological in nature. For example, Schwill argues that “the object-oriented paradigm...is consistent with the natural way of human thinking” [28]. Such explanations may be important, but they are out of scope in this inquiry; I am instead in- terested in whether there might be significant technical advantages of object-oriented programming.

and

This success raises a natural question: Why has object-oriented programming been successful in practice?

Everyone reads these papers from different perspectives, so it's quite easy to say someone missed something (fair or not).

My criticism is that an analysis of OOP is incomplete if you avoid looking at...objects. It's like saying, we are going to ignore the objects themselves, and just focus on the technical features of the objects to see what the technical advantage of these features are. It is very reductionist...while objects favor a more holistic manner of thinking.

We probably (broadly) agree more than disagree. One reason FP/OOP comparisons are difficult is that FP is closely related to a mathematical formalism while OOP isn't and can't be. I think the tack he's taking is 'can we explain the popularity of OOP in terms of "technical" or really, "practical programming/software engineering" advantages'. It's a tricky needle eye to thread.

The objection 'that approach can't lead to useful insight' is a reasonable one but I don't think he's taking the approach out of ignorance or because he spaced out on something while typing it up - it's a deliberate choice, whatever its merits.

Ah, I never said he took this approach out of ignorance. I've talked about this with him before, and never found his arguments lacking.

It is nice that something is still going on in OOP.

Given the difference in both OOP and FP, I agree it certainly would be an interesting contrast to explore. Especially now, as FP is becoming more mainstream.
I really need to sit down and write that essay, but I always have better things to write and design essays are difficult to sell. A lot of the FP programming that goes on is just weak OOP with some immutability, closures, and list comprehensions. The real hardcore FP avoids not only mutation, but also aliases and identifiable objects. Object thinking is impossible in that context because nothing can have a name (beyond rolling your own GUIDs); it really is different.