Rust、Zig,能够干翻Java、C?( 二 )


但这并不意味着Rust太难了 , 其实有能力用C编写生产软件,就绝对有能力使用Rust 。更多地在于,“当C方式对我很有帮助时,我不愿意学习Rust方式 。”
这反而是Zig的利基市场 。
如果您已经了解 C,您可以在几天内学习 Zig,并且比 C 更有效率 。在我看来,这就是 Zig 的价值主张 。它与 C 非常相似,您的大多数模式和根深蒂固的经验都可以利用 。你学习了 Zig 的 comptime,然后,你就掌握了带泛型的 C 语言 。您可以毫无障碍地依赖现有的 C 项目和库 。Zig 是“我在 C 语言中很有生产力 , 但想要更好的功能”语言 。
三、Java开发者不妨考虑学Rust“Rust并不是太困难 。我是一个巨菜的菜鸟,连我都可以在大约一个月内写出一些不错的Rust 。”
虽然旧版 Java 很简单,但大部分时间都花在学习库、构建系统或非常复杂的应用程序服务器上 。这3个部分非常复杂 。编写 Spring MVC Web 应用程序非常复杂 。
“我们公司迁移到 Rust,花了大约 1 个月的时间才适应 Rust , 无需处理 C 指针、内存映射等低级内容 。”
部署 Rust Web 应用程序比处理 Java 应用程序服务器和 WAR 容易得多 。为什么Java应用服务器有这么多bug?
20 多年过去,它们仍然无法获得诸如重新加载而不泄漏或数据库连接池可靠而不挂起连接之类的东西 。
“JDBC 的编写方式使得池无法强制关闭卡住的连接;卡住的连接会随着时间的推移而累积 , 直到服务器挂起 。”
这表明Java J2EE应用服务器的整个概念是错误的 。每个曾经使用过websphere的人,web logic都会把他们折磨到“地狱” 。即使是最小化的 Tomcat 也远未消除错误 。JVM 本身正在崩溃 。“我还没有看到任何 Java 应用程序后端或 GUI 不会因为内部 JVM 错误而崩溃 。”
Rust 需要的内存比 Java 少 10 倍,速度比 Java 快 4 到 10 倍,编译失败很快就会得到修复 。不需要应用程序服务器和巴洛克式构建工具(变形的工具) 。Rust 就可以,无需开始用 Java 编写新的应用程序 。
【Rust、Zig,能够干翻Java、C?】Rust 有相当高级的库,如 Rocket.rs (rust) 和微型 Web 框架,如 scalatra.org (scala),这两种类型都非常容易上手 。而且使用起来也要容易得多:所有内容均已键入,并且类型信息也可用作文档 。
四、Rust在后端项目的软肋也有一种观点认为 , Rust不适合大型项目 。因为Rust 项目是 AOT 编译的二进制文件 , 需要不断维护才能使其不断变化的包保持最新 。此外,项目越大 , linting 越慢 , 分析器越慢,构建时间也越慢 。
也就是说,Rust 的借用检查器并不是大型项目中真正令人头疼的问题 。然而 , 你需要学习如何移动、复制或借用内存的各种方法以及不自然的生命周期语法需要很长时间才能深入理解这些背后的真相 。




推荐阅读