wzhd is a user on octodon.social. You can follow them or interact with them if you have an account anywhere in the fediverse. If you don't, you can sign up here.

Rust好奇怪……
感觉好像在努力避免指针这种叫法……
但是又没让值引用与句柄引用的区别对用户透明……
甚至还把句柄引用后是否可以编辑的选择权开放给用户
这不是比C还麻烦了么=_=
目前还是感觉Java最优美……可以把经历完全的放在业务逻辑上……脏活都给包装起来由API或VM干了
就是没有个无符号数……对实现个这样那样的网络协议,不太友好=_=

@TurnipG 第一次接触 ownership 是很费脑筋,不过习惯之后效率很高,手感毫无疑问是现代语言;可以确定自己用的数据在内存里只有一份,完全没有多余的拷贝,感觉非常棒。

另外没有句柄的说法,只有“值”和“引用”,一个值只有一个所有者,可以用多个只读引用或一个可编辑引用,这是编译器检查的,没有违反的可能

@wzhd
但我觉得,像Java那样,对用户完全透明岂不是更好?
Java默认对List之类的玩意是传递指针,在内存里只有一份,而且每个获得这个“指针”的程序段都可以读写……
然后多线程的线程安全由对象锁来控制(这样单线程时并不需要特别注意这个读写要怎么移交)

wzhd @wzhd

@TurnipG rust 可以说是在零额外开销的前提下尽可能做一门高级语言的实验吧,为了不用垃圾回收,有些东西没法完全透明;是为数不多的能完全取代 C/C++ 的语言,看起来是其中最顺手的。
不过实际上为了零开销做出的取舍好像问题并不大,很多人原来因为 C/C++ 不愿意碰底层软件,现在发现可以用高级语言做底层开发,这一点还是很有吸引力的。

另外不用垃圾回收使得编译到 webassembly 很容易,目前如果想在浏览器里实现最高的性能,不想用 c/c++ 的话只有 rust 可以选

· Web · 0 · 0

@wzhd
呃……似乎……明白点了?
那我再去往下看看体会体会吧

不过,印象中上世纪末51单片机之类的玩意仿佛就能用C这样的高级语言来开发了?
而且像Arduino之类的东西,也有人把脏活都封装好了,让一般人可以用C来方便的写像Java一样专注于业务逻辑的代码?

@TurnipG 看需求如何啦,学 rust 是得动不少脑筋,花较长时间才会开始觉得有收获,不过学会之后一般会觉得值得
目前单片机基本都是用 C/C++ 呀,不过 要说 C 是高级语言还有争议, Linus 说它就是可移植的汇编而已
Arduino 是 C++ , 用现成的封装写规模不太大的程序还算轻松。不过也有些问题封装无法完全解决,比如令人发狂的段错误,rust 是可以做到保证不出段错误的,只要编译通过,这也是 rust 设计的一个主要出发点