Přičemž k těm nejjednodušším programovým konstrukcím patří třeba to, že
každá funkce dělá právě jednu činnost, a to tu, která je zdokumentovaná.
Takže například metoda setVisible(boolean) nastavuje viditelnost objektu, a
nesnaží se uhodnou, jestli si programátor náhodou neplete viditelnost s
existencí.

Existují programovací jazyky, které se jednoduchosti použití snaží docílit
tím, že před programátorem spoustu věcí skrývají a snaží se je nějak vyřešit
za něj, ale Java je přesný opak takových jazyků. Java je assembler nad JVM a
její jednoduchost spočívá v tom, že stojí na několika základních
jednoduchých principech. To ale nemá nic společného s tím, že by se
překladač nebo běhové prostředí nějak pokoušely uhodnout, co programátor
chtěl – právě naopak. Nenechte se mást tím, že má Java GC, který něco dělá
zdánlivě automaticky a bez dohledu uživatele. Za prvé jsou pravidla pro
programování s tímto typem GC možná jednodušší, než pravidla pro
programování s explicitní alokací paměti, za druhé ta automatika není mezi
uživatelským programem a JVM, ale mezi JVM a systémem. Je to asi na stejné
úrovni, jako je pro nativní programy přerovnávání instrukcí procesorem –
tedy daleko za hranicí toho, co běžně potřebujete. Pro běžné případy ale
úplně stačí vědět, že dokud existují na objekt tvrdé odkazy, je objekt
dostupný a zabírá místo v paměti.

Jinak je myslím zbytečné dál toto téma rozebírat, buďte rád, že jste se něco
o správě odkazů v Javě dozvěděl už teď při takovéhle jednoduché záležitosti
– třeba při vícevláknovém programování je někdy potřeba vědět o vzniku a
zániku referencí mnohem podrobněji, protože můžete třeba snadno pracovat s
objektem, který ještě nebyl zcela vytvořen.

Filip Jirsák

Lepsi kdyz to studuje expert, nez amater. Nakonec expert by to mozna
> napsal lepe v C++. Proto je Java tak oblibena, ze se v ni chyb da
> delat mene a jsou snadneji odhalitelne.
>
> Situace je jina, pokud mate aplikaci, kterou od zacatku do konce
> vyvijite sam nebo aspon nad vyvojem mate dohled. V beznem zivote ale
> na vas spadne existujici aplikace (nebo lepe nekolik aplikaci), na
> ktere se behem radu let vystridala rada lidi s ruznym stupnem znalosti
> Javy, Swingu (a pripadne hafo dalsich knihoven). Pak jste vdecny za co
> nejjednodussi programove konstrukce, ve kterych nelze udelat chyba.

Odpovedet emailem