- 主题:都说十年成就一个专家,为啥很多人20年C语言经验还是菜鸟?
生命周期确实 Rust 跟其他主流工业级语言不一样的地方,是它的难点也是它成功的点。
Option、Result 有一定的 FP 风格,但它既不是 Rust 首创也不是 Rust 独有,尤其 Option 差不多现代语言标配了,不但 Scala、Rust、Swift 有,更早的 SML、OCaml、Haskell 就有,甚至 Java 8、C++ 17 也有。有其他现代语言的经验,Option、Result 用起来就不会那么陌生了。
【 在 beep 的大作中提到: 】
: rust最坑爹的地方不在于所有权和生命期这些玩意儿,这些学起来材料太多了,最坑爹的地方我觉得在于你要是不熟悉库函数,连最常用的Option Result都用的跌跌撞撞的
: 然后就是从OOP范式出身的人,看到别人把trait用得出神入化,感觉无法望其项背
: 吕
: ...................
--
修改:jyw FROM 220.194.45.*
FROM 220.194.45.*
让类型系统在编译期来保证代码编写的正确性是语言更加智能的一个趋势。以后大家用多了就能习惯了。
【 在 beep 的大作中提到: 】
: 就比如说前面lvsoft用trait来保证量纲计算的正确性,类似这种使用trait的套路非常多。。。
--
FROM 220.194.45.*
全文严重赞同。
跟 pub 写起来麻烦这点类似的,还有 mut。因为 Rust 更推荐慎重 pub、少用 mut。这样做一定程度上强迫开发者写出比放任不管更好的代码。
【 在 lvsoft 的大作中提到: 】
: 我前面说rust这门语言平衡的非常好,就是这种感觉。
: 在核心设计思路上,rust走的是组合的路线,而不是OOP一堆继承的路线。这个就比OOP高明的多。我是感觉OOP这种模型有点太学院派了,rust的组合+trait的方式有点实践派的感觉,我从中感觉看到很多c的影子。这一点我可太喜欢了。
: rust的问题我目前感受来说,主要是这种trait的组合很破碎。不像OOP,虽然OOP会搞出很深看了就烦的继承关系,但起码大家可以追根溯源找亲戚。当然OOP这种一切都要从root一层层派生下来的设计哲学我是很讨厌的,我认为就是脱裤子放屁。所以我超喜欢python的duck typing这种简单
: ...................
--
修改:jyw FROM 220.194.45.*
FROM 220.194.45.*
Rust 前景非常看好,相信以后会有越来越多项目从 c++ 甚至 c 转向 Rust,系统编程语言这块最有前景,除此之外系统工具领域也不输 Go,需要高性能的其他业务场景应该也能也能有一席之地。
通过他还能发现硬件设计的问题,这个一般还真想不到,意外的惊喜……
【 在 lvsoft 的大作中提到: 】
: 我的感觉是,rust是少有的能消除个性的语言。
: 上一个把这点做得很好的语言是java。但java是谁来写都写的跟裹脚布一样又臭又长。我觉得java写起来就特别的放松,我完全没有心智负担反正怎么写都是一泡屎谁来写都差不了太多~~
: 但rust是谁来写都会写的很好,都会有很好的设计,都会有很高的代码质量。它的很多底层设计会逼着你必须把事情做对...
: ...................
--
FROM 220.194.45.*
原来是这样的情况……
【 在 lvsoft 的大作中提到: 】
: 准确的说,其实也不能算是硬件设计的问题,而是rust在倒逼一切,逼到硬件设计上也得遵循它的生命周期管理的规范...
: 我这个问题其实很简单,比如我有几个同构的模块需要驱动,在固件里肯定是把它们封装起来的。
: 但这些模块有一个enable pin,因为虽然你也不能排除单独启动其中一个关闭另一个的需求,但一般是所有模块都要启动的。刚好这块板子gpio口很紧张,我就把几个模块的enable pin合并到一块去了。
: ...................
--
FROM 220.194.45.*