这是 Reddit 平台上面这几天一篇比较热门的帖子, 非常有意思,本文我列出了几个高赞的回答。

👦 HahahahahaSoFunny

为什么 Docker 和 Kubernetes 工具是用 Go 写的而不是 C#?

总所周知,现在开发人员使用的很多新工具大多是用 Go 写的。为什么不是 C# 呢? .NET 和 C# 现在功能已经很强大了,是不是社区缺少这种文化?如何才能培养一种更加开源的文化, 因为很多开发人员对 .NET 和 C# 仍然还抱有偏见。我认为用 C# 编写更多有趣和有用的开源工具,可以大大的改变人们的看法。

👦 haho5:

不确定为什么 Docker 是用 Go 写的, 但是 Kubernetes 确实是 Google 开发的, 并且 Golang 也是。

👨 XalAtoh:

因为开发人员只是更喜欢 Go 而已。

👨 enry_straker:

坦白说,即便是现在,如果可以选择的话,我更愿意在考虑 C# 之前,使用 C、C++、Rust 或 Golang 等语言编写系统工具。

👨 TheAmericanBanana:

我觉得可能是在 Docker 和 Kubernetes 最开始开发时 .NET Core 还不存在( .NET Framework 确定是有的),另外,Kubernetes 和 Go 都是谷歌开发的。

👨 pnw-techie:

Docker 在 2011 年推出。

2014 年 11 月 12 日,Microsoft 宣布推出 .NET Core,以包括对 .NET 的跨平台支持。

Rust 编译器的第一个编号的 pre-alpha 版本在 2012 年 1 月发布。

答案已经很清楚了,在创建 docker 的时候,实际上不可能用 C# 或 Rust 编写 Docker。

👦 williane:

不同的工具用于不同的目的,C# 非常适合编写面向用户的产品,它将开发人员从大多数低级细节中抽象出来,让我们专注于把业务需求转换为工作代码。

而像 C/C++ 这样的稍微低级的语言可以让您更接近硬件,对性能有要求时,这是最合适的。

我可以用螺丝刀敲打钉子很多次,也可以用锤子花很大的力气把螺丝打进去,都可以完成工作。但是实际上,应该根据工作场景选择使用正确的工具。

👦 bilby2020:

我曾经是一名 C# 程序员(现在还在做一点)。不管你喜不喜欢,C# 的语法太复杂了。它从 2.0 到现在的 10.0 变化非常快,相同的代码逻辑可以用太多不同的方式编写。

而 GO 是一门简单的语言,很受欢迎,因为好的代码应该易于阅读和理解,以便成千上万的开源程序员做出贡献。

Go 大概只有 25 个关键字,而 C# 有 100 多个,并且有很多语法糖。

代码只是建立技术或商业价值的一种手段,熟悉语言代码风格,然后快速地为大型开源项目做出贡献很重要。