Deutsch English Français Italiano |
<vj0b68$2mqem$1@dont-email.me> View for Bookmarking (what is this?) Look up another Usenet article |
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" <chris.m.thomasson.1@gmail.com> 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: <vj0b68$2mqem$1@dont-email.me> References: <d8a5a0d563f0b9b78b34711d12d4975a7941f53a.camel@gmail.com> <86frn6og85.fsf@linuxsc.com> <853d65692ada3865dafc2c6010539ed20e4e348c.camel@gmail.com> <vile40$3k3j8$1@dont-email.me> <f4160b394cf17e59f10b2ed1c02db87045849f4a.camel@gmail.com> <vinovj$aonc$1@dont-email.me> <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 <wyniijj5@gmail.com> 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.