Keynote: There Is No Silver Bullet to Solve All C++ Software Problems - Klaus Iglberger - C++ on Sea

Keynote: There Is No Silver Bullet to Solve All C++ Software Problems - Klaus Iglberger - C++ on Sea

6.066 Lượt nghe
Keynote: There Is No Silver Bullet to Solve All C++ Software Problems - Klaus Iglberger - C++ on Sea
https://cpponsea.uk​ --- Keynote: There Is No Silver Bullet to Solve All C++ Software Problems - Klaus Iglberger - C++ on Sea 2024 --- 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 Erasure 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. --- Slides: https://github.com/philsquared/cpponsea2024-slides/blob/main/Presentations/There_Is_No_Silver_Bullet.pdf Sponsored by Bloomberg: https://www.bloomberg.com/company/values/tech-at-bloomberg/c-plus-plus/ Sponsored By think-cell: https://www.think-cell.com/cpponsea --- Klaus Iglberger Klaus Iglberger is a freelance C++ trainer and consultant. He shares his expertise in popular C++ courses — from beginner to advanced — all around the world. He is the author of “C++ Software Design” [1], one of the organizers of the Munich C++ user group [2], and the (co-)organizer of the Back-to-Basics [3] and Software Design [4] tracks at CppCon [5]. [1] https://learning.oreilly.com/library/view/c-software-design/9781098113155/ [2] https://www.meetup.com/MUCplusplus/ [3] https://cppcon.org/b2b/ [4] https://cppcon.org/softwaredesign/ [5] https://cppcon.org --- C++ on Sea is the international C++ conference taking place by the sea, in the UK. Our venue is in Folkestone, Kent, near the entrance to the channel tunnel with stunning views across the English Channel. Annual C++ On Sea Conference - https://www.cpponsea.uk https://www.linkedin.com/company/cpponsea/ https://x.com/cpponsea https://www.facebook.com/profile.php?id=61551121766573 https://www.reddit.com/r/CppOnSea/ https://vmst.io/@cpponsea Video Sponsors: --- YouTube Videos Filmed, Edited & Optimised by Digital Medium: https://events.digital-medium.co.uk --- #cpp #cplusplus #softwareissues #cppprogramming #cpponsea