Categories
科技報導

開發者撰文分析.NET從昨日輝煌到如今的逐漸沒落



開發者 Stefan Dobrev 在博客發表了名為《The Sad State of .NET》的文章,分析了 .NET 為何從曾經的輝煌變成瞭如今的黯淡處境。 Stefan 在 2004 年以 .NET 開發者的身份開始了其職業生涯,當時的 C# 還屬於新晉編程語言,吸引了不少開發者想體驗一把。

開發者撰文分析.NET從昨日輝煌到如今的逐漸沒落 1

Microsoft 也在為積極推廣 .NET 制定策略,例如贊助本地大學和最大的本地技術活動 – Microsoft Days。因此,Stefan 認為這是一個屬於 .NET 的年代。

最初,大家將 C# 和.NET 視作Java 和JVM 的“邪惡雙胞胎” —— 人們普遍認為C# 從Java 身上複製了許多優雅的特性過來,並消除了其某些瓶頸—— 從諸如具有getter 和setter的屬性到影像更大的特性如值類型和屬性。所有這些基礎工作為將來 C# 要進行的創新奠定了基礎。事實上後來也確實發生了:運行時泛型(在 IL 階段)、LINQ、動態以及 async/await。特別是 async/await 對業界產生的影響,以至於它改變了整個行業,現在每種主流的編程語言幾乎都具有此功能(甚至包括 C++)。

但來到 2010s 中期,C# 的情況發生了變化。主要是 C# 之父 Anders Hejlsberg 將他的工作重心從 C# 轉移到了 TypeScript,導致 C# 語言創新很少甚至沒有。另外,我們所處的整個行業開始向雲過渡,但是 .NET 顯然尚未為此做好準備。

儘管 .NET 被標記為多平台,但 .NET 的目標平台主要是 Windows(以及通過 Xamarin 實現對移動平台的支持)。至於雲開發領域中的核心平台 Linux 對 .NET 來說不是一等公民,甚至也不是二等公民。但云開發幾乎完全是圍繞 Linux 和 Docker 進行的。雖然 Microsoft 後面又推出了 .NET Core,但始終還是慢了一步。

另一方面,Java 也似乎進入了復興的時代。經歷了多年的停滯不前,Oracle 重新復活了該語言並將其拉回到正確的軌道上。 Java 的語法在快速進步,其生態系統也為雲開發領域提供了重要的軟件:大數據(Hadoop)、搜索引擎(Elasticsearch)和消息傳遞/流處理(Kafka)等,這些都是讓Java 脫穎而出的關鍵因素。

後來居上的 Python 也在雲開發領域佔有一席之地,它將自己定位為機器學習新領域的主要參與者,並在有學術界提供強大的支持,所以在雲開發領域也倍受歡迎。

.NET/C# 呢?它們現在的定位是什麼,在雲時代的主要應用又將是如何?這些問題就像達摩克利斯的劍一樣懸在頭上。未來會證明一切,但可以肯定的是,.NET/C# 需要像過去一樣進行創新了。