Jasně, když to statický jazyk neumí, je to prasárna. :-)
Ten kód výše ukazuje, že to umí...? A prasárna to je proto, že ze vstupu vyrábět napřímo třídu je koledování si minimálně o security problém. A ano, faktem je, že některé věci (deserializace) jinak v dynamicky typovaných jazycích rozumně dělat nejdou....ve statických samozřejmě ano.
Přoblém je, že a) jsi to neimplementoval,
Jak to "neimplementoval"? Tak je asi jasné, že implementace "přečti z hashmapy" (getattr, operátor "."), "vrať identifikátor 'typu'" (funkce type() - vrátí nějaký JSObject popisující parametr, případně odvozený od "parent class") a "isinstance" (proleze parenty, jestli se něco neshoduje) je docela triviální...teda aspoň pro mě je...
b) nepoužil jsi type inference a součtový typ, který dle tebe ze statických jazyků dělají stejně flexibilní a pohodlné jazyky jako jsou dynamické.
JSValue je součtový typ, v tom "let" je použita type inference. V tom kódu jsem omylem na začátku nechal "f :: JSValue" (mělo tam být jiné jméno funkce a typ), ale to se dá klidně smazat. V tom kódu nikde není jediná typová anotace, všechno je přes automatickou type inference..
Já ti jen ukazuji, že nikoliv. Jistě, nakonec můžeš nasimulovat celý interpret dynamického jazyka, ale nebude to pohodlné a nebude to mít smysl, když ten dynamický jazyk můžeš použít rovnou :-).
Až na to, že tohle _není_ interpret dynamického jazyka. Ten kód s těma "print" je normální haskellový kód, který přistuje k normálnímu haskellovému typu a volá úplně normální haskellové funkce. Akorát jsem ten typ JSValue zadefinoval jakou součtový typ, který je ekvivalentní tomu, jak to má zadefinované python.
Hanzelka ubil v Kostelci rusa. Akorát to nebyl Hanzelka, ale Zikmund, neubil ale upálil, ne v Kostelci ale v Kostnici, a ne rusa, ale Husa...
Mně na tom Kruger-Daningovu efektu nefascinuje ani tak to, že lidi, co o tématu neví nic, přeceňují svoje schopnosti. Spíš to, že lidi, kteří o tématu nic nevědí, nejsou své sebevědomí schopni korigovat ani když narazí, a jsou-li odkázáni na naprosto standardní oborovou literaturu, tak se do ní ani nepodívají, protože oni to přece ví nejlíp...