為什麼 C# 可能是最好的第一程式語言

2023-03-16 12:02:16

縱觀神州大地,漫遊中華網際網路,我看到很多人關注為什麼你應該開始學習JavaScript做前端,而對blazor這樣的面向未來的框架有種莫名的瞧不起,或者為什麼你應該學習Python作為你的第一門程式語言,恕不知有多少公司業務是用Python開發的,Python更多是粘合劑,作為膠水語言來使用。

我用C# 工作了 20多年,我也一直把它當作第一程式語言,幾乎嘗試了任何東西:桌面、物聯網、移動、Web、雲原生- 以及 C# 和 .NET 完美契合的所有地方,特別是當下Chatgpt 還有AI的輔助程式設計時代,你應該考慮從它開始你的開發人員之路。

C#是一種程式語言,.NET是建立在它之上的軟體框架。為了簡單起見,當我說C#時,我假設了它與.NET結合使用,反之亦然。

1. .NET 允許您在任何地方構建任何內容

使用單一語言和單一框架,您可以構建任何型別的應用程式:桌面移動裝置以及雲服務,您可以建立遊戲並探索 AI。.NET是跨平臺的:你可以為Windows,Linux,Android,iOS甚至物聯網裝置構建應用程式。

想象一下,你可以採用一種語言,嘗試每一個方向,並在這個過程中提高你的技能。不過,您仍然需要研究方向細節。特別是如果想從網際網路轉向物聯網,有了有紮實的技術基礎,花個1年時間學習行業知識,專業的.NET技術都是可以無縫銜接過去了。您可以朝著自己最喜歡的方向進行改進,或者如果您願意,甚至可以開始使用更特定於選定領域的語言和工具。例如,對於移動開發,我看到人們從Xamarin轉向iOS或Android上的本機開發。

image

2、 C#是第五種流行的語言

根據TIOBE指數(基於搜尋引擎結果的程式語言流行指數),C#作為最受歡迎的語言佔據了第五位。在過去的10年裡,它一直位居前10名。 最近幾年,隨著2014年.NET開源跨平臺,它的受歡迎程度一直增長。

image

3、C#/.NET 擁有最好的學習材料之一

Microsoft 和 .NET Community 提供了大量任何形式的材料:文章、視訊、課程、教學和書籍,使您能夠成為一名成功的 .NET 開發人員。您可以在微軟學習門戶上檢視所有可用的材料

image

社群提供了令人驚歎的全包含路線圖,以掌握取得成功所需的技能和知識,例如面向後端開發人員的 ASP.NET 核心路線圖。您可以輕鬆地在github 上找到其他方向的路線圖。


image

而微軟本身也試圖做不同的有趣活動來吸引更多的開發者。例如每年一度的.NET Conf。

4. .NET 6 簡化了快速入門。

從.NET6開始,.NET 在簡化入門體驗方面邁出了一大步。最小 API 功能為我們提供了一種在單個檔案中使用乾淨程式碼建立具有最少依賴項的 HTTP API 的方法。

只需通過單個命令建立 4 行程式碼即可使用 .NET 6 啟動 Web 應用。

var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();

app.MapGet("/", () => "Hello World!");

app.Run();

5. 大家開始重新審視微軟技術

今年所颳起的Chatgpt風潮,讓之前所有帶著有色眼鏡看微軟技術的人們重新開始審視微軟技術,為什麼是微軟在這波AI浪潮中獨佔鰲頭,答案自然是非常清楚的,是CEO 納德拉的在2014年為微軟按下的重新整理按鈕,經歷了接近10年時間的積累,開始引領技術潮流。同樣的.NET 也是在2014年開始了刷新曆程,經歷了接近十年的迭代,已經脫胎換骨完成了蛻變。 每一年的.NET 版本的釋出都是至今為止效能最好的版本,今年即將釋出的.NET8 依然會是如此,這裡是不是和OpenAI CEO Sam Altman 稱,GPT-4 是「我們迄今為止最強大、對齊最好的模型」。


6、Azure OpenAI 服務

自從去年年底 ChatGPT 推出以來,我們看到全球各行各業利用 ChatGPT 落地實際應用場景,例如:內容摘要、總結、電子郵件內容推薦和生成,甚至解決軟體程式碼問題。現在,隨著企業級 ChatGPT(國際預覽版)在 Azure OpenAI 服務中推出,各行業客戶及開發者可以將 ChatGPT 所帶來的革命性體驗直接整合到實際業務系統或App。例如通過 ChatGPT 驅動的自動化客服、總結客戶服務對話來更快解決客戶支援問題、個性化產品優惠推薦、建立新的廣告文案、自動化理賠處理等場景。Azure OpenAI 服務推出的最早的SDK就是.NET的 ,這是一個大利好,這是促進在企業級採用.NET技術的助推器。

https://www.nuget.org/packages/Azure.AI.OpenAI 以及 社群也推出了一個提示庫 https://xakpc.github.io/DotnetPrompt/ 


總結

總之,在選擇第一語言時,您應該問自己兩個問題:

  1. 如果你想找工作,它是一種好的程式語言嗎?
  2. 這是一門開始學習程式設計的好語言嗎?

對於 C#,我的答案肯定是肯定的。 對 C#/.NET 開發人員的需求很高,它是一種類似 C 的語言,具有強大的物件導向方法,並且每個版本的學習曲線都變得越來越容易接受。