Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: Lawrence D'Oliveiro Newsgroups: alt.folklore.computers,comp.os.linux.misc Subject: Re: Multiple Inheritance [was Re: The joy of FORTRAN] Date: Thu, 3 Oct 2024 21:52:34 -0000 (UTC) Organization: A noiseless patient Spider Lines: 32 Message-ID: References: <5mqdnZuGq4lgwm_7nZ2dnZfqnPSdnZ2d@earthlink.com> <1r0e6u9.1tubjrt1kapeluN%snipeco.2@gmail.com> <20240925083451.00003205@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Injection-Date: Thu, 03 Oct 2024 23:52:34 +0200 (CEST) Injection-Info: dont-email.me; posting-host="319a655577b0d958d85bd19ad5bdfbec"; logging-data="4092900"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18y4RqPTjxjEz6VYcpcseoX" User-Agent: Pan/0.160 (Toresk; ) Cancel-Lock: sha1:Y8h5XxhuJD3RsLvnPSxkK5uUH/Y= Bytes: 3182 On Thu, 3 Oct 2024 08:58:35 +0100, Pancho wrote: > Deep down, I don't really care about enums. They are nice to have, > intellisense mainly, but I don't want to spend time thinking about them. Ah, I wondered. So you depend on your IDE’s autocomplete to do at least some of your thinking for you? That might explain your attitude to coding. Enums have a great many uses. You know about bit masks? I use enums here to give them symbolic names (easier for the user to understand) that can be used in a set that encodes to the mask (because that’s what the underlying C API expects), and conversely the enum provides a classmethod that can decode the low-level mask back to a set of symbolic names, for easier display for debugging. It’s all about using the language tools available to make things easier for yourself. >> “Interfaces” are just “abstract base classes lite”. They are a way to >> provide a very limited form of multiple inheritance, in the hope that >> this would somehow avoid the bewilderment that comes from multiple >> inheritance as done in C++. >> > "Pure virtual classes" rather than abstract. Only C++ uses the term “virtual” in that sense. Proper OO languages don’t. > There is a trade off between a software language being simple, and being > able to neatly solve all problems. Some languages manage to be simpler, and yet more powerful, than others. Compare Python to Java or C++, for example.