Hlavní navigace

Názor ke článku Proč Java používá tak dlouhé názvy tříd a proměnných od Filip Jirsák - Pro všechny ostatní - asi bych tu myšlenku...

  • 3. 11. 2023 8:55

    Filip Jirsák
    Stříbrný podporovatel

    Pro všechny ostatní - asi bych tu myšlenku mohl verbalizovat. Neřeším jenom informační obsah (i když ten je důležitý), ale taky odstup signálu od šumu. Jsou věci, které přináši informaci, ale nepřináší podstatnou informaci. Nechci čtenáře kódu utopit informacemi, které jsou sice pravdivé, ale v kontextu použití zbytečné (a v nejhorším případě zastaralé).
    Pokud to správně chápu, každá informace, která se dá odvodit z kontextu, je podle vás zbytečná.

    Jenže tak to právě není. Zdrojový kód je způsob komunikace programátora s počítačem a zároveň s jinými programátory. Zda komunikace funguje správně s počítačem je relativně snadné ověřit testy – relativně vůči tomu, jak nesnadné je to ověřit u lidí. Komunikace programátor–programátor je ale velmi náchylná k chybám, ke kterým může docházet na obou stranách. Stejně jako u běžné mezilidské komunikace. To, že se používá formalizovaný jazyk, je výhoda i nevýhoda – výhoda je v tom, že se odstraní většina problémů plynoucí z nepochopení syntaxe sdělení, nevýhoda v tom, že ten jazyk je záměrně vzdálen reálnému světu, který má popisovat.
    Aby si lidé vůbec rozuměli, přidává se do jejich komunikace spousta redundance. A to platí pro komunikaci v přirozeném jazyce i v komunikaci ve formálním programovacím jazyce – protože v obou případech se bavíme o popisu reálného světa. Ta redundance je tam za třech důvodů. Za prvé mluvčí může znát některé kontextové informace, které adresát nezná. Proto je lepší, když je uvede ve sdělení. Za druhé, běžně se stává, že nějakou věc pochopí mluvčí a posluchač jinak. Pokud pak ta samá informace zazní ještě jednou trochu jinak, je šance, že se tohle nedorozumění napraví. Třetí bod plyne z předchozího – protože může docházet k nedorozuměním a redundance to může opravit, slouží k ujištění, že se chápeme správně.
    Pokud to chcete přeložit do jazyka kódování v počítačovém světě, ty redundantní informace mají dvě role – jedna přenáší kontextové informace, které adresát nemusí mít; jednak fungují jako samoopravné kódy resp. jejich kontrolní součty – ujišťují vás, že přenos proběhl korektně, případně umí některé chyby přenosu napravit.