Bridge again (Re: Bridge-Pattern mit OCaml's Modul System (Re: [linux-l] Ocml vs. Java))

Oliver Bandel oliver at first.in-berlin.de
Mo Sep 26 00:48:23 CEST 2005


On Sun, Sep 25, 2005 at 05:42:02PM +0200, Volker Grabsch wrote:
> Hallo Oliver!
> 
> On Sun, Sep 25, 2005 at 01:57:08PM +0200, Oliver Bandel wrote:
> > muß man doch mit Funktoren machen.
> > War meine spontane Idee doch richtig.
> > Hier nun die Bridge mit Modulsystem von OCaml erledigt:
> > 
> > (Weil die devic keine konforme Schnittstelle haben, ist vorher noch der
> >  Adapter angewendet. (Wollte das ganze Beispiel nicht nochmal umbauen))
> [...]
> > Bridge ready. :)
> 
> Naja, eine ziemlich primitive Bridge, eher uninteressant. ;-)

Tja, genauso (un-)interessant, wie's in dem Buche steht...


[...]
> Damit bestätigt sich meine Vermutung: Das heiß gepriesene Modulsystem
> von Ocaml ist letztlich eine Implementierung von Vererbung und
> Polymorphie auf Ebene der Module (statt auf Klassen-Ebene).


Man könnte auch sagen: Vererbung u. Polymorphie aif Modul-Ebene
ist der direkte Weg und der OO-Ansatz ein performance-bloatiger
Umweg. ;-)

Aber 1:1 sind diese Konzepte nicht vergleichbar.

Du willst aber alles durch die OO-Brille sehen, deswegen
biegst Du Dir das so zurecht. Aber Modulsystem und OO
sind nicht das selbe - beide ERGÄNZEN SICH.




> 
> In Ruby werden übrigens Module und Klassen einheitlich behandelt, d.h.
> Klassen sind dort lediglich Module mit ein paar mehr Features.

OCaml's OO-System basiert auf dem Modulsystem.


> Wenn ich
> mich nicht irre, sind damit all die Features, die du in Ocaml angeführt
> hast (außer der statischen Typisierung natürlich) in Ruby genauso
> möglich.

Die statische Typisierung ist ein immens wichtiges Dingens.
Am Anfang nervig. So nervig, daß ich OCaml schon wieder hin schmeissen
wollte. Aber im Nachhinein gesehen: geniale Sache!


[...]
> stehen. Nein, die wahre Schwierigkeit besteht darin, sein Modell
> wirklich in diese Form zu bringen, bzw. auf die Idee zu kommen, das
> konseuquent wirklich so zu machen, um in der einen Hierarchie die
> Features zu entwicklen und in der anderen Hierarchie die
> Implementierungen.


Der Kampf gegen das historisch gewachsen sein... ;-)


> 
> Aber es bringt ein paar Einschränkungen mit, denen ich mich in meinem
> Fall nicht unterwerfen kann. Daher besagtes "Typen-System" oder
> "Feature-Handler", oder wie auch immer man das nennen mag. Dazu aber
> mehr, wenn ich wirklich was in der Hand habe, über das ich schreiben
> kann.

Du willst ein Typen-System entwickeln, weil Dir ein Typen-System im Weg stehen würde...?!

Ciao,
  Oliver




Mehr Informationen über die Mailingliste linux-l