Názor ke článku Kudy dál v kompilovaných jazycích? od Viky - [77] "Optimalizace změnou jazyka" - no vidíte, takové...

  • 4. 12. 2007 14:38

    Viky (neregistrovaný)

    [77] "Optimalizace změnou jazyka" - no vidíte, takové spojení mě ani nenapadlo :-) Nicméně jsou jazyky, v nichž daný algoritmus lze zapsat jednoduše a efektivně, a jsou jazyky, kde to jde hůře. A přesně o tom jsem mluvil. Proč mám vymýšlet podivné konstrukce jen abych uspokojil překladač, když by to šlo jinak a snadněji s využitím mnohem jednodušších elementů, jako je např. goto či přetypování? Takový algoritmus tak akorát pohřbím než abych ho implementoval. A to už problém jazyka je.

    K tomu OOP - ano, myslel jsem spíše to druhé - kdy se na ASCII znak můžu dívat jako na cifru, na rozdíl dvou ukazatelů jako na velikost, atd. atd... Jinak vícenásobná dědičnost je pokud je mi známo věc, kterou teoretici OOP také nevidí rádi - skoro takové goto v objektové podobě :-) ... Navíc polymorfismus OOP se sice skutečně v mnoha ohledech dá přirovnat k tomu přetypovávání, ale za jakou cenu na úrovni generovaného kódu a jeho efektivity se to děje, to je nesrovnatelné.

    [87] on tu zásobníkovou architekturu nakonec více či méně simuluje veškerý generovaný kód každého vyššího jazyka - je to totiž jednodušší. Práce se zásobníkem se dá celkem snadno zapsat a popsat v podstatě matematickým jazykem a lze nad touto strukturou vyslovit a dokázat spoustu tvrzení, mající charakter optimalizace práce s ní a co především - všechno je to lépe automatizovatelné. Spoustu věcí napíšete v Assembleru jednodušeji a efektivněji s využitím širokého sortimentu proměnných a registrů, ale pokud by podobný kód měl být produktem ne člověka ale jiného algoritmu, nastává spousta problémů, jejichž řešení je pro člověka celkem snadné, ale pro stroj komplikované. Člověk totiž dokáže spoustu problémů řešit ad hoc, zatímco stroj potřebuje soubor jasných a jednoznačných pravidel.

    [*] Já bych si dovolil znovu opakovat, že je zásadní rozdíl mezi programátorem a lepičem. Něco jako mezi řemeslným mistrem a člověkem u pásu. Je jasné, že ti dva se pohybují každý v úplně jiné lize. Pro mne je programování vysoce tvůrčí činnost, vyžadující intenzivní myšlení a nadhled. Je to něco jiného, než vyhledávat knihovny a existující komponenty a své řešení přizpůsobovat existenci či neexistenci odpovídajících polotovarů, z nichž je pak výsledek nějak poslepován, aniž by autor tušil, jak to celé vlastně funguje. Je mi jasné, že dnes už není možné vystačit si jen s programátory, stejně jako by řemeslní mistři nestačili k uspokojení poptávky po jejich výrobcích. To mi ovšem nebrání hledět na lepiče a jejich nástroje s pohrdáním :-)