[linux-l] Re: Ruby: sehr cool, aber laaaahm... wie geht's schneller?! - D?

Oliver Bandel oliver at first.in-berlin.de
So Aug 27 20:18:06 CEST 2006


On Sun, Aug 27, 2006 at 06:41:00PM +0200, David Hansen wrote:
> On Sun, 27 Aug 2006 18:22:17 +0200 Oliver Bandel wrote:
> 
> > On Sun, Aug 27, 2006 at 02:55:06PM +0200, David Hansen wrote:
> >> On Sun, 27 Aug 2006 14:40:33 +0200 Oliver Bandel wrote:
> >> 
> >> > On Sun, Aug 27, 2006 at 02:22:01PM +0200, David Hansen wrote:
> >> >> Sowas macht schon Sinn wenn man den Verdacht hat, dass man
> >> >> irgendwo noch Referenzen herumfliegen hat, die man
> >> >> eigentlich nicht haben will.  Aber viel mehr als
> >> >> feststellen, dass man ein mem leak hat kann man wohl nicht.
> >> >
> >> > Unter memLeak verstehe ich aber das, was man in C auch so nennt.
> >> >
> >> > Bei einer Sprache mit GC dürfte doch sows garnicht auftauchen,
> >> > denn da werden die Ressourcen ja vom System verwaltet.
> >> >
> >> > Also kann es da allenfalls Speicherhungrige Coideteile geben;
> >> > das sind dann aber keine leaks im klassischen C-Sinne (malloc()).
> >> >
> >> 
> >> Nein, du kannst einfach irgendwo eine Referenz auf ein
> >> Object "vergessen" haben.  In der Praxis ist das dann das
> >> selbe wie ein vergessenes free ().  Ob du es nun anders
> >> nennen willst oder nicht...
> > [...]
> >
> > Wie soll man das denn vergessen haben?
> >
> > Wenn die Variablen immer nur lokal sind,
> > kann man da nix vergessen.
> 
> In größeren Projekten wo diverse "Container" (Hash Tables,
> Listen oder was auch immer) durch die Gegend fliegen, würde
> ich nicht dafür garantieren wollen, dass alles, was da noch
> referenziert wird, auch wirklich noch gebraucht wird.

Das sind die typischen Probleme imperativer Programmierung.




> 
> Erst recht nicht wenn nur ein Bruchteil des Codes von mir
> kommt.
> 
> Und ohne "globale" Variablen kommt man nicht wirklich aus.
[...]

Man kann auch Parameter übergeben.
Globale Variablen sind das übelste, was man sich an unfug heraus nehmen
kann und sollte es daher sein lassen.


> Ob die nun streng genommen global sind oder man das über
> closures oder Referenzen auf sonstwas simuliert spielt dann
> keine Rolle.

Man kann Parameter übergeben.


> 
> Auch in Ocaml wirst du sowas haben.
> 

Enn ich in einem Modul eine "Variable" auserhalb aller
Funktionen und Module definiere, dann ist sie innerhalb
der gesamten Datei sichtbar.

Das ist auch schon alles.

Ciao,
   Oliver



Mehr Informationen über die Mailingliste linux-l