rust语法噪音这么多,能写复杂项目吗

中科携手共抗白癜风 http://finance.sina.com.cn/chanjing/b/20091014/11153079059.shtml

其实不管是否因为复杂项目c++还是rust不可能像你这么写代码,一个是c++的lock需要考虑失败的情况,但是你自已就没考虑但是rust强制你考虑,所以需要加个unwrap,你说能算rust语法噪音吗?brorrow_mut确实引入了额外语法,但是他能帮你检测非法使用情况,编译期保证共享的内容的使用正确性。

Rust这样的语言,rust程序写起来确实有点繁琐,学习曲线也很陡峭,本身就是可以干复杂项目的。但是规模大,参与人数多的项目还是java,c#这类语言比较合适。

至于应用层的软件,用swift去做是更优选择。编译型静态语言、自动内存管理、无gc,代码更易读易懂,学习曲线也很平滑,这些优点无疑支撑其作为应用开发语言的优良选择。

rust更多的是去编写基础架构(infrastructure)类型的软件,譬如linux内核、systemd、busybox、apache、mysql、vmm之类的。这些软件的生命周期足够长,对性能、延迟、稳定性、安全性要求高,用rust去写收益完全超过成本。

同时,不止是写的代码多少的问题,在Rust编译器的辅助下,写得越多,帮助越大

比如说你的代码,a与b前面加了不必要的mut进行修饰,name与a字段也没有被readRust编译器会发出提示,想要帮你砍掉不必要的东西,代码越多,这些提示越有用

C语言现在确实遇到了一个很尴尬的情况,就是第三方库不是很完善。现在很多人都不怎么在生产环境中使用C,所以相对来说,第三方库也就越来越少了。C语言的使用场景可以总结为:小场景不需要第三方库,大场景无第三方库可用。所以说,C语言短小精悍但有功能强大。例如,写个日常的小工具,或者写个操作系统。

如果你嫌弃写法繁琐,有声明宏/过程宏/Trait设计/结构体封装等手段为你铺路写一次,以后用起来就又舒服又快捷了,比如编写一个经典的双按钮:btn_inc,btn_dec,cnt(点一下按钮,cnt的数值加or减)

其实你仔细看看你的代码全是unwrap啊,borrow_mut啊,那些全是可能的错误发生点。一个链表本来就是需要考虑有没有前结点有没有下一个节点,你用了Weak就要负责检查那个节点是否已被释放。

我个人认为不要用Weak,全部用Rc。然后你要给链表加一个Drop实现,链表析构不是那么简单的,主要是为了同时防止栈溢出和内存泄漏。然后你这个链表设计的本身有bug。

每次写这些wrap/unwrap时候,感觉是做化学实验,反应物方程式两边配比;Rust刷LeetCode,难度要上一个级别,LRU这题用rust实现绝对是hard++,你非得弄个循环引用这种“本身就很复杂,而且实际工程中不多见的东西”,最后出来程序复杂能怪谁。

更何况,你用C++什么时候违反了StrictAliasingRule你都不知道,你要想有运行时检查还不得像Rust那样自己写个RefCell。




转载请注明:http://www.aierlanlan.com/rzgz/1581.html

  • 上一篇文章:
  •   
  • 下一篇文章: