c语言|rust 语法噪音这么多, 能写复杂项目吗?


c语言|rust 语法噪音这么多, 能写复杂项目吗?

文章图片


c语言|rust 语法噪音这么多, 能写复杂项目吗?

Rust的问题是自身太过于复杂 , 这个复杂有别于C和C++的复杂 。 先说说C的情况 。 有人说C是仅次于C++的复杂性的语言 , 也有人说C是比C++还要复杂的语言 , 这都不重要 。 虽然个人认为C语言是最适合专业人士使用的编程语言 , 但坦白的说C语言确实先天不足 。
先天不足的部分有2点:1、先天缺乏泛型的支持;2、对异常处理的支持不是很好 。 由于缺乏泛型 , 所以有时候编程不是很方便 , 但并不是说无法实现泛型 , 只是丑陋而已 。 对异常处理的支持不友好 , 体现在异常处理代码与正常的业务逻辑混在一起 。

说实话 , 我觉得C语言是所有语言中最简单、最容易学的 。 如果有人觉得C语言的语法复杂 , 只能说他对计算机结构的认识还不到位 。 非专业人士并不会去了解计算机结构 , 或者认识不够一定程度 , 但这对于专业人士不存在大问题 。
Rust为了实现编译时内存安全检测 , 引入一些噪音是完全可以接受的 。 Python倒是看着干净 , 除了语法词法检查 , 啥也没有 , 变量函数使用时是否定义(比如敲错名字的时候)都不知道 , 非要运行时报错才知道问题 。
【c语言|rust 语法噪音这么多, 能写复杂项目吗?】
Rust语法也有很漂亮或者说干净利落的地方 , Rust的异常处理就是我用到过的语言里最漂亮的 。 Rust的enum及其match也很漂亮
C语言现在确实遇到了一个很尴尬的情况 , 就是第三方库不是很完善 。 现在很多人都不怎么在生产环境中使用C , 所以相对来说 , 第三方库也就越来越少了 。
C语言的使用场景可以总结为:小场景不需要第三方库 , 大场景无第三方库可用 。 所以说 , C语言短小精悍但有功能强大 。 例如 , 写个日常的小工具 , 或者写个操作系统 。

提到复杂项目 , Servo大家应该都知道 , Mozilla的下一代浏览器引擎 , Mozilla搞Rust也是为了这个 。 还有一个不得不提 , 就是区块链圈的Substrate 大家现在看到的大部分Rust招聘都是因为这个 , 那里的模板用得跟STL有的一比 。
而且Rust 本身的语法根本没什么噪音 , 不要把一切都当成语法 。 你说的无非是 Rust 的标准库、功能实现上有噪音 。 在我看来 Rust 主要就是包装太多 , 不够原始、直接 。 但恰好就是需要这一堆的包装 , 才能在严格的编译器规则下实现复杂的功能 。

    推荐阅读