Deutsch English Français Italiano |
<38bbb1eed64acdc01550f5da017e19eaa21bc83b.camel@gmail.com> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: wij <wyniijj5@gmail.com> Newsgroups: comp.lang.c++ Subject: Re: What is OOP? --- The most important aspect of OOP Date: Sun, 08 Dec 2024 00:32:39 +0800 Organization: A noiseless patient Spider Lines: 92 Message-ID: <38bbb1eed64acdc01550f5da017e19eaa21bc83b.camel@gmail.com> References: <d8a5a0d563f0b9b78b34711d12d4975a7941f53a.camel@gmail.com> <86frn6og85.fsf@linuxsc.com> <vj0cj5$2n835$1@dont-email.me> MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Injection-Date: Sat, 07 Dec 2024 17:32:41 +0100 (CET) Injection-Info: dont-email.me; posting-host="be7e840eaceccf236e484c6621607c8e"; logging-data="3352103"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18dlmG2kBA4pAKNRbtoiQ19" User-Agent: Evolution 3.50.2 (3.50.2-1.fc39) Cancel-Lock: sha1:3/pvy4+Eud33ZlQ6ynNGvIxv8oQ= In-Reply-To: <vj0cj5$2n835$1@dont-email.me> Bytes: 4990 On Fri, 2024-12-06 at 20:40 -0600, olcott wrote: > On 12/1/2024 10:34 PM, Tim Rentsch wrote: > > wij <wyniijj5@gmail.com> writes: > >=20 > > In response to the question of the subject line... > >=20 > > Just because a program is being written in a language that has > > functions doesn't mean that what is being done is functional > > programming. > >=20 > > 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. > >=20 > > More than anything else object-oriented programming is a mindset > > or a programming methodology.=C2=A0 It helps if the language being > > used supports classes, etc, but the methodology can be used even > > in languages that don't have them. > >=20 > > A quote: > >=20 > > =C2=A0=C2=A0=C2=A0=C2=A0 My guess is that object-oriented programming w= ill be in the > > =C2=A0=C2=A0=C2=A0=C2=A0 1980s what structured programming was in the 1= 970s. > > =C2=A0=C2=A0=C2=A0=C2=A0 Everyone will be in favor of it.=C2=A0 Every m= anufacturer will > > =C2=A0=C2=A0=C2=A0=C2=A0 promote his products as supporting it.=C2=A0 E= very manager will > > =C2=A0=C2=A0=C2=A0=C2=A0 pay lip service to it.=C2=A0 Every programmer = will practice it > > =C2=A0=C2=A0=C2=A0=C2=A0 (differently).=C2=A0 And no one will know just= what it is. > >=20 > > That paragraph is taken from a paper written more than 40 years > > ago.=C2=A0 The prediction came true with a vengeance, even more than > > the author expected.=C2=A0 Most of what has been written about object > > oriented programming was done by people who didn't understand it. > >=20 > > Two more quotes, these from Alan Kay: > >=20 > > =C2=A0=C2=A0=C2=A0=C2=A0 I invented the term "Object Oriented Programmi= ng," and C++ > > =C2=A0=C2=A0=C2=A0=C2=A0 is not what I had in mind. > >=20 > > =C2=A0=C2=A0=C2=A0=C2=A0 Though Smalltalk's structure allows the techni= que now known > > =C2=A0=C2=A0=C2=A0=C2=A0 as data abstraction to be easily (and more gen= erally) > > =C2=A0=C2=A0=C2=A0=C2=A0 employed, the entire thrust of its design has = been to > > =C2=A0=C2=A0=C2=A0=C2=A0 supersede the concept of data and procedures e= ntirely;=C2=A0 to > > =C2=A0=C2=A0=C2=A0=C2=A0 replace these with the more generally useful n= otions of > > =C2=A0=C2=A0=C2=A0=C2=A0 activity, communication, and inheritance. >=20 > The most important aspect of OOP is the ability to decompose > a problem into independent component parts. This can eliminate > the side effects in the structured programming model that > result from global data. Most of problems are solved by decomposing to smaller ones, describing the problem in more and more detail, or in different view. A problem begins with the description of the problem. Description of the natural language is basically the pattern Noun+Verb [+No= un], which corresponds to object's function member call. So, OOP is simulating natural sentences, making it 'objectively' executable= by machine. An unambiguous, efficient and machine-executable description is= =20 derived by repeated improvement of try-error. So, OOP is 'just' a way to make our notion itself of the problem clear. No matter how the programming problem is given, we do not start out having a clear description of the problem. OOP is a method helps us understanding = the problem. Not strictly can a top-down process yield the program. I just took a look of https://en.cppreference.com/w/cpp/filesystem (I am no= t familiar with 'standard' things). It looks to me that the class (objects) a= re actually 'string' (of special format), they are actually dealing with strin= g problems. The idea of that library is not much different from common=20 C-programming. All the complexity pose more problems and solves little, ver= y=C2=A0 inefficient.