Talk: 15:50–16:35 (English)
OOP is dead, long live Object Orientation!
I’m a functional programmer at heart, and believe that the declarative semantics of functional programming are vastly superior to the kind of OOP we’ve been doing for the past 30 years. In most cases, that means based on imperative concepts, with some class, inheritance and subtyping structure added. And, as we will see in this talk: Subtyping polymorphism is not very good at avoiding unsafe type conversions, inheritance is not very good ad code reuse, and classes are not very good at being extensible.
When it comes to building larger systems, however, we can get back to the ideas and concepts that drove the invention of Object Orientation: Independent entities that encapsulate and hide their own state, that communicate via message passing, and that can be exchanged at runtime without having to replace the entire system. And I’d argue that most of the systems we build today actually follow these concepts – in a good way! And in that sense, I believe that Object Orientation is actually a good and successful concept – just not on code level, but on a system and infrastructure level.
In this talk, we’re going to explore the history of the term “Object-Oriented”, how that concept evolved, where it went wrong, and how to redeem it.
Franz Thoma
Consultant at TNG Technology Consulting in Munich, Software Engineer and Product Owner (not simultaneously). Functional Programming and Haskell enthusiast. Playing around with compilers and domain specific languages both on the job and as a hobby. Interested in building and shaping software architecture, products and organizations.
- Slides
- thoma.pdf
