This software is a small and efficient scripting language.
One of the standout features of Squirrel is that it is an open source program under a zlib/libpng license. Additionally, the language offers dynamic typing, delegation, higher-order functions, generators, cooperative threads(coroutines), tail recursion, exception handling, and automatic memory management. What’s more, the compiler and virtual machine work together in about 6k lines of C++ code.
One of the most interesting features of Squirrel is its optional 16-bit character strings. This feature is very helpful, especially for building games that require a high degree of memory bandwidth and real-time requirements.
Squirrel’s architecture draws inspiration from popular languages like Python, Javascript, and Lua. The API of the language is quite similar to Lua, and the language's syntax is similar to C/C++, Java, etc. However, the language boasts a dynamic nature that is similar to Python and Lua.
A great example to showcase this is the short code snippet:
local array=[1,2,3,{a=10,b="string"}];
foreach (i,val in array) { ::print("the type of val is"+typeof val); }
This piece of code is a testament to how dynamic and effortless it is to write advanced code with Squirrel.
To summarize, I highly recommend the Squirrel programming language as one of the most powerful and versatile tools on the market for game design applications.
Version 2.2.3 / 3.0 Alpha 1: N/A