从第一次下载rust语言的编译器到今天刚好第14天。 简单说一下对这个语言的感觉吧。

一、性能

把以前用java写的一个中文地址切分的算法,用rust重新实现了一下(https://github.com/naturemickey/addressCut_use_rust)。运行的速度上,rust的release版本要比java快上一倍左右。

java版本的代码量是800多行,而rust版本的代码量是600多行。

这个体验还是很不错的,毕竟才刚刚开始学习rust语言,很多代码自己都觉得写得丑陋无比(能实现出来就不容易了,还没有能力想怎么能写得好看呢),对rust语言的机制与库都不熟悉(一边看文档一边写),基本上就是:能用就行,先不管性能。

再过一段时间,对rust更熟悉了,再把代码改得好看一些,说不写性能也会更好一点。

rust的编译结果在内存结构上是与C语言兼容的,这也是它性能不错的原因之一。

二、语法

rust语言在语法上有一个新东西:RAII——就是通过所有权、借用、生命期机制来做到精确的内存控制(不需要程序员写代码来释放内存,也没有GC)。

我也是老程序员了,每年都会学习一些新的语言(我忘记的语言比很多程序员见过的语言还多),而这些语言中要么是有GC的,要么是需要手工管理内存的。而能够通过语法设计来让编译器精确控制内存的语言这还是头一次见到。

不过这个语法也是最折腾人的地方,曾有一行代码整整搞了两天才编译成功。大学毕业之后还从没有哪一个语言像rust语言这样让我在初学的过程中就这样痛苦(大学的时候第一个用C语言实现的HelloWorld搞了一个星期),从这点来看rust对新手程序员并不友好,但闯过了这一关之后就好多了。

这个机制的好处也是明显的:

1.性能:没有GC就代表没有FGC,可以用来做实时的系统(如果是JVM用到几十G内存的情况下,一次FGC就不是几秒钟那么简单了)。

2.严谨:这种语法上的控制是非常严谨的,它会逼迫我们在写代码的过程中对逻辑进行思考,一但有问题会导致编译不通过。这样写出来的代码会比其它语言写出来的代码bug更少。

除了RAII之外,其它的东西都在其它语言中有出现,并不是什么新玩应,比如:宏(lisp)、模式匹配(Erlang、Scala)、并发模型(和go相似,尤其channel,但它的Arc又和Erlang非常像,只是Erlang一定会复制数据发送给其它进程,而rust只是内部多了一个引用计数)……。

三、配套设施

1.有一个模块管理工具cargo,这东西也挺方便的,有点像java里的maven和gradle。

2.IDE:目前rust语言还没有IDE支持,我写代码用的是VS Code,然后手敲命令来编译的。毕竟这个语言的1.0版本是今年(2015年)5月,以后肯定会有好用的开发工具出现。

(ps. 在这14天的经历中也有一个小发现:VSCode在这两个星期竟然有两次小版本的升级,看来微软还挺积极的)

四、总之

这是一个挺不错的语言:其严谨的语法与精确内存控制对程序的质量都有很大的帮助——如果熟悉了它,相对于C++来说,rust更容易写出可靠的软件,而且性能可能更好。

不过对于新手程序员来说,rust的严谨性就显得不太友好了。

rust木炭有用吗_半个月使用rust语言的体验相关推荐

  1. rust木炭有用吗_【一点资讯】Rust语言2020调查报告发布:Rust 太难,生命周期更难...

    关注 "脚本之家 Rust 官方博客发布 了 2020 年度的 Rust 调查报告. 此次调查共收到以 14 种不同语言完成的 8323 份回复,使用英语的受访者人数占比最高,为 75%,其 ...

  2. rust美服为什么给我半了_半个月使用rust语言的体验

    从第一次下载rust语言的编译器到今天刚好第14天. 简单说一下对这个语言的感觉吧. 一.性能 把以前用java写的一个中文地址切分的算法,用rust重新实现了一下(https://github.co ...

  3. django默认缓存是多大_半个月搞定Django绝不是空话

    Python下有许多款不同的Web框架,Django是重量级选手中最有代表性的一位.它由Python写成,采用MVC的软件设计模式,许多成功的网站和APP都基于Django. 无论你是Python开发 ...

  4. 开源知识管理系统_半个月收获接近 1k 的点赞!你需要的开源项目都在这里

    半个月前,我开源了awesome-java ,这是一个 Github 上非常棒的 Java 开源项目集合.是的!就是下面这个这么骚的图标! 项目地址在这里:https://github.com/Sna ...

  5. rust木炭有用吗_Rust 2020 调查报告出炉,95%的开发者吐槽Rust难学

    同时,今年 3 月,苹果也表示对将 C 代码移植到 Rust 感兴趣,希望投身到使用 Rust 编写代码的潮流中.此前通过苹果的一则招聘公告可以看出,其想要在基于 Linux 的服务器端平台上将 C ...

  6. rust大量科技零件_半小时入门Rust,这是一篇Rust代码风暴

    机器之心报道 参与:思.Jamin 据说很多开发者一天入门 Python,两天上手 Go,但到了 Rust 就会发现画风隐约有些不对.它从语法到特性,似乎都要复杂一些.本文介绍的就是 Rust,作者表 ...

  7. python时间比较好_花了半个月时间,终于找到了一款最适合的python教程

    最近会有一些广告主来找想在星佳的这个个人公众号上投放广告,但偏偏有些内容确实不能推,哪怕赚钱,其实也并不是自己多有良心,只是去帮那些产品站台带来的风险和他们给的那点广告费比,完全没在一个数量级,说这个 ...

  8. 新款苹果手机_入手新款苹果手机半个月 他们这样评价新手机

    原标题:入手新款苹果手机半个月,他们这样评价新手机 10月23日,iPhone12和iPhone12 Pro正式发售. 用了三年iPhone 6s Plus的胡亚南,再也等不及苹果把"刘海& ...

  9. 新款苹果手机_入手新款苹果手机半个月,他们这样评价新手机

    澎湃新闻见习记者 林栎昕 记者 高文 10月23日,iPhone12和iPhone12 Pro正式发售. 用了三年iPhone 6s Plus的胡亚南,再也等不及苹果把"刘海"屏换 ...

最新文章

  1. python 作用域 前缀_TENSORFLOW变量作用域(VARIABLE SCOPE)
  2. 解决修改/etc/sudoers文件后:报 语法错误 near line 23
  3. 《程序员面试金典》输出单层节点
  4. NOIP1996复赛 普及组 第二题 python
  5. jadc连接oracle,用jdbc连接oracle的第一次经历
  6. [转载] python中*args 和 **kwargs区别
  7. 花椒前端基于 WebAssembly 的 H.265 播放器研发
  8. 深扒洪恩教育招股书:研发含金量低,三年亏3亿,池宇峰再闯美股
  9. 计算机收不到打印机,打印机接收不到任务,如何添加打印机
  10. 计算机网络中的数据传输方式—同步传输和异步传输
  11. Eclipse Android Junit Test 测试实例
  12. 深入浅出 RxJS 核心原理(源码实现)
  13. 移动硬盘文件丢失要如何找回呢?
  14. 26个数据分析案例——第二站:基于Hive的民航客户价值分析
  15. 周末整理了一下计算机经典必看好书,并送出6本书
  16. 描写火车站场景_描写火车站的句子摘抄
  17. 轮胎规格怎么看?“3T”指数到底是什么?换轮胎前必读!
  18. 电脑屏幕亮度怎么调?四种自由调节亮度方式
  19. 2021-1-31 pikachu之sql注入
  20. J2EE高级软件工程师面试题集

热门文章

  1. 2021-10-14 ContextType(MIME) 与 Java文件上传/下载
  2. npm run dev error:0308010C:digital envelope routines::unsupported
  3. AS 配置使用NDK
  4. C语言手写栈、手写计算器
  5. CSS(二)——复合选择器、元素显示模式、背景、三大特性
  6. 改进多目标粒子群储能选址定容matlab 采用matlab编程得到33节点系统改进多目标储能选址定容方案
  7. gg修改器怎么编写lua脚本
  8. Qt新安装之后出现Error while building/deploying (kit: Desktop Qt 5.7.0 GCC 64bit) When executing step Make”
  9. 小米手机在国内使用Android Auto
  10. TypeError: require(...)(...) is not a function