開發者撰文分析.NET從昨日輝煌到如今的逐漸沒落
開發者 Stefan Dobrev 在博客發表了名為《The Sad State of .NET》的文章,分析了.NET為何從曾經的輝煌變成瞭如今的黯淡處境。Stefan在2004年以.NET開發者的身份開始了其職業生涯,當時的C#還屬於新晉編程語言,吸引了不少開發者想體驗一把。
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# 需要像過去一樣進行創新了。