Lua主要基于既有的编程语言理念吗?
Lua占据着可以嵌入的语言领域中的一席之地。Lua的设计主要思想是来自实现者的新思想,还是Lua主要是由一些早已形成的思想的良好组合?
比较Lua与其他编程语言的属性和特性尤为适当。
原文链接 https://stackoverflow.com/questions/2100902
我认为这是因为 Lua 相对简单和实用。它不试图成为构建下一个操作系统、Crysis 3 或 SAP 克隆的语言,但它确实做得很好,即作为一种脚本语言。
Lua 支持函数式编程,并且基于 基于原型的编程 风格,这种风格灵活而强大。
我认为这是一种有趣的语言。
如果你想了解一些有关原型继承的思考,我建议你阅读 Steve Yegge 的博客文章 The Universal Design Pattern。
这是一个非常有趣的问题。我的日常工作是研究编程语言,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年时间内保持设计的机会的结果。
我想以此结束,请求读者不要低估从已确立的思想中选择和完善以形成一个连贯整体的难度。这是极其困难的工作,很少得到应有的认可。
有一个Lambda the Ultimate的文章,Small is Beautiful: the design of Lua,讲述了Robert Ierusalimschy最近在斯坦福大学发表的同名演讲。当前的讨论集中于将表作为唯一容器数据结构的优点;到目前为止,关于演讲另一个部分——Lua的C接口的内容——很少有人谈论。
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
- 如何编写 Lua 模式将字符串(嵌套数组)转换为真正的数组?
Lua 很小,总代码只有数万行 ANSI C。(Python 的代码行数是它的十倍)。
Lua 非常稳定,或者说,该语言现在被固定了下来。
Lua 具有良好的工程性。它的代码易于阅读和修改。(也因为它很小)
它的许可证允许你做任何你想做的事情。
在 Lua 中编写 C 扩展比其他语言如 Python 更容易。