there are several well separated sub-systems (heap management/GC,
threading, JIT, graphics support, ..)
there are numerous different target systems and application requirements
(Smartcard to server, graphical / textual app, browser context / stand-alone, ..)
there is NO silver bullet - to serve them all (optimal) with the same subsystems
there IS a strong need to make them configurable (pick the right subsystems
for the right problem)