如何使用 Rust 对抗 JavaScript 疲劳
在使用NodeJS创建应用程序时,你是否也曾有过类似的思考?
- “我肯定需要选择合适的 npm 模块来解决这个问题,但是哪个模块最合适,而且维护得又好呢?”
user“呃,我的应用程序发展得太快了,我已经完全不知道它们之间的区别customer以及它们各自具有的属性了。”- “TypeScript 肯定能解决我的问题!”
- “嗯,我不知道这是 TypeScript 的错误还是编译后的 JavaScript 的错误?或者是我禁用了错误的 ESLint 选项?”
- “这就是我余下职业生涯的全部工作吗?”
创建 JavaScript 应用一开始很容易,但随着应用规模的扩大,难度也会越来越大。你可以等待并寄希望于大型科技公司通过 TypeScript 和其他工具来解决你的问题。几年过去了,你会问自己:难道这就是全部吗?难道我要在接下来的 20 年里一直开发 CRUD 应用吗?
有时候,追逐最新的潮流比真正学习基础知识更难。
NodeJS 成了自身成功的受害者。市场上充斥着大量的开发者,几乎每家公司都在其技术栈的某个环节中使用 Node。可以说,公司选择它并非出于其底层技术本身的考量,而是因为它可以提供廉价的劳动力,并且由于其他公司都在使用 Node,所以他们觉得这肯定是个不错的选择。
遇见 Rust
你可能听过这样一种说法:即使你以后不用 Lisp,也应该学习它,因为学习这种语言能让你成为更优秀的开发者。与其学习 Lisp 来提升自己,不如学习一门真正被广泛应用的语言,它能像 Lisp 一样有效地提升你的技能。Rust 就是个不错的选择。Rust 并非昙花一现的热门语言,但它扎实的基础架构能为你提供广阔的发展空间,即使从长远来看也是如此。
Rust是一种系统语言,但它符合人体工程学的语法能让开发者在克服最初的困难后变得更加得心应手。
从 NodeJS 的角度来看,Rust 可以用来创建 Web 服务器应用程序和服务。你可以编写Lambda 函数或功能齐全的应用程序。Rust 拥有强大的内置类型系统,无需使用 TypeScript。它也不使用 ESLint,而是自带目前最严格的编译器。
最初阶段的痛苦是不一样的。我称之为良性痛苦。良性痛苦能让你成长(无论是作为一个人还是一个开发者),而恶性痛苦只会让人难受。我会把 TypeScript 和 NodeJS 的很多痛点归类为恶性痛苦。这并非因为工具本身不好,而是因为一门只用了十天就诞生的语言,能带你走的路毕竟有限。
在人生的某个阶段,你需要对自己的生活做出个人决定。你的日常生活对你的幸福感和周围环境的福祉有着巨大的影响。Rust 可以帮助你重新发现编程的乐趣。
学习 Rust 之后,你可能会觉得只是用工具 Y 替换了工具 X,最终结果却一样。但实际上并非如此。一旦掌握了 Rust,你就可以用它创建:
- 游戏
- 命令行工具
- 操作系统
- 网络服务
- 浏览器应用程序
- 嵌入式设备应用
可以说,你可以覆盖整个堆栈。Rust 创建了一个自馈送系统:
- 来自 C、C++、Java、Kotlin、Python、Ruby 和 JavaScript 等语言的开发者纷纷涌向这门语言。
- Rust及其特性不仅在Web开发领域,而且在各种其他场景中都得到了讨论。
- 不同领域、视角和用例正以开放的方式反馈到语言中。
让我们想象一下五年后的完美世界。
你正在用 Rust 编写 Web 服务。你没有安装五个不同的 npm 模块来帮你掩盖错误,而是使用内置工具来强化代码库。编译器通过测试后,你有 98% 的把握你的应用程序在未来几年内都能安全快速地运行。
但是,等等,你可能仍然会因为重复性的工作环境而感到沮丧。但现在你已经掌握了一门语言,你可以用它来构建自己的操作系统,你可以实现TCP 协议,你可以创建游戏并加入本地游戏社区。你甚至可以创建编译成 WASM 的浏览器应用程序。如果这还不够,你还可以买一台硬件设备,在上面运行 Rust。
Node 并没有消失
NodeJS 不会完全消失,你的技能也不会。不过,你找到了一个很棒的补充,未来你或许会将更多精力放在 Rust 上。记住,没有哪种语言能永远存在。NodeJS 的命运也可能像 PHP 等其他语言一样。选择像 Rust 这样的系统级语言,能让你在未来很多年里都拥有强大的实力和发展机会。
你应该学习 Rust 吗?
从开发者的角度来看:当然应该。Rust 有许多独特的特性,这些特性也会被其他编程语言借鉴(例如 Swift 中的所有权机制)。学习 Rust 可以提升你的思维能力,让你在日常使用的编程语言中更加深思熟虑。
从安全性和正确性的角度来看:你应该尝试用 Rust 替换部分 Web 服务。从小处着手,看看效果如何。像NPM、Dropbox和Yelp这样的公司都在这样做,并且取得了巨大的成功。
Rust 在 Web 开发领域尚未完全成熟,但一旦全面应用,它不仅能将你的 Web 服务变成可靠的保障,还能让你在技术栈中自由穿梭,亲身探索计算机科学概念,并在闲暇时间构建各种工具,而不仅仅是开发下一个 CRUD 应用。
所以,抓住机会,让2019年成为你学习Rust的一年。争取在圣诞节前完成一些上线项目,尝试用Rust替换工作中的部分服务,看看效果如何。Rust不仅能让你在周末睡得更安心,因为你知道一个稳定可靠的二进制文件正在生产环境中运行,而且你所掌握的技能还能让你探索技术领域广阔的可能性。
文章来源:https://dev.to/gruberb/how-to-combat-javascript-fatigue-with-rust-2o5l我会帮你解决这个问题。请关注我的“Rust实用Web开发”系列教程,在接下来的几个月里,和我一起构建一个闪亮的Web应用程序。