分享人
王川(GitHub、LinkedIn),水泊梁山人,玫瑰星云创始人,大学之前写各种 BASIC。2007 年毕业于青岛大学计算机专业,随后来到北京工作,从事 Python 开发 6 年多,先后任职于 Exoweb、Happylatte,高级软件工程师。2013 年投入手游创业中,作为 CTO 带领团队完成了基于 Python 的产品后端,及基于 Unity 3D 的产品前端。期间,不断地研究高并发可伸缩的服务器设计,应用于 Web、云计算和游戏后端等。另外,他也热衷于开源事业,北京 Linux 用户组成员,活跃于各种 区和线下聚会上,参与或创立了许多开源项目。
分享主题
王川还会带来可伸缩的高并发程序开发,异步并发、 络操作、协程和内存安全等方面的内容,敬请期待。
其它
Rust
Rust是Mozilla公司推出的一门全新的编程语言,1.0版本于2015年5月15日正式对外发布。Rust的设计目标是要做一门系统编程语言(System Programming Language),运行性能高、避免几乎所有的段错误(Segmentation Fault)和保证线程安全。这意味着Rust可以用于建造高效可靠的系统(Efficient and reliable systems)。
Rust与其它语言的最大不同就是它的类型系统,所有权(Ownership)以及生存期(Lifetime),这些都来自于C/C++中的一些最佳实践(Best practices)。对于资深的系统编程程序员来说,使用Rust时会大大减少他们查错(Debug)的时间,而对于初学者来说,他们使用Rust写代码时,在获得与C/C++相近的运行速度的同时,也能避免因为经验不足而使程序出错(Crash)。
Rust语言设计上,包含了各种函数式编程语言的基本特性,如默认不可变的变量(Immutable),代数数据类型(ADT,Algebraic Data Type),函数是一等公民(First-class Function)等等的特性。并且支持泛型(Generic)和基于Trait的面向对象编程。在内存管理上,引入了所有权(Ownership)和生存期(Lifetime),借助编译器自动分析对象的所有权传递、以及对象生存期的开始与结束,来实现内存自动管理;并把指针分成了两类,租借指针(Borrowed Pointer)和占有指针(Owned Pointer)。租借指针顾名思义,用于在需要把一个对象的所有权租借出去的场景,它带有对象的生存期信息,编译器会保证租借指针本身的生存期不会长于对象的生存期,因此解决了悬空指针的问题(Dangling Pointer);占有指针(Owned Pointer)最基本的类型是裸指针(Raw Pointer),以它衍生出了Boxed Pointer,用于管理堆上分配的内存、Rc(Reference Count)带有自动引用计数的指针、Arc(Atomic Reference Count)同样是自动引用计数的指针,但是自动引用计数增减是原子操作,多用于在线程间共享对象的场景。未来,Rust可能会加入一个可选的垃圾回收器,这时就会有一种叫Gc的指针,用它来管理使用垃圾回收器管理的内存。Rust还有非常强大的编译器插件(Compiler Plugin)以及宏(Macro),提供非常大的自由度。
在项目管理上,Rust使用Cargo(
https://github.com/rust-lang/cargo)作为项目管理工具以及构建系统。另外,官方维护了crates.io(http://crates.io)用于发布和下载第三方库,另外Cargo也支持直接从Github上自动下载依赖的源代码并编译。Cargo是由参与开发过Ruby的Bundler项目的Yehuda Katz设计并开发的,Bundler是Ruby中非常成功的项目管理工具。
Rust是一个由Mozilla主导的 区项目,所有人都可以在Github(
https://github.com/rust-lang)上直接参与到语言的开发中去。目前Rust的RFC(Request For Comment)已经达到1193个,这些RFC在通过之后,将会加入到Rust语言中。(By:Elton)
广告语:
有的人可以对很多事物感兴趣,可仅仅只是兴趣,而有的人感兴趣并运用到自己的工作、生活中,让自己成为兴趣的受益者。如果你是前者,不妨来听下这个讲课,看看别人是如何做的?若你是后者,也欢迎你听听,彼此交流探讨看看能不能碰撞出一些火花。
精彩回顾
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!