Metadata is good, but for certain tasks not, for example, I have worked in real life with automatas, much of the programming, if not all, is based on scheduling the point-to-point movement, this means a start point, a step intermediate, and a final one, the final program is much clearer and easy...