Ask HN: Why do new(ish) programming languages eschew OOP features?
Unpopular answer: pure fashion.<p>There's nothing wrong with object methods (that's 100% pure syntax vs. a function call) and an implicit "this" scope for symbols (which is just a limited form of dynamic scope[1]).  They don't make code hard to understand.  OO can be abused to produce bad designs, of course, but that's not an indictment of its syntax.<p>Non-syntactic aspects are maybe a more involved discussion.  For an example, I personally think traditional OO lends itself very nicely to runtime polymorphism.  And this is something that more modern languages have really struggled with (take a random new hacker and try to explain to them virtual functions vs. trait objects).  Now... polymorphism can be horribly abused.  But, it's still useful, and IMHO the current trends are throwing it out with the bathwater.<p>[1] Something that itself has long since fallen out of fashion but which has real uses.  Being able to reference the "current" value of a symbol (in the sense of "the current thing we are working on") is very useful.