One of the goals of Heron is to make it easy to dynamically extend a Heron program during execution. This would be not particularly interesting if it weren't for the fact that Heron is primarily intended as a statically typed and compiled language. What this means is that you can compile some of your program and extend it on the fly with a scripting language. The implications of this are that debugging, prototyping and testing are going to be far more powerful. Also many non-trivial applications benefit greatly from providing scripting languages to their users (editors, spreadsheets, databases, graphing, ...) so having a scripting language counterpart built-into a language specification, should prove to be very powerful.
Anyone who happens to look at the code and is scratching their head as to the implementation techniques should take a look at my article on high-performance dynamic typing in C++. The dynamic function invocation code is also complicated by the fact I am preparing for named parameter support. I hide the parameter names in the function names, separated by dollar signs.
A question to my readers: do you think what I am trying to do could give Heron a niche as a fully compiled, statically-typed language which caters to the agile development movement?