Re:Public/protected/private is an unnecessary feature
by default-kramer on Thursday June 19, 2025 @11:25PM
(#44324461)
I strongly prefer FP over OOP, but... Is there any desktop GUI library that isn't built on subclassing? Winforms, WPF, Swing, Qt, Godot all do. This doesn't prove that subclassing is necessary, but it sure seems like the best approach we've found so far.
[ Parent
| on HN ]
Re:Public/protected/private is an unnecessary feature
by dragonwriter on Thursday June 19, 2025 @11:31PM
(#44324481)
> Is there any desktop GUI library that isn't built on subclassing?
There are desktop GUI libraries implemented in C, Go, and other languages that do not have subclassing, so, the answer kind of has to be yes.
Re:Public/protected/private is an unnecessary feature
by throwaway2037 on Friday June 20, 2025 @01:12AM
(#44324920)
Gtk+ is pure C, but the library essentially implements subclassing manually. It is so painful to use, and so much worse that the C++ equivalent in gtkmm. Again, Win32 API does similar to allow subclassing of widgets. Again, painful.
Re:Public/protected/private is an unnecessary feature
by SideQuark on Friday June 20, 2025 @07:58AM
(#44326866)
Every GUI toolkit I've used, which is many, implement subclassing for UI elements whether or not the language supports it. Remember, C++ was originally written in C, so it's clear lack of a native language feature doesn't mean things written in that language also lack that feature.
Re:Public/protected/private is an unnecessary feature
by throwaway2037 on Sunday June 22, 2025 @04:27AM
(#44345067)
I think your reply is more elegant than mine. Years ago, I worked on a Wall Street trading app that was written in pure C but had inheritance. It was a miracle to read the code as a 25 year old!
I wonder if there are any modern UI toolkits that do not use subclassing at all -- actual (C++/Java/C#) or synthetic (C). It would be such a PIA not to inherit from a base widget that handles most basic operations. Maaaaaybe it could be done purely with encapsulation... But, oh brother, that would a lot of boilerplate code!
Re:Public/protected/private is an unnecessary feature
by tpmoney on Friday June 20, 2025 @12:45PM
(#44329552)
I think the closest I’ve encountered is the Objective C frameworks Apple used to use. Customizing the behaviors of default library components was almost exclusively done with delegates and protocol implementation rather than subclassing.