Why C++ is not very fit for GUI programming
Oleg Kiselyov

TL;DR
This paper discusses the fundamental mismatches between C++'s static, compile-time design and the dynamic, hierarchical nature of GUI programming, highlighting the challenges and limitations faced when using C++ for GUI development.
Contribution
It identifies key limitations of C++ in GUI programming and illustrates how these lead to code duplication, unsafe practices, and loss of language features.
Findings
C++'s static model conflicts with dynamic GUI hierarchies
GUI features like event broadcasting are not directly supported in C++
Using C++ for GUIs often results in code bloat and unsafe practices
Abstract
With no intent of starting a holy war, this paper lists several annoying C++ birthmarks that the author has come across developing GUI class libraries. C++'s view of classes, instances and hierarchies appears tantalizingly close to GUI concepts of controls, widgets, window classes and subwindows. OO models of C++ and of a window system are however different. C++ was designed to be a "static" language with a lexical name scoping, static type checking and hierarchies defined at compile time. Screen objects on the other hand are inherently dynamic; they usually live well beyond the procedure/block that created them; the hierarchy of widgets is defined to a large extent by layout, visibility and event flow. Many GUI fundamentals such as dynamic and geometric hierarchies of windows and controls, broadcasting and percolation of events are not supported directly by C++ syntax or execution…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering and Design Patterns · Software Engineering Research · Advanced Software Engineering Methodologies
