Groups | Search | Server Info | Login | Register


Groups > de.alt.folklore.computer > #50645

Re: COMAL

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>

Show all headers | View raw


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 | NextPrevious in thread | Next in thread | Find similar


Thread

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