There was a submission to HN awhile back, where someone did a study of what actually happens with dynamic languages in JIT VMs. In many cases, there is a lot of dynamic behavior when an app server starts up, but later on, the system settles down, there's no fluidity in type information, and the system might as well be statically typed.<p>App server farms running hundreds of processes with instrumented JIT VMs could gather a lot of data. This would allow programmers to determine the "steady-state" type behavior of an app server after the "warm-up" period with a high degree of certainty. Would it be possible to save such data as an aggregation of runtime-profiles that could be used to 1) speed up execution and 2) back-port static type annotations to the source code? I could also imagine a special command to tell the VM that "warm-up" time is over now, take type annotations as mandatory, and start aggressive compiling now!