Actually, I found most of the reason why VBScript won over C# - I just used a more complex operation in C# than is necessary: string.Format("{0}", value).Length. If we simplify this to just: value.ToString().Length, the time for the C# version is on par with VBScript.

This does not matter much to the point of the post.

(And yes, I would expect IronPython to have numbers in the same ballpark and have the same small overhead.)

The long and short of it is: if the performance is bad, it is probably not because you are calling a script function.