[linux-l] Re: SW-Design / Modules vs. Objects/Classes
Rocco Rutte
pdmef at cs.tu-berlin.de
So Okt 23 20:12:58 CEST 2005
Hi,
* Axel Weiß [05-10-23 18:40:14 +0200] wrote:
>Rocco Rutte schrieb:
>> Wie macht man sowas in C++ _ohne_ Switch/Case und If/Then/Else?
>ich denke, das ist hier nicht die Frage: wie macht man etwas in einer
>Sprache, ohne ein bestinmmtes Sprachkonstrukt zu verwenden.
Das hat IMHO nichts mit der Sprache zu tun.
>Es geht doch ums Umsetzen von Konzepten. Und hier geht es um den
>Vergleich zwischen FP- und OO-Konzepten. Meine These an dieser Stelle
>ist: die Wahl der Sprache, mit der man ein Konzept umsetzt, ist zunächst
>zweitrangig.
Der Begriff "Konzept" ist leider etwas schwammig. Zumindest vom
wissenschaftlichen Standpunkt her sind funktional und OO ja schon mal
nicht in der selben Klasse (imperativ dagegen wäre es).
>Natürlich haben Sprachen ihre Vorzüge - was man in der einen Sprache
>elegant mit wenig Worten formuliert, benötigt in einer anderen Sprache
>vielleicht mehr Aufwand.
Jein. Bei funktional ist nicht der Hauptpunkt, dass man meist weniger
Code hat sondern dass der Code eine _mathematische_ Abbildung einer
_konstanten_ Eingabe- auf eine Ausgabemenge ist mit allen Implikationen,
wenn man es genau nimmt. Das widerspricht dem
Algorithmus-Konzept von vielen OO-Sprachen völlig, weil die meist
imperativ sind. So können dort Algorithmen Userinput während der
Laufzeit entgegen nehmen und verarbeiten, was funktional (streng
gesehen) völlig ausgeschlossen ist (die Eingabe, d.h. der
Ausgangsszustant wäre ja nicht konstant; während man eine mathematische
Abbildung "abarbeitet" können sich die Rahmenbedingungen ja auch nicht
ändern, etc.)
Das dann Sprachen der jeweiligen Familien auf der Grundidee aufbauen ist
ja klar, aber das kann man IMHO nicht konzeptionell der Sprache
anrechnen sondern eben der Grundidee.
>Aber es wäre falsch, zu sagen, dass man mit C++ nicht funktional
>programmieren kann, genauso wäre es falsch, zu sagen, mit OCaml könne
>man nicht objektorientiert programmieren. Ich hoffe, da sind wir uns
>einig.
Von der Grundidee her eigentlich "ja", aber eben "eigentlich" und
deshalb wissenschaftlich "nein", IMHO.
bye, Rocco
--
:wq!
Mehr Informationen über die Mailingliste linux-l