找回密码
 立即注册
查看: 737|回复: 11

如何评价云风与xlua作者关于unity,c#,lua的讨论,以及他后来给出的方案?

[复制链接]
发表于 2021-8-8 11:31 | 显示全部楼层 |阅读模式
如何评价云风与xlua作者关于unity,c#,lua的讨论,以及他后来给出的方案?
发表于 2021-8-8 11:36 | 显示全部楼层
云风大神的一句说得真好:
通常正确性第一,其次是简洁性,它可以为正确性提供更多保障;最后才应该考虑性能。

技术上,云风在博客中道出C#、Lua交互的核心是代码通讯,可以从Mono底层直接支持和Lua进行通信,方案简洁,实在犀利。

这让我想起ZeroMQ文档中的自我定位:代码之间能够通过Socket进行沟通的,ZeroMQ是一个异步编程库。
ZeroMQ:Fixing the world  / 译文

但是,同样的一句话,我觉得如果放在项目实际开发,老板的眼中,可以这样说了。
通常“项目进度”第一,其次是正确性,它可以为正确性提供更多保障;最后才应该考虑简洁性

xLua提供了一个完整的开发产品,帮助开发者省了无数加班时间,这点是毋庸置疑的。要知道,做xLua的过程中,要经历无数项目的挑剔、各种大牛的质疑,是相当不容易的。

反观sharplua目前还是一些基础代码和概念,期待后续有更多。

所以,sharplua的想法很好,但你只能用xLua。
发表于 2021-8-8 11:40 | 显示全部楼层
关键是你想看啥呢?看大家一致声讨云风?你就心满意足了?还是大家一起踩 xlua?你就能HI了?
如果正儿八经的请教,匿名干嘛?
忽然明白了四个字,什么叫做 “好事之徒”,原来说的就是这。

要看戏就自己演,看不惯谁就自己上。

觉得冤的话,不改题目的情况下取昵,然后我就把我这答案改了。
--
发表于 2021-8-8 11:46 | 显示全部楼层
项目的性能问题,在关注ULua的性能优化。发现却无从下手。

尖酸的用撞大运编程来形容。这个描述有问题,这只是基于问题讨论。没尖酸。
###
通常 正确性第一,其次是简洁性,它可以为正确性提供更多保障;最后才应该考虑性能。甚至性能好坏只应该是一种副产品,而不应喧宾夺主。
###

以下内容说明了在xlua和ulua上跨语言的考虑不够完全,后来使用者很难去认真去看其中的代码。
***
mono 和 lua 是两个非常独立的模块,首先应该考虑设计层面的模块间减少耦合度,提高内聚性,再考虑实现细节的优化。设计做简单了,实现优化甚至是可有可无的东西。
提高内聚性后,交互变成批量处理的东西,在理论上存在更大的优化空间。比如聚合要处理的批量数据后(把要传递的参数聚合在一起),对 cache 更友好。
lua_pushstring 这种要保证异常处理的完备,每次调用都是要检查的,而聚合在一起后,是通过 lua 自己的 error 机制统一处理例外情况,而不需要逐个做判断。
总的来说,在设计层面考虑问题,不要陷入不必要的优化细节考虑上。
***
云风大大在lua上使用和研究很深入。先正确性第一,简洁性,最后考虑性能。在设计上不够很好。优化的话,还是要去优化设计。这个先后我是非常认同。
发表于 2021-8-8 11:55 | 显示全部楼层
程序是这样站队的:接触的第一个引擎是unity,站c#这边;接触更老引擎的,站lua这边。
发表于 2021-8-8 11:58 | 显示全部楼层
> lua方案到底好么
好,我们第一个上线的Unity项目是纯C#的,痛过之后立刻把下一个开发了部分的项目转全lua来热更了
发表于 2021-8-8 12:06 | 显示全部楼层
xlua就不怎么说了,坐等别人回答。题主问道到了 lua,来说几句。

使用脚本语言来做热更的方案这个不用多说了,lua的优点是速度快,JIT之后更快,并且体积很小,而我最喜欢的一点是它几乎除了最基本的操作外没有提供什么东西,比较清静。

相较于 C# 来说,用C++开发的游戏更能体现出脚本语言的优势,上一个项目除了引擎之外全部用lua写,写顺手了,最近调到一个新项目,由于历史和其他原因很多还是C++代码,导致我现在经常不敢更新,实在是太慢了,用联合编译的话能好一些,全部重编能感受到速度提升很快,但是,还是不够方便。

游戏逻辑更改实在太频繁了,而且难免出bug要修复,更新也不能每周都提一个大包,所以脚本语言对于手游来说还是很必要的,而lua又算是其中比较好的一个吧。
发表于 2021-8-8 12:12 | 显示全部楼层
只要是做工程的人,而不是做科研的,死钻讨论语言的好坏完全是初级程序员的事情。。。做工程的关注的是技术对项目适应度
发表于 2021-8-8 12:15 | 显示全部楼层
就是一个头脑发热的方案,就算做出来也没什么用
发表于 2021-8-8 12:21 | 显示全部楼层
每次看到云风在自己blog上写各种关于lua的技术想法和实现,一开始会觉得是技术大牛一心专研技术,后来想想一门语言到一定程度不就是看怎么用么,怎么还需要解决这样那样的底层问题,甚至有些问题是他自己之前都没有碰到过,层出不求。lua简单,做脚本语言胶水,写流程处理可以,但难堪大用,尤其复杂的逻辑,复杂逻辑必须要有面向对象的机制,lua没有,只能用蹩脚的方式去模拟,看着就蛋疼。
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-24 03:01 , Processed in 0.128482 second(s), 22 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表