Every once in a while I do something that I am particularly proud of. In this instance I am bursting with pride because I am currently using Heron code inside of the HeronScript interpreter. HeronScript is written in C++, but I use the Heron to C++ translator (HeronFront) in order to make functions and objects dynamically accessible to the interpreter.
One big problem with implementing an interpreter is that you have to register low-level types and functions so that they can be called dynamically by the interpreter. With Heron this is relatively trivial because all Heron objects provide a reflective API. C++ classes generated using HeronFront also have these reflective API calls, for instance: object AnyGivenHeronClass::_invoke(char* name, list<object> args). And yes even your basic int classes have these.
This means that if nothing else, Heron would be useful for those who want more dynamicism from their C++ code by generating class hierarchies with reflective API's. Anyway, after spending the last 12 hours hunting down a dangling memory block bug in my C++ code, I will be glad when I am finally able to rid myself of the shackles of C++ for good.