Jak tak studuju javovsky virtualni stroj, tak me porad prekvapuje, proc je tolik instrukcnich kodu obetovano pro nizkourovnove operace s cisly nebo se znaky, vzdyt to se ve velkych Javovskych projektech az tak moc nevyuzije. Nebylo by nahodou lepsi nechat vice instrukci pro nejake vysokourovnove operace (hmm zase jake ze?) Neco na zpusob Pythoniho bajtkodu, ktery se s nejakymi inty/chary moc netrapi :-)
Nebo takto: da se nekde najit studie, ktera ukazuje, ktere instrukce se pouzivaji s jakou frekvenci? Kdysi se takove studie delaly pri vyvoji novych CPU, dneska netusim.
Ono pole jako datova struktura neni vubec spatne reseni a ze je pro to vycleneno nekolik instrukci bylo zpocatku (v dnes jiz znacne prekonane Jave 1.0) taky dobre. Syntakticky cukr v podobe [] za chvili budeme moci pouzivat i pro listy atd., takze by zdrojaky zase mely byt trosku jednodussi, no uvidime.
Je pro zamysleni pohled z druhe strany, od JS cloveka:
Brendan Eich:
Doug's point about source beating bytecode is good. My friend Prof. Michael Franz of UC Irvine long ago showed O(n^4) complexity (runaway compute cycles, denial of service) in the Java verifier. JS is strictly more portable and fast enough to lex/parse as minified source.
Source as "bytecode" also avoids the big stupid Java bytecode mistake: freezing a poorly designed lowered form of Java, then being unable to evolve the high-form source, i.e., the Java programming language for fear of breaking Java bytecode compatibility. This severely messed up the design of inner classes and then generics in Java -- and then Sun broke bytecode compat anyway!