Groups | Search | Server Info | Login | Register
Groups > de.alt.folklore.computer > #50645
| From | Eric Bruecklmeier <u@5i7.de> |
|---|---|
| Newsgroups | de.alt.folklore.computer |
| Subject | Re: COMAL |
| Date | 2025-06-11 07:22 +0200 |
| Organization | 5i7 |
| Message-ID | <masi58Fu2jeU1@mid.individual.net> (permalink) |
| References | (16 earlier) <1026pij$is5r$1@dont-email.me> <maq0e2Fh40dU1@mid.individual.net> <slrn104gnqe.kt57.hjp-usenet4@trintignant.hjp.at> <mar60eFmarpU1@mid.individual.net> <slrn104gvml.tgel.hjp-usenet4@trintignant.hjp.at> |
Am 10.06.2025 um 20:52 schrieb Peter J. Holzer: > On 2025-06-10 18:49, Eric Bruecklmeier <u@5i7.de> wrote: >> Am 10.06.2025 um 18:37 schrieb Peter J. Holzer: >>> On 2025-06-10 08:08, Eric Bruecklmeier <nil@nil.nil> wrote: >>>> Am 09.06.2025 um 16:02 schrieb Thomas Koenig: >>>>> Eric Bruecklmeier <u@5i7.de> schrieb: >>>>>> Am 09.06.2025 um 14:06 schrieb Thomas Koenig: >>>>>>> Man kann natürlich auch ohne programmieren, aber für bestimmte >>>>>>> Aufgaben ist Objektorientierung eine "natürliche" Sache. >>>>>> >>>>>> Exakt so ist es! Unter OO programmiert man so, wie man ohnehin >>>>>> denken würde. >>>>> >>>>> Die Aussage ist jetzt ein bisschen schräg. Wer ist "man"? >>>>> Was heißt "ohnehin"? Ohne was? Ohne vorher mal irgendetwas >>>>> von einer anderen Programmiersprache gehört zu haben? Dann >>>>> wird man auch mit C++ Probleme haben, ohne mit dem Konzept >>>>> von Variablen und Zuweisungen was anfangen zu können. >>>> >>>> Weiter oben im Thread hatte ich schonmal dargelegt, was ich damit meine: >>>> >>>> Wenn man in RL einen Gegenstand benutzen möchte, dann nutzt man eine >>>> "Methode" dieses Gegenstandes und schickt ihn nicht an eine "Funktion". >>>> >>>> Also: Auto.fahre statt Fahre(Auto) >>> >>> Gerade das halte ich für ein schlechtes Beispiel, denn "fahren" ist >>> etwas, das ich mit dem Auto mache. >> >> Genau aus diesem Grund ist es ein prägnantes Beispiel. Ich nutze eine >> Funktion des Objektes und übergebe nicht mein Objekt an irgendeine frei >> schwebende Funktion. > > Ich glaube, ich sehe da einen Unterschied im geistigen Modell, das wir > beide bei imperativen Sprachen haben: Für mich wird die Prozedur auf die > Parameter *angewendet*. > Du hingegen siehst die Prozedur als irgendeine freischwebende Entität, > an die das Auto geschickt wird. Ich vermute, dass Du da das > Message-Passing-Modell der OOP verinnerlicht hast. > > Ich gebe Dir vollkommen recht, dass die Vorstellung, das Auto würde an > die Prozedur geschickt, absurd ist. Aber die Anwendung der Prozedur > (wenn Du so willst, den Algorithmus, den man in der Fahrschule gelernt > hat) auf das Auto passt IMHO gut. Da wird es dann aber schon wieder komisch: Die selbe Prozedur fahren wird auf Skateboards und Autos angewandt? Das überzeugt mich nicht. > Ich, der Fahrer habe die Kontrolle darüber, was passiert: Ich habe ein > Ziel, ich nehme Inputs auf, entscheide dann jeweils was ich machen will > und verwende dafür dann einzelne Funktionen des Autos (Lenkrad, Gas, > Bremsen, ...). Diese Prozedur führe ich als Fahrer durch, ich sage nicht > dem Auto "fahr!" und es macht dann alles selbständig (noch nicht). Wenn > ich dafür eine Simulation schreiben müsst, würde ich fahre als Methode > der Klasse Fahrer implementieren, nicht als Methode der Klasse Auto. > > >>> Ich habe das erste Mal objekt-orientiert programmiert, bevor ich den >>> Begriff kannte und außerdem noch in einer Programmiersprache, die eher >>> nicht dafür gedacht ist (C), und ich fühle mich in objekt-orientierter >>> Programmierung nach wie vor wohl - aber ich bezweifle, dass "man" (also >>> der Durchschnittsmensch) so denkt. Das ist eine zusätzliche >>> Abstraktionsstufe, die man lernen muss, und mit der auch Programmierer >>> durchaus ihre Probleme haben. >> >> IMHO ist das genaue Gegenteil der Fall. Nach meiner Erfahrung haben nur >> Programmierer damit Probleme, die vorher durch andere Paradigmen >> "versaut" wurden. Die die direkt in OOP beginnen empfinden das als >> völlig normal und "natürlich". > > In gewissem Umfang ist das klar: Wenn man noch keine Ahnung vom > Programmieren hat, wird man immer das, was man gerade lernt, als die > natürliche Art akzeptieren. Man kennt ja nichts anderes. > > >>>>> Nehmen wir mal eins meiner allerersten Programme, auf das >>>>> ich damals sehr stolz war: Primfaktorenzerlegung auf einem >>>>> 38-Programmierschritte-Casio. (Ist ja "folklore" hier :-) 123456789 >>>>> habe ich damit hinbekommen. Für Objektorientierung sehe ich bei >>>>> so einem Programm keinen Nutzen. >>>> >>>> Natürlich gibt es genug (sehr kleine) Aufgaben, bei denen OOP keinen >>>> unmittelbaren Mehrwert zeigt. Aber auch in Deinem Beispiel könnte >>>> n.prime? nützlich sein... >>> >>> Eigentlich nicht. Und selbst wenn, ist n.prime? nicht besser als >>> isprime(n). >> >> Das Beispiel prime? ist sicher nicht optimal, da es nur bei einem >> Datentypen sinnvoll ist und die Schönheit der Polymorphie damit nicht >> sichtbar wird. > > Nein, das ist nicht der Grund. Polymorphie kann man da ganz zwanglos > sehen: Verschiedene Integer-Typen oder ganz andere Algebras (Algebren? > Ich glaube, das ist das erste mal, dass ich den Plural von Algebra > gebraucht habe) in denen das Konzept eines Prim-Elements Sinn ergibt. Mein Argument war aber, daß bei n.methode Polymorphie ganz natürlich und logisch ist, während das bei Proc(n) nicht der Fall ist. Das wird schon dadurch erkennbar, daß in der Mathematik für bestimmte Funktionen manche Zahlen nicht als Parameter übergeben werden dürfen. Wären es Methoden im Sinne der OOP, dann gäbe es diese Methoden einfach nicht. Beim Ducktyping kann mir der Datentyp letztlich egal sein... > Mein Argument ist, dass die Implementation des Algorithmus selbst in > einer objekt-orientierten Sprache nicht anders als in einer > nicht-objektorientierten Sprache formuliert würde und dass Existenz > einer Funktion oder Methode, die prüft, ob eine Zahl prim ist, dafür gar > nicht notwendig ist. > > Hier ist eine Implementation (ganz naiv, nicht optimiert und ohne > Fehlerbehandlung): > > def factors(n): > f = [] > p = 2 > while n >= p: > if n % p == 0: > f.append(p) > n //= p > else: > p += 1 > return f > > Wie würde ich das objekt-orientiert schreiben? > > >>> Objektorientierte Programmierung ist IMHO immer dort sinnvoll, wo man >>> "Dinge" behandelt, die mutablen State haben, oder wo man diese Dinge >>> ähnlich aber nicht gleich sind. >> >> Diese Einschränkung sehe ich nicht, Ducktyping und Polymorphie können >> genauso bei Immutables sinnvoll sein. > > Du hast das "oder" im Satz übersehen. Ducktyping und Polymorphie helfen > eben genau dann, wenn die Dinge "ähnlich aber nicht gleich" sind. Also > wenn ich z.B. die sinngemäß gleiche Operation auf sie anwenden kann, die > aber anders implementiert sein muss. Ja, das "oder" hatte ich wohl übersehen. Ich melde mich jetzt mal aus der Diskussion ab - da viel Arbeit ruft!
Back to de.alt.folklore.computer | Previous | Next — Previous in thread | Next in thread | Find similar
Re: COMAL Thomas Koenig <tkoenig@netcologne.de> - 2025-05-31 10:16 +0000
Re: COMAL Eric Bruecklmeier <u@5i7.de> - 2025-06-01 17:19 +0200
Re: COMAL Kay Martinen <usenet@martinen.de> - 2025-06-01 23:57 +0200
Re: COMAL Eric Bruecklmeier <u@5i7.de> - 2025-06-02 08:16 +0200
Re: COMAL "Peter J. Holzer" <hjp-usenet4@hjp.at> - 2025-06-02 12:56 +0200
Re: COMAL ram@zedat.fu-berlin.de (Stefan Ram) - 2025-06-02 11:17 +0000
Re: COMAL Eric Bruecklmeier <u@5i7.de> - 2025-06-02 17:10 +0200
Re: COMAL Kay Martinen <usenet@martinen.de> - 2025-06-04 11:54 +0200
Re: COMAL Eric Bruecklmeier <u@5i7.de> - 2025-06-04 13:16 +0200
Re: COMAL Kay Martinen <usenet@martinen.de> - 2025-06-08 22:19 +0200
Re: COMAL Eric Bruecklmeier <u@5i7.de> - 2025-06-09 09:47 +0200
Re: COMAL Kay Martinen <usenet@martinen.de> - 2025-06-09 16:38 +0200
Re: COMAL Thomas Koenig <tkoenig@netcologne.de> - 2025-06-09 12:06 +0000
Re: COMAL Eric Bruecklmeier <u@5i7.de> - 2025-06-09 14:59 +0200
Re: COMAL Thomas Koenig <tkoenig@netcologne.de> - 2025-06-09 14:02 +0000
Re: COMAL Eric Bruecklmeier <nil@nil.nil> - 2025-06-10 08:08 +0200
Re: COMAL Stefan+Usenet@Froehlich.Priv.at (Stefan Froehlich) - 2025-06-10 09:36 +0000
Re: COMAL Eric Bruecklmeier <u@5i7.de> - 2025-06-10 12:10 +0200
Re: COMAL "Peter J. Holzer" <hjp-usenet4@hjp.at> - 2025-06-10 18:41 +0200
Re: COMAL Stefan+Usenet@Froehlich.Priv.at (Stefan Froehlich) - 2025-06-10 21:03 +0000
Re: COMAL Gerrit Heitsch <gerrit@laosinh.s.bawue.de> - 2025-06-11 07:01 +0200
Re: COMAL "Peter J. Holzer" <hjp-usenet4@hjp.at> - 2025-06-10 18:37 +0200
Re: COMAL Eric Bruecklmeier <u@5i7.de> - 2025-06-10 18:49 +0200
Re: COMAL "Peter J. Holzer" <hjp-usenet4@hjp.at> - 2025-06-10 20:52 +0200
Re: COMAL ram@zedat.fu-berlin.de (Stefan Ram) - 2025-06-10 19:12 +0000
Re: COMAL Eric Bruecklmeier <u@5i7.de> - 2025-06-11 07:22 +0200
Re: COMAL Thomas Koenig <tkoenig@netcologne.de> - 2025-06-11 05:51 +0000
Re: COMAL Eric Bruecklmeier <u@5i7.de> - 2025-06-11 08:15 +0200
Re: COMAL Stefan+Usenet@Froehlich.Priv.at (Stefan Froehlich) - 2025-06-11 08:04 +0000
Re: COMAL Eric Bruecklmeier <u@5i7.de> - 2025-06-11 11:41 +0200
Re: COMAL Dietrich Clauss <dietrich@clauss-it.com> - 2025-06-12 12:47 +0200
Re: COMAL Thomas Koenig <tkoenig@netcologne.de> - 2025-06-12 16:50 +0000
Re: COMAL Thomas Koenig <tkoenig@netcologne.de> - 2025-06-11 17:13 +0000
Re: COMAL Eric Bruecklmeier <nil@nil.nil> - 2025-06-12 07:41 +0200
Re: COMAL Eric Bruecklmeier <nil@nil.nil> - 2025-06-12 08:22 +0200
Re: COMAL Thomas Koenig <tkoenig@netcologne.de> - 2025-06-12 19:41 +0000
Re: COMAL Thomas Koenig <tkoenig@netcologne.de> - 2025-06-12 20:00 +0000
Re: COMAL Eric Bruecklmeier <nil@nil.nil> - 2025-06-13 08:20 +0200
Re: COMAL Thomas Koenig <tkoenig@netcologne.de> - 2025-06-13 16:55 +0000
Re: COMAL Eric Bruecklmeier <u@5i7.de> - 2025-06-14 10:45 +0200
Re: COMAL Thomas Koenig <tkoenig@netcologne.de> - 2025-06-14 09:24 +0000
Re: COMAL Eric Bruecklmeier <u@5i7.de> - 2025-06-14 11:29 +0200
Re: COMAL Thomas Koenig <tkoenig@netcologne.de> - 2025-06-14 09:36 +0000
Re: COMAL Eric Bruecklmeier <u@5i7.de> - 2025-06-14 11:41 +0200
Re: COMAL Arno Welzel <usenet@arnowelzel.de> - 2025-06-14 14:37 +0200
Re: COMAL Eric Bruecklmeier <u@5i7.de> - 2025-06-14 14:41 +0200
Re: COMAL Arno Welzel <usenet@arnowelzel.de> - 2025-06-14 15:01 +0200
Re: COMAL Thomas Koenig <tkoenig@netcologne.de> - 2025-06-14 13:25 +0000
Re: COMAL Marc Haber <mh+usenetspam1118@zugschl.us> - 2025-06-14 21:20 +0200
Re: COMAL "Peter J. Holzer" <hjp-usenet4@hjp.at> - 2025-06-14 21:52 +0200
Re: COMAL ram@zedat.fu-berlin.de (Stefan Ram) - 2025-06-14 20:20 +0000
Re: COMAL ram@zedat.fu-berlin.de (Stefan Ram) - 2025-06-16 13:28 +0000
Re: COMAL Thomas Koenig <tkoenig@netcologne.de> - 2025-06-15 07:42 +0000
Re: COMAL Eric Bruecklmeier <u@5i7.de> - 2025-06-14 16:13 +0200
Re: COMAL Arno Welzel <usenet@arnowelzel.de> - 2025-06-15 00:49 +0200
Re: COMAL Eric Bruecklmeier <u@5i7.de> - 2025-06-15 11:09 +0200
Re: COMAL Arno Welzel <usenet@arnowelzel.de> - 2025-06-15 17:01 +0200
Re: COMAL "Peter Heitzer" <peter.heitzer@rz.uni-regensburg.de> - 2025-06-16 08:56 +0000
Re: COMAL Thomas Koenig <tkoenig@netcologne.de> - 2025-06-17 07:03 +0000
Re: COMAL ram@zedat.fu-berlin.de (Stefan Ram) - 2025-06-14 14:49 +0000
Re: COMAL Marc Haber <mh+usenetspam1118@zugschl.us> - 2025-06-14 21:20 +0200
Re: COMAL "Peter J. Holzer" <hjp-usenet4@hjp.at> - 2025-06-14 21:58 +0200
Re: COMAL Arno Welzel <usenet@arnowelzel.de> - 2025-06-15 00:51 +0200
Re: COMAL Hermann Riemann <nospam.ng@hermann-riemann.de> - 2025-06-17 10:40 +0200
Re: COMAL Hermann Riemann <nospam.ng@hermann-riemann.de> - 2025-06-17 10:29 +0200
Re: COMAL Hermann Riemann <nospam.ng@hermann-riemann.de> - 2025-06-17 10:16 +0200
Re: COMAL Thomas Koenig <tkoenig@netcologne.de> - 2025-06-17 08:44 +0000
Re: COMAL Arno Welzel <usenet@arnowelzel.de> - 2025-06-14 14:34 +0200
Re: COMAL Thomas Koenig <tkoenig@netcologne.de> - 2025-06-14 13:23 +0000
Re: COMAL ram@zedat.fu-berlin.de (Stefan Ram) - 2025-06-14 14:45 +0000
Re: COMAL ram@zedat.fu-berlin.de (Stefan Ram) - 2025-06-15 12:41 +0000
Re: COMAL Thomas Koenig <tkoenig@netcologne.de> - 2025-06-15 13:05 +0000
Re: COMAL Stefan+Usenet@Froehlich.Priv.at (Stefan Froehlich) - 2025-06-15 13:17 +0000
Re: COMAL Thomas Koenig <tkoenig@netcologne.de> - 2025-06-15 13:43 +0000
Re: COMAL "Peter J. Holzer" <hjp-usenet4@hjp.at> - 2025-06-15 16:52 +0200
Re: COMAL Thomas Koenig <tkoenig@netcologne.de> - 2025-06-15 15:32 +0000
Re: COMAL "Peter J. Holzer" <hjp-usenet4@hjp.at> - 2025-06-15 21:25 +0200
Re: COMAL Thomas Koenig <tkoenig@netcologne.de> - 2025-06-16 07:00 +0000
Re: COMAL "Peter J. Holzer" <hjp-usenet4@hjp.at> - 2025-06-16 18:38 +0200
Re: COMAL Arno Welzel <usenet@arnowelzel.de> - 2025-06-15 19:23 +0200
Re: COMAL Thomas Koenig <tkoenig@netcologne.de> - 2025-06-15 18:08 +0000
Re: COMAL Arno Welzel <usenet@arnowelzel.de> - 2025-06-15 21:31 +0200
Re: COMAL Thomas Koenig <tkoenig@netcologne.de> - 2025-06-16 06:56 +0000
Re: COMAL "Peter J. Holzer" <hjp-usenet4@hjp.at> - 2025-06-15 21:32 +0200
Re: COMAL Arno Welzel <usenet@arnowelzel.de> - 2025-06-15 22:22 +0200
Re: COMAL Thomas Koenig <tkoenig@netcologne.de> - 2025-06-16 06:58 +0000
Re: COMAL ram@zedat.fu-berlin.de (Stefan Ram) - 2025-06-16 11:46 +0000
Re: COMAL Peter Müller <invalid@invalid.invalid> - 2025-06-16 19:13 +0200
Re: COMAL ram@zedat.fu-berlin.de (Stefan Ram) - 2025-06-16 11:40 +0000
Re: COMAL Stefan Reuther <stefan.news@arcor.de> - 2025-06-16 18:25 +0200
Re: COMAL Arno Welzel <usenet@arnowelzel.de> - 2025-06-15 17:02 +0200
Re: COMAL Marc Haber <mh+usenetspam1118@zugschl.us> - 2025-06-15 19:08 +0200
Re: COMAL Hermann Riemann <nospam.ng@hermann-riemann.de> - 2025-06-17 10:58 +0200
Re: COMAL "Peter J. Holzer" <hjp-usenet4@hjp.at> - 2025-06-11 13:06 +0200
Re: COMAL ram@zedat.fu-berlin.de (Stefan Ram) - 2025-06-11 12:24 +0000
Re: COMAL Eric Bruecklmeier <u@5i7.de> - 2025-06-11 15:12 +0200
Re: COMAL Eric Bruecklmeier <u@5i7.de> - 2025-06-11 15:11 +0200
Re: COMAL "Peter J. Holzer" <hjp-usenet4@hjp.at> - 2025-06-11 16:43 +0200
Re: COMAL Eric Bruecklmeier <u@5i7.de> - 2025-06-11 17:59 +0200
Re: COMAL "Peter J. Holzer" <hjp-usenet4@hjp.at> - 2025-06-11 12:53 +0200
Re: COMAL Eric Bruecklmeier <u@5i7.de> - 2025-06-11 15:14 +0200
Re: COMAL "Peter J. Holzer" <hjp-usenet4@hjp.at> - 2025-06-11 16:35 +0200
Re: COMAL Eric Bruecklmeier <u@5i7.de> - 2025-06-11 18:00 +0200
Re: COMAL ram@zedat.fu-berlin.de (Stefan Ram) - 2025-06-10 17:22 +0000
Re: COMAL Eric Bruecklmeier <u@5i7.de> - 2025-06-10 19:25 +0200
Re: COMAL "Peter J. Holzer" <hjp-usenet4@hjp.at> - 2025-06-10 20:06 +0200
Re: COMAL ram@zedat.fu-berlin.de (Stefan Ram) - 2025-06-11 09:48 +0000
Re: COMAL Dietrich Clauss <dietrich@clauss-it.com> - 2025-06-12 12:41 +0200
Re: COMAL ram@zedat.fu-berlin.de (Stefan Ram) - 2025-06-12 11:19 +0000
Re: COMAL Eric Bruecklmeier <u@5i7.de> - 2025-06-12 13:26 +0200
Re: COMAL "Peter J. Holzer" <hjp-usenet4@hjp.at> - 2025-06-12 20:17 +0200
Re: COMAL ram@zedat.fu-berlin.de (Stefan Ram) - 2025-06-12 18:38 +0000
Re: COMAL ram@zedat.fu-berlin.de (Stefan Ram) - 2025-06-12 18:54 +0000
Re: COMAL ram@zedat.fu-berlin.de (Stefan Ram) - 2025-06-12 19:16 +0000
Re: COMAL ram@zedat.fu-berlin.de (Stefan Ram) - 2025-06-12 19:34 +0000
Re: COMAL Gerrit Heitsch <gerrit@laosinh.s.bawue.de> - 2025-06-12 20:56 +0200
Re: COMAL "Peter J. Holzer" <hjp-usenet4@hjp.at> - 2025-06-12 21:26 +0200
Re: COMAL ram@zedat.fu-berlin.de (Stefan Ram) - 2025-06-12 20:02 +0000
Re: COMAL ram@zedat.fu-berlin.de (Stefan Ram) - 2025-06-12 20:09 +0000
Re: COMAL Gerrit Heitsch <gerrit@laosinh.s.bawue.de> - 2025-06-13 06:48 +0200
Re: COMAL Thomas Koenig <tkoenig@netcologne.de> - 2025-06-12 19:44 +0000
Re: COMAL Eric Bruecklmeier <nil@nil.nil> - 2025-06-13 08:32 +0200
Re: COMAL Dietrich Clauss <dietrich@clauss-it.com> - 2025-06-13 09:49 +0200
Re: COMAL ram@zedat.fu-berlin.de (Stefan Ram) - 2025-06-13 08:23 +0000
Re: COMAL Eric Bruecklmeier <u@5i7.de> - 2025-06-13 10:43 +0200
Re: COMAL Eric Bruecklmeier <u@5i7.de> - 2025-06-13 10:47 +0200
Re: COMAL Stefan+Usenet@Froehlich.Priv.at (Stefan Froehlich) - 2025-06-10 06:18 +0000
OOP (was: COMAL) "Peter J. Holzer" <hjp-usenet4@hjp.at> - 2025-06-10 18:57 +0200
Re: OOP ram@zedat.fu-berlin.de (Stefan Ram) - 2025-06-10 17:34 +0000
Re: OOP ram@zedat.fu-berlin.de (Stefan Ram) - 2025-06-10 17:40 +0000
Re: OOP Stefan+Usenet@Froehlich.Priv.at (Stefan Froehlich) - 2025-06-10 21:12 +0000
Re: OOP "Peter J. Holzer" <hjp-usenet4@hjp.at> - 2025-06-11 12:33 +0200
Re: OOP ram@zedat.fu-berlin.de (Stefan Ram) - 2025-06-11 12:14 +0000
Re: OOP Hermann Riemann <nospam.ng@hermann-riemann.de> - 2025-06-13 11:25 +0200
Re: OOP ram@zedat.fu-berlin.de (Stefan Ram) - 2025-06-13 09:59 +0000
csiph-web