当前位置:网站首页>Rust Versus Go(哪种是我的首选语言?)
Rust Versus Go(哪种是我的首选语言?)
2022-07-07 04:21:00 【西京刀客】
Rust Versus Go
原文链接: https://dormoshe.io/trending-news/rust-versus-go-52434
在从如下作者的书中学习了这些语言之后,我在过去的一年中一直在使用 Rust 和 Go。
Herbert Wolverson’s Hands-on Rust:
Ricardo Gerardi’s Powerful Command-Line Applications in Go:
一年来同事和同行都在问,Medium 文章和 Reddit Rust 和 Go 论坛中似乎出现的一个大问题是,“哪个更好?” 这个问题真的没有答案,因为它是一个很主观的决定。几乎所有这些文章和帖子都以“视情况而定”结尾。但鉴于工程师更喜欢绝对的决策,这并不是一个令人满意的答案。所以一个更好的问题是,“你更喜欢哪一个?” 在各种场景中使用这两种语言后,我的默认首选语言是……Go。
Why Go?
我不是系统程序员,我大部分时间都在从事与 DevOps 相关的工作。Go 是为 DevOps 设计的,这在 Docker、Grafana 和 Kubernetes 等所有以 DevOps 为中心的应用程序中都显而易见。我也没有耐心进行长时间的编译,只是发现构建失败是由于一些迟钝的错误,有时我需要几个小时才能弄清楚。正如那些读过我的新书或在最近的Changelog 播客中听我采访的人都知道的那样,我在家里使用 Raspberry Pi。尝试编译一个比“Hello, World!”更长的 Rust 应用程序 在Raspberry Pi上。如果幸运的话,假设没有出现编译错误,它将在一个小时或更长时间内完成。
**Go随身携带了每个可执行文件的嵌入式运行时,但是与编译速度和便携便利性的总体好处相比,它相对较小。**尽管两种语言都有着许多依赖,但最近几个月来,Rust已成为供应链攻击的更大目标,这可能是由于它在社区中越来越突出,因为它被接纳为Linux内核。像System76这样的公司还表示,他们打算使用Rust来构建Pop!OS desktop。
性能
在性能方面,我发现 - 对于我的微型项目,两者都表现相似。我不是在构建大规模的并行 PB 级架构,而是构建能够很好地完成一项特定任务的小型、稳定的程序。
如果想让事情保持简单并且不关心性能,那么 Python 脚本就可以了。但是,**如果想要更高的性能和一个相当小的原生可执行文件,那么 Go 是我的主要语言选择。**当然,该语言没有官方的 GUI 支持,但 Rust 也是如此。虽然两种语言都存在基于 Webkit 的 GUI 项目,但我对它们都没有足够的兴趣来学习它们。
命令行程序
实际上,由于其以终端为中心的输出的性质,这些语言让我重新发现了不臃肿的命令行迭代程序的乐趣和速度。例如,我在 Go 中编写了一个自定义 Twitter 客户端,它以不同颜色突出显示我关注的关键主题标签和人员,使我能够快速、直观地识别我的提要中感兴趣的帖子。它在后端使用 Redis 云,因此每次我运行 tw 时,它都会在我运行它的各种操作系统之间保持同步。我用 Go 写代码用了不到一个小时,甚至在我的 Pi Zero 上编译也用了不到几秒钟。虽然我曾想过用 Rust 重写它只是为了练习我的语言能力,但时间继续前进,一天只有这么多小时可以花在学习和实验上。
Rust 有机会吗?
如果当 Rust 可以将编译时间减少到更合理的时间,并在编译中断时提供更少愚蠢的错误消息时,我可能会重新评估我的主要语言选择。但就目前而言,当我需要快速创建和部署新程序时,Go 是我编码列表的首选。
边栏推荐
- 图解GPT3的工作原理
- 外包干了三年,废了...
- numpy中dot函数使用与解析
- misc ez_ usb
- Outsourcing for four years, abandoned
- 1140_ SiCp learning notes_ Use Newton's method to solve the square root
- Wx is used in wechat applet Showtoast() for interface interaction
- [UTCTF2020]file header
- @component(““)
- 4、 High performance go language release optimization and landing practice youth training camp notes
猜你喜欢
After 95, Alibaba P7 published the payroll: it's really fragrant to make up this
毕设-基于SSM大学生兼职平台系统
Jenkins远程构建项目超时的问题
BGP experiment (1)
Robot technology innovation and practice old version outline
今日现货白银操作建议
Summary of customer value model (RFM) technology for data analysis
三、高质量编程与性能调优实战 青训营笔记
[UTCTF2020]file header
面试结束后,被面试官在朋友圈吐槽了......
随机推荐
Detailed explanation of neo4j installation process
UWB learning 1
【leetcode】1020. Number of enclaves
Calculus key and difficult points record part integral + trigonometric function integral
About some details of final, I have something to say - learn about final CSDN creation clock out from the memory model
电商常规问题part1
resource 创建包方式
Detailed explanation of uboot image generation process of Hisilicon chip (hi3516dv300)
How to * * labelimg
【obs】win-capture需要winrt
Mutual conversion between InputStream, int, shot, long and byte arrays
4、 High performance go language release optimization and landing practice youth training camp notes
Tianqing sends instructions to bypass the secondary verification
ASEMI整流桥RS210参数,RS210规格,RS210封装
Build personal website based on flask
My ideal software tester development status
在线直播系统源码,使用ValueAnimator实现view放大缩小动画效果
为什么要了解现货黄金走势?
I failed in the postgraduate entrance examination and couldn't get into the big factory. I feel like it's over
Deep learning Flower Book + machine learning watermelon book electronic version I found