![3e5100e46df049ffe0dab72d07e7f9ef.png](https://img-blog.csdnimg.cn/img_convert/3e5100e46df049ffe0dab72d07e7f9ef.png)
背景图片 来自 Markus Spiske on Unsplash
ProjectX只是现在我在做的一个项目的名称,我计划在整个项目的过程中做更多的尝试,并且尽可能的将过程记录下来。如果感兴趣可以关注我,非常欢迎给我或是ProjectX提提你的建议。
这次ProjectX在选择后端开发语言的时候,我不会考虑我自己的熟悉程度和之前的积累,希望可以比较客观的选择一个适合的后端语言,我也可以通过这个过程了解更多后端语言。目前计划尝试的后端语言有:PHP、JAVA、Node.js、Go、Rust、Ruby、Python。没有案例的分享都是耍流氓,我用这几个语言统一做一个简单的数据查询返回的API接口,来从服务器支持、开发环境搭建、RESTful路径设置、数据库连接、语言结构和文档社区丰富度六个方面来聊聊我自己的感受。
语言简介
相对于其他语言来说,Rust属于最新的一个成员。最早由Mozilla于2014年4月9日发布。Rust是一款高级通用语言,而且属于少有的一款兼顾开发和执行效率的编程语言。Rust结合了脚本语言的语法结构和C语言编译执行效率,并且具有类似垃圾回收和数据类型及所有权系统等功能,所以可靠性和高性能运行都属于Rust的特色。虽然是一个非常年轻的编程语言,但是Rust可以算是最近几年最流行的编程语言。5月发布的Stack Overflow 2020开发者调查中,Rust被86.1%开发者选择为“最喜欢”的编程语言,比第二名TypeScript高出近20%。虽然Rust并不是一个专属的网络应用开发语言,但是作为一个以安全著称的编辑语言,实际上是非常适合网络开发的。而且因为是编译型语言,编译器也能在过程中就安全稳定的问题作出提醒,作为后端网络开发还是不错的一个优势。
![2c8557271ae5e1cf9eb10207de8bebb0.png](https://img-blog.csdnimg.cn/img_convert/2c8557271ae5e1cf9eb10207de8bebb0.png)
来自mozilla的Rust
服务器支持
Rust的通用库中已经包含了类似TcpListener这样的网络通讯库,可以直接通过调用std : : net 下面的TcpListener来直接监听Tcp端口,然后再处理Request。这点上与一些脚本型的编程语言比要自由得很多。Rust作为比较流行的编程语言,也有不少第三方HTTP库来支持Web开发,可以不用再花时间从底层开发,比较热门的库像Hyper或者Tide都是被不少Web开发框架用到的。Rust下Web开发框架也不少,比较热门的有Rocket、Actix-Web、Tower-web、Warp等等框架。因为初次接触Rust,所以还是先从比较成熟的框架Rocket来作Demo的尝试,相对文档会比较完善一些。不过,根据网上的一些讨论,Rocket或是Actix-Web虽然比较热门,但是因为基于比较老的hyper库,所以可能对于一些功能不支持,例如Rocket不支持Async/Wait功能。不过总的来说Rust对于服务器的支持还是不错的,而且就算找不到合适的开发框架,也可以从底层开发,虽然比较浪费时间。<