Path: ...!weretis.net!feeder9.news.weretis.net!news.quux.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: "Chris M. Thomasson" Newsgroups: comp.lang.c++ Subject: Re: What is OOP? Date: Fri, 6 Dec 2024 18:16:40 -0800 Organization: A noiseless patient Spider Lines: 111 Message-ID: References: <86frn6og85.fsf@linuxsc.com> <853d65692ada3865dafc2c6010539ed20e4e348c.camel@gmail.com> <21243d708de746fc708ba7b9eeaf5a5e2b655518.camel@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Date: Sat, 07 Dec 2024 03:16:40 +0100 (CET) Injection-Info: dont-email.me; posting-host="a6a1dd9c67667a3878be90669c229871"; logging-data="2845142"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18l0J3/dpBvqkfE/DjqflMkHYvPPbkmu5Y=" User-Agent: Mozilla Thunderbird Cancel-Lock: sha1:pFYMy1nY9FYufH5DTg+w0RgllNY= In-Reply-To: <21243d708de746fc708ba7b9eeaf5a5e2b655518.camel@gmail.com> Content-Language: en-US Bytes: 6726 On 12/3/2024 4:44 PM, wij wrote: > On Tue, 2024-12-03 at 12:16 -0800, Chris M. Thomasson wrote: >> On 12/3/2024 2:38 AM, wij wrote: >>> On Mon, 2024-12-02 at 14:59 -0800, Chris M. Thomasson wrote: >>>> On 12/2/2024 12:49 AM, wij wrote: >>>>> On Sun, 2024-12-01 at 20:34 -0800, Tim Rentsch wrote: >>>>>> wij writes: >>>>>> >>>>>> In response to the question of the subject line... >>>>>> >>>>>> Just because a program is being written in a language that has >>>>>> functions doesn't mean that what is being done is functional >>>>>> programming. >>>>>> >>>>>> Just because a program is being written in a language that has >>>>>> classes and objects doesn't mean that what is being done is >>>>>> object-oriented programming. >>>>>> >>>>>> More than anything else object-oriented programming is a mindset >>>>>> or a programming methodology.  It helps if the language being >>>>>> used supports classes, etc, but the methodology can be used even >>>>>> in languages that don't have them. >>>>>> >>>>>> A quote: >>>>>> >>>>>>       My guess is that object-oriented programming will be in the >>>>>>       1980s what structured programming was in the 1970s. >>>>>>       Everyone will be in favor of it.  Every manufacturer will >>>>>>       promote his products as supporting it.  Every manager will >>>>>>       pay lip service to it.  Every programmer will practice it >>>>>>       (differently).  And no one will know just what it is. >>>>>> >>>>>> That paragraph is taken from a paper written more than 40 years >>>>>> ago.  The prediction came true with a vengeance, even more than >>>>>> the author expected.  Most of what has been written about object >>>>>> oriented programming was done by people who didn't understand it. >>>>>> >>>>>> Two more quotes, these from Alan Kay: >>>>>> >>>>>>       I invented the term "Object Oriented Programming," and C++ >>>>>>       is not what I had in mind. >>>>>> >>>>>>       Though Smalltalk's structure allows the technique now known >>>>>>       as data abstraction to be easily (and more generally) >>>>>>       employed, the entire thrust of its design has been to >>>>>>       supersede the concept of data and procedures entirely;  to >>>>>>       replace these with the more generally useful notions of >>>>>>       activity, communication, and inheritance. >>>>> >>>>> Thanks for those information (I did not particularly study 'OOP'). >>>>>   From my >20 years of practice, I would say the object+action model >>>>> works nearly perfectly. Particularly it is the same idea with >>>>> abstract algebra. IOW, OOP is programming abstract algebra for >>>>> general problems. >>>>> I recently read a book (translation version) >>>>> https://www.amazon.com/Mind-Motion-Action-Shapes-Thought/dp/046509306X >>>>> OO is probably also how our brain works. So, yes, we don't absolutely need OO >>>>> language to program in OO, OO is natural (thou C++ is very suitable. And, there >>>>> may be other kind of good programming model). >>>>> >>>>> Note: A point in 'the' inheritance theory of OO is seriously false. >>>>>         I can't say it right now, it is about inherited class has to delete >>>>>         inherited member. >>>>> >>>> >>>> Have you ever messed around with cohort scheduling? Not sure why I am >>>> thinking of that now after reading your response. Humm... >>>> >>>> https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/tr-2001-39.pdf >>> >>> Just like the reason libwy uses POSIX API, mostly, and does pretend it is not. >>> If you want to understand the basic programming objects, try POSIX thread first >>> (even just by reading the manual is helpful enough) not that from C++std library. >>> >>> There are many books talk about POSIX threads in C. mess around those C codes, then >>> you get the real thing. >>> >> >> Fwiw, I used POSIX Threads for many years. Heck, I even used to converse >> with the Man himself... ;^) Dave Butenhof over on c.p.t, back in its >> glory days. He wrote an interesting book: >> >> https://www.amazon.com/Programming-POSIX-Threads-David-Butenhof/dp/0201633922 >> >> It was fun talking to him. :^) > > Yup, I remember those days, he was diligent answering all sorts of questions > about pthreading. In the same period, c++ was super busy. :^D So you know the realm of those "good times" for sure! >> So, I know how to use POSIX, and PThreads to boot. Then, when C/C++11 >> came out, well... I started to port some of my work over to it. They >> work well and are more standard than PThreads in a sense? >> >> Fwiw, my pthread lib of choice over in the windows world was: >> >> https://sourceware.org/pthreads-win32/ >> >> I remember back when I won a brand new SunFire t2000 server (before they >> were available for sale to the public) wrt the CoolThreads contest with >> my experimental vZoom project. I used PThreads on Solaris for that. fun >> times! :^D > > That made me feel I was a bit awkward. OK, let's say it C++'s fault. > I need to find that old post over on c.p.t about a time when GCC sure seemed to break a pthread_mutex_trylock function call, wrt its critical section indeed.