Pre-NDC-TechTown Meetup with Klaus Iglberger: There Is No Silver Bullet


Details
We are very excited for this FREE pre-NDC-TechTown user group meeting! NDC is sponsoring pizza, and there will be an opportunity to buy drinks.
Note that this event is at NDC TechTown in Kongsberg, not in Oslo.
18:00 : Food and mingling
18:30 : Talk by Klaus Iglberger: There Is No Silver Bullet
19:30: More mingling, the bar is open
Abstract:
Most developers love simplifications — they love the idea of that one tool that solves all of their problems. We have seen that in the late 90s and early 2000s, when object-oriented programming (OOP) was promoted as the one solution to all software problems. Today, however, the tide seems to have turned and functional programming (FP) is on the rise. OOP, on the other hand, seems to be considered an obsolescent paradigm:
- “Inheritance is the Base Class of Evil” (Sean Parent, 2013)
- “OOP is dead” (Stoyan Nicolov, 2018)
- “[Object-oriented programming] is not what the cool kids are doing in C++.” (Jon Kalb, 2019)
- “Eliminating Virtual Functions” (Jonathan Gopel, 2022)
- ”I believe that object-oriented programming and especially its theory is overestimated. … C++ always had templates, and now also has std::variant, which makes most of the use of inheritance unnecessary.” (Unknown Reviewer, 2023)
std::variant is indeed a fantastic solution: it’s functional, it’s simple, it’s value-based, and — perhaps most importantly — it’s fast. So it feels and sounds like a great replacement of virtual functions and object-oriented programming.
Unfortunately it is not. There is no silver bullet. There simply isn’t this one solution that works everywhere and every time. Truth is that neither OOP nor FP can solve all problems — we need both of them.
In this talk I’ll shed light on this antagonistic competition between OOP and FP. I’ll compare them by means of a practical example and show that both have their architectural strengths, but also weaknesses — along with many similarities.
I’ll also demonstrate that OOP has evolved: today, we prefer the value-based type erased style to the classic GoF style. From an architectural point of view, the object-oriented Type Erasure is the antipode to the functional std::variant and I’ll show that only a wise combination leads to successful architectures.
Bio:
Klaus Iglberger is a freelance C++ trainer and consultant. He is passionate talking about clean, safe and maintainable C++ and shares his expertise in popular C++ courses — from beginner to advanced — all around the world. He is the author of “C++ Software Design”, one of the organizers of the Munich C++ user group, and the (co-)organizer of the Back-to-Basics and Software Design tracks at CppCon.

Pre-NDC-TechTown Meetup with Klaus Iglberger: There Is No Silver Bullet