我挑刺!
go是靠大小写区分是否public的!
【 在 lvsoft (Lv(The Last Guardian)) 的大作中提到: 】
: 标 题: Re: 用了半年 rust, 不太看好 rust
: 发信站: 水木社区 (Fri Apr 24 12:39:19 2020), 站内
:
: 我觉得rust本来就不是奔着大众化这个目标去的。这个就好比linux一样,虽然很多人都
: 心心念linux desktop,但明眼人都知道这个问题更多的是商务问题而不是技术问题。
: 不过最终linux也可以说是通过android完成了desktop这一步。可见专注自己的核心优
: 势就可以了,没必要想这么多。我感觉现在的rust就是这样,挺好的。
:
: rust我现在写了2个礼拜的代码,目前我是相当满意的。要说不爽的地方,本质上都是为
: 了享受它给予的好处而付出的约束。比如写代码容易被打断不能一气呵成,那是因为rust
: 检查很严格。这只是个熟练度的问题,我给小朋友们用python,他们写代码的时候也一
: 样在跟各种exception搏斗,各种抱怨为啥莫名其妙不work呢。
:
: iter() into_iter() as_ref() as_mut() as_ptr() as_mut_ptr()之类的,
: 尤其是里面还存在一些隐式转换的规则,确实容易导致迷惑,但说穿了也还是熟练度不够
: 的问题。比如我一开始并不知道也没注意到Into开头的都会消耗self,对因此产生的各
: 种编译问题排查了很久,一度也非常迷茫,但弄清了也就理解了。
:
: rust的宏我觉得也是亮点啊,怎么就奇怪了呢?函数宏比c那种简陋的宏好用多了,适用
: 于一般场合。过程宏则是更底层更强大,可以直接用来做DSL。我觉得rust的问题反而是
: 有点太依赖宏了。宏这种东西本质上就是设计上缺乏对一种复杂pattern的优雅表述能
: 力,所以只能用宏把一套复杂的实现隐藏起来。虽然看不见,但复杂依然是存在的,换汤
: 不换药。比如可以很容易的用结构体封装一个u32来给数值增加类型约束,这非常好。但
: 这个结构体上面可能又要写一堆derive display,debug,clone,这个就不太舒服
: 了。比如rust写module,要写一堆一堆的pub去暴露成员,难道就没有一种语法让pub
: 和private更简单的区分开么?比如go的下划线开头的都是private这个设计就很好
: 啊;再不济c++里面的public:之后写的都是pub也可以啊,为啥只能一个个加pub,看
: 起来实在是太蠢了。当然这些问题也可以用宏解决,但宏是一种方言制造机,太过于依赖
: 会制造分裂,也可能会破坏语言原本的正交性。不过总的来说我对rust的宏方案还是满意
: 的。
:
: 我觉得rust比scala要务实的多。rust可以认为只专注在所有权问题上,对这个问题没
: 有妥协,其他的一切都围绕这个核心问题展开。这就比scala那种啥都想要完美解决的现
: 实的多,也更为简单。比如DSL在scala这里就是用一套很复杂也很强大的operator
: override实现的,rust直接在过程宏里面丢给你一个token stream这一点我确实没想
: 到可以这么的简单粗暴...大部分人觉得rust太复杂,只是因为它想解决的问题本身就有
: 这样的复杂度。很多简单爽快的语言,本质上就是投降派,把复杂问题无视掉当它不存在
: 而已。这一点来说我觉得rust是认真对待这类问题的语言中做的最简洁的。
:
: 【 在 zezo (zezo) 的大作中提到: 】
: : 非职业码农,但工作内容需要写代码,对运行效率要求较高,半年前把部分 C++ 老代
: 码
: : 转到了 rust。
: : 总体感觉 rust 语言是 C++ 码农想解决 C++ 痛点而设计的,但没有摆脱 C++ 的
: 固有思
: : ...................
:
: --
:
: ※ 修改:·lvsoft 于 Apr 24 13:05:18 2020 修改本文·[FROM: 49.90.175.*]
: ※ 来源:·水木社区
http://newsmth.net·[FROM: 49.90.175.*]
--
修改:lvsoft FROM 49.90.175.*
FROM 106.39.149.*