Why are scripting languages embedded in other software at all? If you think about a large C++, C#, or Objective-C project, then build time and deployment are major issues. Certain programming chores lend themselves well to scripting languages, so rather than rebuilding a huge project every time a small tweak is required, changing a script might be more productive.
In game development Python and Lua are typical choices for scripting. They’re used for game interfaces, logic, asset loading, AI, and more. Part of the success of the modding community based around Unreal engine games came from the use of UnrealScript.
You’re probably wondering: why Python and Lua? It’s mainly because these languages are widely adopted and suitable for embedding. Boost.Python and Luabind are examples of libraries that help with binding. Without bindings to the underlying native code it’s impossible for the scripting language to communicate, so this has to be fast and easy.
using Microsoft.ClearScript.V8 to a C# program and then do
engine.Execute("Console.WriteLine(lib.System.DateTime.Now)"). There’s also Jurassic – another ECMAScript runtime.