Path: ...!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: Tue, 3 Dec 2024 12:16:51 -0800 Organization: A noiseless patient Spider Lines: 96 Message-ID: References: <86frn6og85.fsf@linuxsc.com> <853d65692ada3865dafc2c6010539ed20e4e348c.camel@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Date: Tue, 03 Dec 2024 21:16:52 +0100 (CET) Injection-Info: dont-email.me; posting-host="f777e730b2e8168ebcdb2932c05660c1"; logging-data="353004"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+eacCZJiYg6gaS2RVcNhU3CABlFB3Abr4=" User-Agent: Mozilla Thunderbird Cancel-Lock: sha1:r85zMt6bQbNDMR8N/gd8mVA+hi4= Content-Language: en-US In-Reply-To: Bytes: 5799 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. :^) 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