主要观点:作者通过排除法决定尝试写 Rust 或至少进行深入尝试。讨论了写“原生”程序的需求,比较了 C、C++、Go、Rust 等语言,重点从简单性和内存管理两个维度进行分析。
关键信息:
- 选择写原生程序,最初考虑用 TypeScript,但觉得编译成二进制不够“扎实”,从而在 C、C++、Go、Rust 中选择。
- C 简单且易于代码演进,但作者曾因 C++的复杂性而不再使用 C++。
- 简单性存在权衡,TypeScript 处于抽象的合适位置,而 Haskell 抽象程度高。
- 计算机时间尺度和 CPU 执行与内存访问差异大,C 快是因为优化内存访问,Go 快且保留 C 的简单性,Haskell 证明智能编译器可实现绝对速度快。
- C 和 Go 简单但抽象程度低,TypeScript 完美但不生成原生代码,Rust 抽象程度类似 TypeScript 且接近 Haskell 但需管理内存,作者决定尝试 Rust 以填补原生代码的需求。
重要细节: - 作者曾在 C++中度过一年,后意识到其产生与问题无关的复杂性。
- 提到 Euler 小学时用不同方法解决数学问题的故事来说明简单性与抽象的权衡。
- 以 Go 在服务器上的使用及 esbuild 用 Go 提高工具速度为例说明 Go 的实际速度。
- 提及 GHC 在 Haskell 中的神奇作用。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。