Rust好奇怪……
感觉好像在努力避免指针这种叫法……
但是又没让值引用与句柄引用的区别对用户透明……
甚至还把句柄引用后是否可以编辑的选择权开放给用户
这不是比C还麻烦了么=_=
目前还是感觉Java最优美……可以把经历完全的放在业务逻辑上……脏活都给包装起来由API或VM干了
就是没有个无符号数……对实现个这样那样的网络协议,不太友好=_=
@wzhd
但我觉得,像Java那样,对用户完全透明岂不是更好?
Java默认对List之类的玩意是传递指针,在内存里只有一份,而且每个获得这个“指针”的程序段都可以读写……
然后多线程的线程安全由对象锁来控制(这样单线程时并不需要特别注意这个读写要怎么移交)
@wzhd
呃……似乎……明白点了?
那我再去往下看看体会体会吧
不过,印象中上世纪末51单片机之类的玩意仿佛就能用C这样的高级语言来开发了?
而且像Arduino之类的东西,也有人把脏活都封装好了,让一般人可以用C来方便的写像Java一样专注于业务逻辑的代码?
@TurnipG 看需求如何啦,学 rust 是得动不少脑筋,花较长时间才会开始觉得有收获,不过学会之后一般会觉得值得
目前单片机基本都是用 C/C++ 呀,不过 要说 C 是高级语言还有争议, Linus 说它就是可移植的汇编而已
Arduino 是 C++ , 用现成的封装写规模不太大的程序还算轻松。不过也有些问题封装无法完全解决,比如令人发狂的段错误,rust 是可以做到保证不出段错误的,只要编译通过,这也是 rust 设计的一个主要出发点
@wzhd
了解了~谢谢~
@TurnipG rust 可以说是在零额外开销的前提下尽可能做一门高级语言的实验吧,为了不用垃圾回收,有些东西没法完全透明;是为数不多的能完全取代 C/C++ 的语言,看起来是其中最顺手的。
不过实际上为了零开销做出的取舍好像问题并不大,很多人原来因为 C/C++ 不愿意碰底层软件,现在发现可以用高级语言做底层开发,这一点还是很有吸引力的。
另外不用垃圾回收使得编译到 webassembly 很容易,目前如果想在浏览器里实现最高的性能,不想用 c/c++ 的话只有 rust 可以选