原推是 C++ 专家但是 rust 吹
这条推的评论则在说这样就讲 C++ 不安全不太好,实际上就是断言和测试非常不充分的问题
我对这两种言论都非常不认可。首先 rust 吹这种行为就很不专业,rust 写内核驱动不用 unsafe 是不太可能的,同样可能会出现这里的问题
更何况就算是换语言能解决问题,重写整个项目的成本也是很大的,这种话不应该是一个有工作经验的「专家」能顺便说出口的。一个合格的程序员最基本的素质应该是能站在用户视角考虑问题,「专家」更应如此
现在最重要的是尽快恢复故障、识别代码中是否有同样的错误,并在未来避免类似的故障。这些问题的答案都不是「换 rust」,而是完善 sanitizers 、断言等测试,实施更严格的开发规范
但话又说回来,发生这么严重的故障,说明就连这样特大型的企业也不能保证做好测试
像这次的事故据说甚至影响到美国的 911 报警系统,那你要选择无条件相信这些报警系统中运行的各种你知道你不知道的关键组件,背后的开发公司都扎扎实实把测试做好吗?
当你需要求救的时候,遇到今天这样的事情,你还能讲出「把测试做好就行了」这种话吗?
我觉得可以更进一步,让 sanitizers 成为编译器的一部分,强制执行。这样仍然不能彻底杜绝类似的问题,但这应该可以一定程度解决开发者不好好写测试的问题
这条推的评论则在说这样就讲 C++ 不安全不太好,实际上就是断言和测试非常不充分的问题
我对这两种言论都非常不认可。首先 rust 吹这种行为就很不专业,rust 写内核驱动不用 unsafe 是不太可能的,同样可能会出现这里的问题
更何况就算是换语言能解决问题,重写整个项目的成本也是很大的,这种话不应该是一个有工作经验的「专家」能顺便说出口的。一个合格的程序员最基本的素质应该是能站在用户视角考虑问题,「专家」更应如此
现在最重要的是尽快恢复故障、识别代码中是否有同样的错误,并在未来避免类似的故障。这些问题的答案都不是「换 rust」,而是完善 sanitizers 、断言等测试,实施更严格的开发规范
但话又说回来,发生这么严重的故障,说明就连这样特大型的企业也不能保证做好测试
像这次的事故据说甚至影响到美国的 911 报警系统,那你要选择无条件相信这些报警系统中运行的各种你知道你不知道的关键组件,背后的开发公司都扎扎实实把测试做好吗?
当你需要求救的时候,遇到今天这样的事情,你还能讲出「把测试做好就行了」这种话吗?
我觉得可以更进一步,让 sanitizers 成为编译器的一部分,强制执行。这样仍然不能彻底杜绝类似的问题,但这应该可以一定程度解决开发者不好好写测试的问题