search for unladen swallow
If Unladen Swallow is to go faster, it would break backwards compatibility with modules written in C. And that wouldn't be as bad an idea as it seems. Sometimes, what you really need is a good API reboot.
Also, a good approach is to prototype in a VHLL, profile and rewrite the rest in lower level languages such as Java or C.