為什么 Docker 和 Kubernetes 是用 Go 寫(xiě)的而不是 C# ?
這是 Reddit 平臺(tái)上面這幾天一篇比較熱門的帖子, 非常有意思,本文我列出了幾個(gè)高贊的回答。
?? HahahahahaSoFunny
為什么 Docker 和 Kubernetes 工具是用 Go 寫(xiě)的而不是 C#?
總所周知,現(xiàn)在開(kāi)發(fā)人員使用的很多新工具大多是用 Go 寫(xiě)的。為什么不是 C# 呢? .NET 和 C# 現(xiàn)在功能已經(jīng)很強(qiáng)大了,是不是社區(qū)缺少這種文化?如何才能培養(yǎng)一種更加開(kāi)源的文化, 因?yàn)楹芏嚅_(kāi)發(fā)人員對(duì) .NET 和 C# 仍然還抱有偏見(jiàn)。我認(rèn)為用 C# 編寫(xiě)更多有趣和有用的開(kāi)源工具,可以大大的改變?nèi)藗兊目捶ā?/p>
?? haho5:
不確定為什么 Docker 是用 Go 寫(xiě)的, 但是 Kubernetes 確實(shí)是 Google 開(kāi)發(fā)的, 并且 Golang 也是。
?? XalAtoh:
因?yàn)殚_(kāi)發(fā)人員只是更喜歡 Go 而已。
?? enry_straker:
坦白說(shuō),即便是現(xiàn)在,如果可以選擇的話,我更愿意在考慮 C# 之前,使用 C、C++、Rust 或 Golang 等語(yǔ)言編寫(xiě)系統(tǒng)工具。
?? TheAmericanBanana:
我覺(jué)得可能是在 Docker 和 Kubernetes 最開(kāi)始開(kāi)發(fā)時(shí) .NET Core 還不存在( .NET Framework 確定是有的),另外,Kubernetes 和 Go 都是谷歌開(kāi)發(fā)的。
?? pnw-techie:
Docker 在 2011 年推出。
2014 年 11 月 12 日,Microsoft 宣布推出 .NET Core,以包括對(duì) .NET 的跨平臺(tái)支持。
Rust 編譯器的第一個(gè)編號(hào)的 pre-alpha 版本在 2012 年 1 月發(fā)布。
答案已經(jīng)很清楚了,在創(chuàng)建 docker 的時(shí)候,實(shí)際上不可能用 C# 或 Rust 編寫(xiě) Docker。
?? williane:
不同的工具用于不同的目的,C# 非常適合編寫(xiě)面向用戶的產(chǎn)品,它將開(kāi)發(fā)人員從大多數(shù)低級(jí)細(xì)節(jié)中抽象出來(lái),讓我們專注于把業(yè)務(wù)需求轉(zhuǎn)換為工作代碼。
而像 C/C++ 這樣的稍微低級(jí)的語(yǔ)言可以讓您更接近硬件,對(duì)性能有要求時(shí),這是最合適的。
我可以用螺絲刀敲打釘子很多次,也可以用錘子花很大的力氣把螺絲打進(jìn)去,都可以完成工作。但是實(shí)際上,應(yīng)該根據(jù)工作場(chǎng)景選擇使用正確的工具。
?? bilby2020:
我曾經(jīng)是一名 C# 程序員(現(xiàn)在還在做一點(diǎn))。不管你喜不喜歡,C# 的語(yǔ)法太復(fù)雜了。它從 2.0 到現(xiàn)在的 10.0 變化非常快,相同的代碼邏輯可以用太多不同的方式編寫(xiě)。
而 GO 是一門簡(jiǎn)單的語(yǔ)言,很受歡迎,因?yàn)楹玫拇a應(yīng)該易于閱讀和理解,以便成千上萬(wàn)的開(kāi)源程序員做出貢獻(xiàn)。
Go 大概只有 25 個(gè)關(guān)鍵字,而 C# 有 100 多個(gè),并且有很多語(yǔ)法糖。
代碼只是建立技術(shù)或商業(yè)價(jià)值的一種手段,熟悉語(yǔ)言代碼風(fēng)格,然后快速地為大型開(kāi)源項(xiàng)目做出貢獻(xiàn)很重要。
感興趣的同學(xué)可以通過(guò)下面的鏈接,查看原文
https://bit.ly/3lJxXFx
