这是 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 多个,并且有很多语法糖。
代码只是建立技术或商业价值的一种手段,熟悉语言代码风格,然后快速地为大型开源项目做出贡献很重要。