摘要:golang语言和Rust语言是这几年新流行的两个现代化的高性能静态类型语言,两者都是为高性能而生,都是逼近C/C++这样的底层语言。虽然目标一样,但是在开发上两者却大不相同,对于我而言,golang是极简语法,Rust则是复杂语法。
golang语言和Rust语言是这几年新流行的两个现代化的高性能静态类型语言,两者都是为高性能而生,都是逼近C/C++这样的底层语言。虽然目标一样,但是在开发上两者却大不相同,对于我而言,golang是极简语法,Rust则是复杂语法。
两个语言我都使用,golang使用熟练,Rust极其复杂只能初步掌握。
golang的特点是语法简单,逻辑也简单,不需要去理解复杂的概念,甚至协程都只需要写个go标识就可以创建协程,甚至都没有权限修饰符,直接使用大小写命名来区分是否公开函数,真是能不要多写的语法就直接省去。
Rust的特点是语法多而强大,甚至很多操作靠宏编程,甚至自己使用宏都可以设计出一个简单的“自定义语法编程语言”,强大是强大但是一般人真掌握不了那么多概念。其次,Rust的所有权机制也是很复杂的,一个链式调用什么地方创建临时变量,一个变量什么时候移动了,什么时候借用,各种生命周期机制让程序员理解起来确实要比其他语言复杂,这样的代价是上手难度大,虽然优点是程序会更安全。
于是,Rust和golang自然就成了不同阵营的选择,这源自于不同群体的编程理念和技术掌握水平,毕竟golang掌握起来实在太简单了,而Rust就是要比golang更难掌握。现在,有个新的选择可以玩,那就是Borgo。
Borgo是一个使用Rust语言开发的编程语言,当然它是一个转译程序,使用Rust或者Typescript类似静态语言的编程语法将代码编译为Go语言,也可以当作一个全新的编程语言,而且是Rust语言与Golang的杂交语言。当然,华为仓颉Cangjie也是吸取了各种语言的语法特性,但是华为仓颉编译为自己的二进制代码,而Borgo是确确实实将代码编译为Go语言的。
Borgo是开源的,目前已有4K的星星,所以也不是完全没流量的项目。
Borgo没有Rust那么复杂的语法机制,但比Golang极简的风格完善了一些东西,比如完善了Nil为Rust类似的可选值,也可以使用match条件匹配语法,同时也可以像Rust一样使用问号?进行错误处理。
此外,Borgo使用方法调用来替代Go语言的select通道操作符。
对于编程语言感兴趣或者想自制编程语言的朋友,可以看看Borgo这个项目。
来源:安浪