Posted By: Rat (prilis mnoho her) on 'CZprogram'
Title: Re: garbage collectoryyyyyyy
Date: Mon Nov 15 10:43:33 2004
Zdar znovu ;),
> > pozadavku, ktery popisoval Quasimodo. Samozrejme, namitas, ze zde muzou
> byt
> > cross reference, ja namitam, ze cross reference nejsou az tak caste,
> zvlaste
> > u pripadu, ktery Quasimodo popisoval.
>
> Ano, nejsou tak caste. Jenze v praktickem zivote radeji dam programatorum
> do ruky pravidlo "NIKDY nepouzivejte destructory pro dealokaci zdroju",
> nezli "destruktory pro dealokaci zdroju pouzivat muzete, ale pozor na
> cross-reference". Bude to tak praktictejsi. I pri debugovani pak je snazsi
> si vybavit (a zodpovedet) otazku "uzaviras zdroje?" nez "nehrozi mi nekde
> cross-reference?".
Na to, abys byl schopen zodpovedet otazku "uzaviras zdroje?" musis mit
komplexni predstavu o veci, kterou pises. Coz je IMHO v nekterych pripadech
nejen tezke, ale hlavne nechtene. Otazka "nehrozi mi nekde cross-reference"
je defakto otazkou slusneho navrhu. Zalezi, za jak velke prasata pak ty
programatory povazujes ;)
> A v okamziku, kdy se i autori jazyka (resp. reseni GC) shodnou na tom,
> ze tento pristup je praktictejsi, tak pochopitelne daji tvemu a Quasimodovu
> pohledu na vec nizsi prioritu.
No me v tomhle smeru napada, ze nejde o princip, jak by mel fungovat, ale
implementace GC pri techto podminkach je mozna jednodussi.
> Jde mi ciste o ten dopad na realny vyvoj software. Tim, ze umoznim
> dealokaci zdroju v destruktoru, ziskam jen jakousi estetiku, jeji prinos
> bude dle meho prevazen rizikem zaneseni tezko odhalitelnych chyb.
Zacatek viz vyse - realny vyvoj SW by mel (je recht, ze ta praxe je dycky
jinak) probihat tak, ze se navrhne nejaky zaklad a pak prijde 3rd-party a
zacne nejakym zpusobem SW ovlivnovat, pochopitelne bez modifikace originalu.
Kdyz predas te 3rd party veci nejaky zdroj, prestavas byt (jedinym) panem jeho
zivotniho cyklu - jak muzes pak vedet, kdy jej muzes uzavrit??
> Je to vec vkusu a pristupu, mluvim za sebe a myslim, ze i za filosofii
> jazyka Java, ale za objektivni pravdu to pochopitelne prohlasit nemohu :-)
To byva dycky, otazka toho, s cim se kdo potkal, proto se ted poprve snazim
byt dost konkretni ;)
> Nemohu rict, ze se na GC v Jave spolehat neda. Pouze se neda spolehat
> na to, ze k ruseni objektu dojde tehdy, kdy bych si pral - v tom citim
> preci jen jisty rozdil.
>
> A myslim, ze praxe ukazuje, ze to s tou degradaci tak zle neni.
> Jak uz jsem napsal, je o to reseni rozporu mezi idealem a pragmatickou
> snahou znesnadnit programatorovi dopoustet se obtizne odhalitelnych chyb.
... jaks psal vyse, asi dost otazkou nazoru...
for jerryiii: s tou pameti - coz pro typicky objektovy jazyk plati - temer
vyjimecne alokujes nejake velke flaky pameti. Navic, i kdyz jsou velke, tak je
zase nekdy pozdeji pouzijes ;) Zalezi hodne na konkretni implementaci, ale dle
mych zkusenosti jsou v praktickych pripadech velmi uspesne...
> Pavel
Krysa
rat@atrey.karlin.mff.cuni.cz Jsem Krysa
http://atrey.karlin.mff.cuni.cz/~rat/