【发布时间】:2010-12-17 20:14:26
【问题描述】:
请分享您最喜欢的有关该语言的链接,以便大家学习最好的语言。
另外,请用几句话描述这种语言与 Lua 等其他语言不同的最重要特征。
我只是不明白为什么要重新发明另一个 Lua/Python/etc。也许我只是错过了一些东西......
但是我喜欢性能+脚本的想法,所以我必须理解它!
【问题讨论】:
标签: scripting-language squirrel
请分享您最喜欢的有关该语言的链接,以便大家学习最好的语言。
另外,请用几句话描述这种语言与 Lua 等其他语言不同的最重要特征。
我只是不明白为什么要重新发明另一个 Lua/Python/etc。也许我只是错过了一些东西......
但是我喜欢性能+脚本的想法,所以我必须理解它!
【问题讨论】:
标签: scripting-language squirrel
关于 Squirrel 语言最好的(也是几乎唯一的)资源是它的官方网站和论坛:http://squirrel-lang.org
与其他发展良好的语言相比,Squirrel 仍处于早期阶段,社区非常小,但在某些方面它在其他现代脚本语言中非常有前途:
受 Lua 启发,具有表、Lua 堆栈等常用概念,但语法和 C API 更简洁。
使用补充垃圾收集器进行引用计数。运行时的设计鼓励用户删除循环引用,而不是完全依赖垃圾收集(这可能很慢或不确定)。用户甚至可以在禁用垃圾收集器的情况下重新编译运行时。
它是一种具有类似 C/C++ 语法的语言。这是一种味道,但这是我偏爱 Squirrel 而不是 Lua 的主要原因。
类的内置支持,在 Lua 中你需要做一些魔法来模拟它。
支持类似 C# 的属性,因此您可以为您的类和属性提供元数据。我使用此功能将我的脚本对象公开给 .net 属性网格。
未定义的变量会导致异常,而不是像 Lua 那样默默地创建新的空值。
其他功能,如 lambda 函数、生成器和协同例程,都内置在这种小巧但功能强大的脚本语言中,它仅由约 6000 行 C++ 代码组成。
总之,Squirrel 语言适合与性能关键应用程序(即游戏引擎)中的低级模块交互,它绝对可以作为更好的 Lua。像 python 这样的语言更倾向于通用,日常方便的问题解决语言。
【讨论】: