Object-oriented programming: Some history, and challenges for the next 50 years [pdf]
By now, most of the classes I write are immutable and I use inheritance rarely (although I do use interfaces).<p>The one feature that I still find very useful from OOP is the ability to have a &quot;shared context&quot; for a related set of methods&#x2F;functions. This works especially well with dependency injection: I can have some properties passed to the class constructor (say: the base directory where some files lie, a logger implementation, etc.) and then write my file manipulation functions without having to pass those properties around from function to function.<p>I wonder if there is something similar in some FP languages.