1 go没有泛型,导致重构困难,写代码超级啰嗦
2 go错误处理简直搞笑, 为啥要层层处理,其实用go的人自己也没法层层处理所有错误,基本都往上返回,然后错误到顶层,这tm不跟异常一个鸟样[表情]
3 go所谓的高并发,go coroutine 不就是个task嘛,为啥我不用task而用ettask,因为task很多api线程不安全,危险。而go缺少ettask这种单线程的协程。高并发,大家用networkstream httplistener等await async方法,分分钟也能写出高并发的程序。
4 go没有热更,太致命
5 go的包管理机制堪称垃圾,完全无法跟nuget相比。
6 go编译成一个exe,.net 5完全支持。
你们告诉我go的优势在哪?
[翻译]Go与C#的比较,第二篇:垃圾回收
[翻译]Go与C#对比 第三篇:编译、运行时、类型系统、模块和其它的一切
熊猫 2021/6/28 10:27:58
go被.net core吊打
等我开源机器人就知道前后端统一的优势了
我们机器人压测 99%的代码都是直接使用客户端代码。只需要写极少代码就能做出机器人
1%,你想想,机器人不就是一个没有ui的客户端啊,直接把客户端逻辑层共享起来放到服务端不就行了
小虾米 2021/6/28 10:54:52
@熊猫 猫大快让这个译者看看你的ettask
熊猫 2021/6/28 10:55:43
@小虾米 这就是c#协程吊打go的地方,这个作者没有体验到
莫歌冰雪 2021/7/30 12:56:21
go插件热更
plugin,Linux动态链接库
和c++的热更很类似
只能Linux用
调试不方便
熊猫 2021/7/30 13:04:43
go做游戏没有了致命缺陷了
泛型也要加了,
无法双端共享,不好做客户端机器人,这是c#的优势
虽然go各种缺陷,但是没有致命缺陷了,做游戏还是没问题的。et要想打败go,必须继续发挥go无法做到的点,比如机器人,测试用例。以后还有防攻击路由。这些都是go没法简单做到的
熊猫 2021/11/27 11:30:40
go我又发现一个致命缺陷,在一个goroutine中无法使用异步,比如大型场景要撑上千人,那就必须只用一个goroutine,因为人与人的交互太频繁了。但是肯定有逻辑要用异步,比如需要延时几秒执行逻辑,go呢必须再开个新goroutine,然后在通过gochannel通知回来,这逻辑写起来就跟吃屎一样了。
比如这单个场景技能释放,技能延时一秒等等逻辑,单goroutine没法做,go这个语言到处是hard code,你连自己实现个map都做不到
小虾米 2021/11/27 11:34:22
“比如这单个场景技能释放,技能延时一秒等等逻辑,单goroutine没法做”
@熊猫 其实可以的,老游戏不都是帧驱动的?啥不能做
熊猫 2021/11/27 11:34:52
@小虾米 那全是回调写法,goroutine意义何在
熊猫 2021/11/27 11:37:54
c#要支持泛型容器,先从底层语言设计好需要的语法支持,然后再用新的语法来写新功能。go呢,直接从runtime hard code。直接惊呆了我。所以至今没人能写出自定义的map跟dictionary,因为go是hard code的
熊猫 2021/12/7 14:44:39
卧槽,发现一个go的致命缺陷,go的协程不能取消
熊猫 2022/⅒ 16:43:48
go存在的致命问题,就是一个固定的协程中没法await,一旦开启goroutine就会跨线程