Lua主要基于既有的编程语言理念吗?

Lua占据着可以嵌入的语言领域中的一席之地。Lua的设计主要思想是来自实现者的新思想,还是Lua主要是由一些早已形成的思想的良好组合?

比较Lua与其他编程语言的属性和特性尤为适当。

原文链接 https://stackoverflow.com/questions/2100902

点赞
stackoverflow用户183828
stackoverflow用户183828

Lua 很小,总代码只有数万行 ANSI C。(Python 的代码行数是它的十倍)。

Lua 非常稳定,或者说,该语言现在被固定了下来。

Lua 具有良好的工程性。它的代码易于阅读和修改。(也因为它很小)

它的许可证允许你做任何你想做的事情。

在 Lua 中编写 C 扩展比其他语言如 Python 更容易。

2010-01-20 11:46:14
stackoverflow用户65464
stackoverflow用户65464

我认为这是因为 Lua 相对简单和实用。它不试图成为构建下一个操作系统、Crysis 3 或 SAP 克隆的语言,但它确实做得很好,即作为一种脚本语言。

2010-01-20 11:52:05
stackoverflow用户108130
stackoverflow用户108130

Lua 支持函数式编程,并且基于 基于原型的编程 风格,这种风格灵活而强大。

我认为这是一种有趣的语言。

如果你想了解一些有关原型继承的思考,我建议你阅读 Steve Yegge 的博客文章 The Universal Design Pattern

2010-01-20 12:20:06
stackoverflow用户41661
stackoverflow用户41661

这是一个非常有趣的问题。我的日常工作是研究编程语言,Lua是值得认真研究的。我认为很少有其他语言像Icon和CLU一样值得学习。请注意,与其他语言相比,Lua整体的质量,而不是单个特性,使它值得学习。

这是实现者所拥有的有趣新思想的结果,还是对已经确立的思想的良好实施的结果?

都是。有关详细信息,你最好的答案来源是《Lua的演变》文章,它出现在第三届ACM编程语言历史对话会议上。但我想再做一些评论。

  • Lua团队发明了将Lua表作为唯一的可变的、非原子型的数据类型。他们受到了CLU的发展启发,我认为他们也意识到了Awk和Icon中类似的工作,但是将其提炼到这个程度是Lua团队的一个重要贡献。

表还有一个非常高效的实现方式,是Lua团队发明的。

  • Lua的函数特性具有与Scheme相同的语义,但Lua具有独特的一级函数实现方式,我认为他们应该将其提交给《函数式编程期刊》进行发布。

  • 嵌入式API经过多年的大量改进。它的主要区别是用户定义的抽象类型可以完全参与嵌入。这是使Lua API优于Tcl API的特性。Lua API经过多年的大量改进,包括自版本2.5首次发布以来的改进。Lua的设计者在这里功不可没。

  • 垃圾收集技术是标准的。

  • Lua协同程序代表了对一些非常古老思想的新的看法。这种新的想法被认为值得在ACM《编程语言与系统交易》上发表,因此我认为Lua团队应得到创新的功劳。

  • Lua元表与公共Lisp元对象协议有关。

我认为Lua的成功是Lua团队独特的优势组合的结果:

  • 如果你阅读《HOPL文献》,你会发现Lua团队非常了解编程语言的许多发展,并能够从中选择最好的想法。大多数流行脚本语言的设计者都是业余爱好者,并没有得到这么好的知识普及。

  • Lua非常精致设计,其各个部分非常配合,功率重量比非常好。这是长期改进的结果,PUC-Rio愿意让Lua团队去工作语言的设计和实现,而不是做大量的论文。这项工作在北美大学无法完成。

  • Lua非常优秀。实现令人惊叹。这部分是由优秀的工程师完成的,也是15年时间内保持设计的机会的结果。

我想以此结束,请求读者不要低估从已确立的思想中选择和完善以形成一个连贯整体的难度。这是极其困难的工作,很少得到应有的认可。

2010-01-20 15:17:57
stackoverflow用户222815
stackoverflow用户222815

有一个Lambda the Ultimate的文章,Small is Beautiful: the design of Lua,讲述了Robert Ierusalimschy最近在斯坦福大学发表的同名演讲。当前的讨论集中于将表作为唯一容器数据结构的优点;到目前为止,关于演讲另一个部分——Lua的C接口的内容——很少有人谈论。

2010-04-01 07:35:34