[linux-l] Ocml vs. Java

Oliver Bandel oliver at first.in-berlin.de
So Sep 25 14:36:24 CEST 2005


On Thu, Sep 22, 2005 at 05:07:06PM +0200, Volker Grabsch wrote:
> On Wed, Sep 21, 2005 at 11:49:05PM +0200, Oliver Bandel wrote:
> > OK, dann habe ich mich vielleicht ungünstig/mißverständlich ausgedrückt.
> > 
> > Eine Sprache nennt man funktional, wenn man Funktionen GENAUSO wie
> > andere Values behandeln kann. Tricksereien gelten nicht.
[...]


> Das Brückenmuster ist aber anderer Natur. Schau es dir einfach mal an.
> Vielleicht gibt es Sprachfeatures, die dieses Muster erleichtern, aber
> in jedem Fall ist ein (wenn auch naheliegendes) Umdenken nötig. Und das
> nimmt dir keine Sprache ab.

Aha, na, das Beispiel in Ocaml hast Du ja gesehen.
Wo muß man da in OCaml groß umdenken?
Man wendet Funktoren an und die Bridge-Pattern-Aufgabe
ist damit erschlagen.


> 
> Übrigens dasselbe mit dem Fliegengewicht, dem Proxy oder dem Strategie-
> Muster, obwohl diese ja sehr einfach sind, und im Prinzip die
> OO-Features direkt nutzen. Da wird also nicht wild gerudert, und
> entsprechend ist da auch nix durch Sprachfeatures groß zu vereinfachen.

Proxy habe ich gerade mal überflogen.
Wird angewendet, um den Overhead, den man sich mit OO einhandelt,
in Grenzen zu halten. Das ist, wie es im Design Pattern Buch
als Begründung dort angeführt wird: Den Overhead von "teuren"
Objekten zu minimieren.


> 
> 
> > BTW: Adaptor-Pattern ist auch sehr interessant.
> > Im Pather-Buch (Perl) haben die das ja auch mal vorgeführt.
> > 
> > Nach o.g. Buche steht da unter Intent:
> >   "Convert the interface of a class into another interface clients expect.
> >    Adapter lets classes wpork together that couldn't otherwise because of
> >    incompatible intefaces."
> > 
> > Hmhh, mach' mir jetzt nicht die Mühe, den ganzen Kram zu lesen;
> > schaue mir im Panther-Buch die Grafik an und würde wieder sagen, daß OCaml's
> > Modulsystem einem hier hilft.
> > Ein Interface und mehrere spezialisierte Implementierungen. Das riehct nach
> > Anwendung von Funktoren.
> 
> Nee, Funktoren helfen da nicht.

Die helfen aber bei der Bridge.

So, und nun ist genug darüber diskutiert.

Ich finde das Modulsystem von Ocaml prima.

Und damit erschlägt man die Design Patterns ganz locker.
FP mit Higher-Order-Functions (HOF) macht vieles andere
OO-mäßige auch überflüssig.

OO kann man dann immernoch dann anwenden, wenn wirklich notwendig.
Ansonsten kann man sich den Krempel sparen.

So, genug zu dem Thema.

Ciao,
   Oliver




Mehr Informationen über die Mailingliste linux-l