Show Changes Show Changes
Print Print
Recent Changes Recent Changes
Subscriptions Subscriptions
Lost and Found Lost and Found
Find References Find References
Rename Rename
Administration Page Administration Page
Topic Locks Topic Locks

Search

History

3/8/2008 9:29:26 AM
-83.226.134.179
3/8/2008 9:26:43 AM
-83.226.134.179
1/19/2008 4:51:51 PM
bvanevery-70.1.71.81
11/12/2007 11:37:51 PM
-192.118.76.130
10/4/2007 6:20:15 PM
-82.148.98.34
List all versions List all versions

RSS feed for the SquirrelWiki namespace

Lua Compared To Squirrel
.

eltracladr

Back to Squirrel Wiki

Summary

1. The Squirrel syntax is closer to C/C++/C# than Lua (IMO the Lua syntax provides no significant benefit)(IMO the C syntax provides no significant benefit either...).

2. Classes/instances are built into Squirrel (simulated with tables in Lua).

3. Squirrel has (fast) arrays. (So is Lua, since 5.0)

4. Squirrel was developed by an experienced commercial game developer for use in creating commercial games (after taking what worked well with Lua and changing/leaving out elements that did not). While the table and some string code are from Lua, the language is otherwise completely new.

5. Many developers prefer simple template binding: while LuaPlus is excellent for Lua, it does not provide easy solutions for class/instance support. While luabind is very powerful, with excellent support for classes/instances, it is also more complicated to set up/compile, can slow compile times, and can cause (extreme) symbol table bloat for debug builds. Such complex support is required for some applications, but may not be needed or desired for games. Squirrel has DxSquirrel (simple macro binding system), Squadd (boost-based, similar power/issues with luabind), and SqPlus (provides everything I need for commercial game development, including simple/clean class/func/var/constant binding, calling script functions from C/C++, etc., and the template code is very lightweight).

6. Squirrel has a decent, syntax highlighted, portable remote debugger (uses the Eclipse environment).

7. I believe Alberto (Squirrel's author) commented that incremental GC won't solve the problems he encountered with Lua while developing scripting for FarCry. (Lua 5.1 has been released and also supports incremental GC now.) Also I prefer the Squirrel language/syntax over Lua's (I started using Lua at 4.x, circa y2k: I promoted Lua back then as an excellent scripting language for games (I used LucasArts as an example early adopter for commercial game applications)).

8. It's not possible to accidentally create a new variable using assignment : "clinet = 1" generates an error if "clinet" (mistyped "client") does not exist. "client <- 1" is required to create the new variable and assign it a value.

9. SqPlus w/Squirrel has VS.NET 2003 (VS8 compatible) projects and solutions: can be downloaded, unzipped, compiled and run in less than 5 minutes.

Not logged in. Log in

squirrel's community wiki

This is FlexWiki, an open source wiki engine.

Change Style

Recent Topics