Implementing a new scripting language is a daunting task and is often initiated without anticipating that the language may explode in popularity. Consequently, the complexity and sophistication of the applications will grow and demand much from the implementation. Implementors choose to build from scratch or to target an existing Virtual Machine (VM) language, such as Java or .NET.