陸續寫了幾篇 Python 新手筆記,寫了二十幾年 C# 四處想推人入坑的老人,臨老學起新語言不免被問:「平時不是老吹噓 .NET 多強多好用,寫什麼都得心應手,幹嘛還要學 Python?」

Python 的崛起

Java 過去一直是通吃學術界、開源界及企業的王者,但從 2018 起 Python 異軍突起,在 TIOBE 程式排行榜開始急速上升,2020 年 11 月首次擠下 Java 升上第二名,終結近 20 年持續由 Java 與 C 包辦冠亞軍的傳統,並於 2022 年後開始稱霸。


藍線是 Python,Java 是綠線,橘線為 C

你可能不知道,其實 Python 誕生於 1991,歷史比 Java (1995)、JavaScript (1995) 還悠久,依 TIOBE 指標大概是從 2018 才開始展露頭角,之後便扶搖直上,在四年後登基。

Python 之所以廣受歡迎,主要在於語法簡潔易讀,初學者非常容易上手(註:但依我自身經驗,深陷其他程式語言思考慣性的老人,初學 Python 反而有撞牆期),當使用的人愈來愈多,形成活躍的開發者社群,大量的程式庫、框架、開發工具、文件、教學如雨後春筍,學習及開發各式應用門檻不斷下降,形成豐富完整的生態系,茁壯至今。

近年來 Python 的爆炸性成長,我個人將其歸功於資料科學及人工智慧領域的推波助瀾,Python 是許多殺手級應用的奧林匹克指定語言。以我自己為例,學習 Python 的最主要動機即是數據分析及 AI。

不管要什麼專業圖表,如果你會 Python,引用開源程式庫寫幾行程式碼就有了,難道不香嗎?範例範例

至於 LLM 模型的程式庫及範例,第一順位永遠是 Python 版。當然主流模型會同時提供其他語言版本,即便沒有,若是熱門模型很快會有人翻寫 C# 版,再不行,解析 WebAPI 介面自己寫也不算難事。但,這就像「先翻譯成中文」vs「直接讀原文」,效率高下立見,學會主流語言才不會在競爭時吃癟。

既視感 Déjà vu

回起起 AJAX 興起的年代,我面臨過類似的抉擇。

當時 ASP.NET WebForm 針對 AJAX 提供了 UpdatePanel 技術,讓你留在 VB.NET/C# 的舒適圈,不用多學 JavaScript 語言一樣能寫出很炫的動態刷新網頁。繼續用 C#,工作上的需求一樣可以順利交差,省下多學一種程式語的力氣。

我一度陷入要不要學 JavaScript 的掙扎,最後考量 JavaScript 是瀏覽器的原生語言,UpdatePanel 之類的解法只是隔靴騷癢,想完整掌控網頁發揮效能終究得學 JavaScript。於是我還是花了時間從頭學習 JavaScript、jQuery,在沒有 jsfiddle、jsbin 的年代還土砲 Mini JavaScript Lab,無心插柳錄了 jQuery 教學

後來的事大家都知道了。

JavaScript 如今已成前端開發的必備技能,遇到提供程式開發語言選項的場合,JavaScript 總會在先發名單。在 JavaScript 最火紅的年代,JavaScript Everywhere,網頁伺服器(Node.js)、手機 App (React Native/Ionic/Cordova)、區塊鏈(web3.js)... 什麼鬼東西都可用 JavaScript 寫,甚至可以控制 Arudino ( Espruino)...

事後來看,當年花時間建立 JavaScript 基礎是我技能樹上最超值的投資之一。即便稱不上精通,我的 JavaScript 能力足以應付工作與生活需求,遇到只支援有限語言的場合,只要選項包含 JavaScript 我就能活,被丟到荒野也能生存的自信,讓人格外安心。

如今,我用同樣的心情看待 Python,相信學習 Python 肯定是這個時代的一項明智投資。

令人期待的殺手級應用 - Excel

如果你覺得以上的情境,都不足以構成學習 Python 應用的好理由。在此為大家介紹最近加入 Python 應援團的成員。

嘖嘖嘖! 瞧瞧 Python 與 Excel 共舞的美妙身影... (盒鬚圖)

如果當年我願意為寫 Word/Excel 巨集學 VBA,面對比 VBA 實用 100 倍的 Python,我想不出有理由不學?(謎:有! 不想想自己幾歲了,確定還學得動?)

補充:對 Python + Excel 瀨尿牛丸有興趣的同學可參考 PAPAYA 電腦教室的介紹影片

後記

即便決定學好 Python,對我來說,就像決心要學好英文,C# 則像中文是我的母語,是我最愛的語言。

前陣子有幸跟為你自己學 PYTHON作者龍哥小聊,他也說:「我還是最喜歡 Ruby」。

嗯,我懂。

As a seasoned C# developer, I explains my motivation for learning Python despite my proficiency in .NET. This post highlight Python’s rise to prominence, especially in data science and AI, due to its simplicity and vast ecosystem. I compares Python’s current significance to the past rise of JavaScript, emphasizing the importance of staying updated with mainstream languages for competitive advantage.


Comments

# by Zakk

個人也是C#的愛用者,但最近圖表的需求愈來愈多,使用者也開始AI來AI去,ML.NET感覺上沒什麼人討論,想想還是把python學好比較方便未來的需求

Post a comment