Re: diskless system ohne swap

From: Marc Santhoff <M.Santhoff(at)t-online.de>
Date: Tue, 18 May 2004 08:41:17 +0200

Am Mo, den 17.05.2004 schrieb Oliver Fromme um 19:43:
> Marc Santhoff <M.Santhoff(at)t-online.de> wrote:
> > Am Mo, den 17.05.2004 schrieb Peter Ross um 13:56:
> > > Ja, so in etwa. Nur eben eine Ebene "drunter", nicht nur fuer komplete
> > > Programme, sondern fuer einzelne Objekte.
> > >
> > > Wenn der Farbdialog um eine neue Einstellungsvariante erweitert wurde,
> > > (neben Farbpalette nun auch RGB-Schieber), sehen das alle Programme, die
> > > diesen benutzen.
> >
> > Ah ja, jetzt hab' ich's. Wenn "alte Funktionalität" in neuem Gewand
> > präsentiert wird (aber der Rückgabewert gleich bleibt).
>
> Es muß nicht einmal unbedingt derselbe Typ sein. In Spra-
> chen mit dynamischem Typsystem genügt es, wenn die Funktio-
> nen das gleiche »Protokoll« sprechen (so nennt man das).
> Beispiele sind Smalltalk, Objective-C und Python. (C++ da-
> gegen hat ein statisches Typsystem.)

Jupp.

> Du kannst zum Beispiel Funktionen schreiben, die gar nicht
> so genau wissen müssen, was ihre Argumente für Typen haben,
> sondern die nur bestimmte Bedingungen erfüllen müssen, z.B.
> daß das übergebenen Objekt eine bestimmte Methode hat.

Auch bekannt.

> Wenn Du etwa eine Funktion hast, die einen Schieberegler
> anzeigt, könnte man sie so programmieren, daß man ihr ein
> beliebiges Objekt übergeben kann, das die Methoden set-
> value() und getvalue() hat. Dann kann man diesen Schiebe-
> regler sofort für beliebige solche Objekte verwenden.
> (Dies ist etwas völlig anderes als Templates in C++!)
> Die Schieberegler-Funktion kann auch selbständig (zur Lauf-
> zeit) überprüfen, ob das Objekt, das ihr gerade übergeben
> wurde, das richtige Protokoll unterstützt (d.h. setvalue()
> und getvalue() hat). Wenn nicht, könnte sie eine Alterna-
> tive versuchen, oder eine Warnung ausgeben, oder eine
> Exception erzeugen oder sonstwas.

Und wie verhält es sich mit der Laufzeit? Da müßte schon ein
grundsätzlich anderer Ansatz verfolgt werden, damit nicht wie in Java
z.B. der Laufzeitzuwachs unangenehm deutlich spürbar wird.

Andererseits, in Object-Pascal (aka Delphi, Version 1 und 2) gab es
diese Möglichkeit bereits und ich habe sie fröhlich benutzt. Aber ein
Zuckerschlecken war das natürlich noch nicht, RTTI steckte eben in den
Kinderschuhen.

> In einigen Sprachen (z.B. Python) führt diese Dynamik so-
> weit, daß man sogar zur Laufzeit eines Programms völlig
> neue Objektklassen nachladen kann (aus einer Datei, von
> einer Netzwerkverbindung oder sonstwo), und die vorhande-
> nen Funktionen können sofort damit arbeiten. Man kann
> auf diese Weise ein laufendes Programm nahtlos aktuali-
> sieren und erweitern.

Das allerdings klingt wirklich interessant, ich sollte doch mal ein
wenig Zeit aufbringen, um mich damit zu beschäftigen.

Aber kompilierbar sind diese Sprachen doch? Wie Bernd schon meint, man
kann in Perl ja phantastische Sachen anstellen (wenn es sich um Texte
und Dateiströme handelt), ich bin von der problemlosen Identität Array
und Hash noch ganz begeistert, aber wenn man keinen Compiler benutzt,
werden das wirklich Schneckenprogramme ...

Gruß,
Marc

To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Tue 18 May 2004 - 08:46:05 CEST

search this site