Some languages are more easy to perform Static Analysis on than others. Techniques such as reflection and meta programming can make Static Analysis difficult, while explicit type systems can make tooling easier.<p>Static Analysis can help find errors, allow code completion, etc etc.<p>I'm wondering, how would you order commercial languages on a scale of easiest to hardest to analyze? And does there exist a language that has been built with the goal of providing tooling? Java comes to mind, but I'm not sure if the ease of Static Analysis was intended from the beginning or just a side-effect of Javas verboseness?