Sometimes I get the feel that dynamic languages (namely the scripting crowd, like Python or Ruby) don't have much semantic checking not because they can't, but because they can use their reputation as dynamic languages to give them an excuse not to. "Since we're dynamic, it's too hard to have semantic checks!"<p>Which may be true, I don't know. But sometimes I find myself thinking, what if Python analyzed its code like this... then it could detect so and so prior to runtime!<p>Same thing with speed - CL seems to prove that you can have good speed in a dynamic language.