从第一次下载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的严谨性就显得不太友好了。

-------------------------------------------------------------------

周游[http://www.cnblogs.com/naturemickey]版权所有,未经许可请勿转载

转载于:https://www.cnblogs.com/williamjie/p/10221111.html

半个月使用rust语言的体验相关推荐

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

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

  2. rust木炭有用吗_半个月使用rust语言的体验

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

  3. pro缺点和不足 一加7t_一加7T Pro深度体验半个月以后:优点和缺点都很明显

    原标题:一加7T Pro深度体验半个月以后:优点和缺点都很明显 10月15日,一加带来了年度旗舰一加7T Pro.凭借着不将就的态度,一加7T Pro在一发布以后就备受全球媒体和用户的关注.笔者作为第 ...

  4. Rust 语言风靡学术界

    AWS 将 Rust 编译器团队负责人收入麾下的新闻让开发者们再次聚焦于这门兼具安全性与高性能的编程语言.近日,著名科学期刊 Nature 刊登了一篇文章,表明 Rust 语言也正在成为学术界最受欢迎 ...

  5. 面经分享:历时半个月,终于拿到了蚂蚁金服的offer!

    在今天,我收到了蚂蚁金服A级的实习录用offer. 从开始面试到拿到口头offer(四面技术+一面HR)战线大约拉了半个月, 从拿到口头offer到收到正式录用邮件大概又是半个月. 思前想后,决定还是 ...

  6. QCon2016演讲《Rust语言的核心竞争力》总结和补充

    应 QCon北京2016|全球软件开发大会 主编臧秀涛邀请,我(Liigo)于2016年4月23日在大会上做主题演讲<Rust编程语言的核心优势和核心竞争力>(PDF演讲稿).由于是初次登 ...

  7. 想要改变世界的 Rust 语言

    一门编程语言就像一个小宇宙,语言中的各种语法概念就像一颗颗星辰.对于初学者来说,看这些语法概念与看星罗棋布时产生的迷惑是相似的.幸亏编程语言是由人类创造的,编程语言的作者可以被找到,编程语言的源码也可 ...

  8. 21 张思维导图,柠檬哥肝了半个月的「后端技术学习路线」长啥样?

    珍惜当下,因为每一天都不平凡.1915 年的今天,爱因斯坦向普鲁士科学院展示广义相对论的方程式. 大家好,我是柠檬. 柠檬哥最近在思考公众号的内容方向问题,如何让公众号持续提供有价值的内容给大家,之所 ...

  9. 小贺的第一份实习,半个月就跑路

    大家好,我是小贺. 前几天一位鹅厂的号主朋友鱼皮,写了一篇文章:我的第一份实习!日薪 100,附面试初体验 看完之后,小贺一下子就回忆起了当年大二的时候,参加过的一次实习. 想不过相比鱼皮大佬,我的实 ...

  10. Rust语言——无虚拟机、无垃圾收集器、无运行时、无空指针/野指针/内存越界/缓冲区溢出/段错误、无数据竞争...

    2006年,编程语言工程师Graydon Hoare利用业余时间启动了Rust语言项目.该项目充分借鉴了C/C++/Java/Python等语言的经验,试图在保持良好性能的同时,克服以往编程语言所存在 ...

最新文章

  1. ansible自动化运维(二)——环境部署及常用模块的使用
  2. 【Java Web开发指南】Maven+MyBatis实现增删改查的Demo
  3. java 注解妙用_框架开发之Java注解的妙用
  4. SharedPreferences操作数据
  5. 3dobject用什么打开_第一次用开塞露是什么感觉?网友:像打开了新世界的大门
  6. 期待三分天下开源芯片有其一
  7. 马云下死命令留人?阿里辟谣:不会高薪聘请黑掉阿里网站的人
  8. oracle rac 启动失败has,oracle11.2.0.4 rac asm启动故障
  9. 仿iPhone通讯录制作小程序自定义选择组件
  10. 语义分割CCNet-Criss Cross Network论文中注意力机制Criss Cross Attention模块的tensorflow代码实现
  11. 零基础学习scala_从0-60开始学习Scala:基础知识
  12. HTML|下拉框和文本域、文件域
  13. 腾讯 Techo Hub 2022 年首站落地福州|723,与开发者们探讨工业数字化!
  14. ctfshow_pwn03
  15. Java 面试全解析:核心知识点与典型面试题
  16. CVPR2017论文
  17. Ranger学习笔记
  18. 朴素贝叶斯的垃圾邮件分类
  19. 如何根据普通ip地址获取当前地理位置(利用百度API)
  20. 嵌入式Linux驱动开发笔记(未完待续。。。)

热门文章

  1. php下使用phpmailer发送邮件
  2. IE浏览器无法通过ftp:\\192.168.xxx.xxx连接ftp服务器
  3. 火狐—火狐浏览器中的“HttpWatch”
  4. Java基础反射---并没那么难系列【三】
  5. 阿里开源框架Jarslink1.6.1新特性
  6. 44. Factor parameter-independent code out of templates.
  7. TCP异常终止(RESET报文)
  8. 15. 注意string实现的多样性
  9. jdbc数据库连接池连接
  10. html 在线图片压缩,JS HTML图片显示Canvas 压缩功能