LangShift 免費程式語言對比學習平台,用熟悉的語言學新語言

LangShift.dev 是免費免註冊的程式語言對比學習平台,開發者用已經熟悉的 JavaScript 或 Python 對照著學新語言,繁中版可直接使用,內容量與執行邊界一次看清。

用 AI 摘要這篇文章:

會寫 JavaScript 的人被派去接 Python,最花時間的往往不是語法本身,而是教材節奏:翻開任何一本入門書,前三章都在教你什麼是變數、什麼是迴圈,這些你早就會了。LangShift 把這段路砍掉的方式很直接,同一個概念,左邊放 JavaScript 怎麼寫,右邊放 Python 怎麼寫,對照著讀。它是免費網站,不用註冊,有繁體中文版,我實際在課程頁按了執行鈕,範例程式在瀏覽器裡跑出了正確答案。

先交代基本盤。這是 GitHub 上 erweixin/langshift.dev 這個開放原始碼專案的官方網站,2025 年 7 月開始開發,累積 1,118 顆星與 94 次 fork,最後一次推送在 2026 年 7 月,到 8 月下旬還有人回報內容錯誤,是個活著的專案。整站以 Next.js 搭配 Fumadocs 文件框架建成,教材本體是一批 MDX 文件。不過有三件事會直接影響你怎麼用它:號稱開源但授權檔不存在、內容由 AI 生成再經審校、互動執行只有部分語言真的在瀏覽器本地跑。下面逐一攤開。

課程卡有十張,倉庫裡有十四個課程目錄

首頁的課程卡有十張,其中九條是語言轉換路線:JavaScript 到 Python、Rust、C++、Go、Swift、C、Kotlin、Java,加上 Python 到 JavaScript,第十張是 LeetCode 熱題 100 題解。實際翻原始碼倉庫,課程目錄底下有十四個資料夾,Python 到 Go、Python 到 Rust、Java 到 Go、Java 到 JavaScript 這四條都已經做完,直接打網址就能上課,只是首頁還沒把它們放進課程卡。行銷頁與實際內容之間的落差,在這個專案身上是往好的方向落。

LangShift 繁中課程頁:JavaScript 到 Python 學習模組清單,左側為課程導覽與模組目錄,右側列出十三個學習模組Pin
LangShift 繁中課程頁的模組清單,左側導覽列的標題仍以簡體呈現。

每條路線的份量也不小。以 JavaScript 到 Python 這條主線來說,十三個模組照順序走:Python 入門、語法對比、模組系統、物件導向與函數式、非同步、測試與型別、Web 開發、資料處理與自動化、實作專案、進階主題、常見陷阱、Pythonic 寫法、型別註解。整個倉庫的基礎模組檔超過兩百個,比首頁宣稱的 80+ 學習模組多出一倍以上,行銷數字反而低估了自己的庫存。

對已經會一門語言的人,真正有用的是概念映射這一層。例如解構賦值,JavaScript 的 const { name } = obj 在 Python 裡對應 user_name = user_info["name"],或者更接近原意的 user_name, user_age = user_info.values();async 與 await 對到 Python 的 async def;npm 生態對到 pip 與 PyPI。這些跨語言對照在官方文件裡不存在,官方文件預設你從零開始,而你的問題恰恰是從某個地方開始過。

站方把學習路徑分成三段:基礎段處理語法、模組系統與程式範式的對應;實作段進入測試、Web 開發、資料處理與收尾專案;進階段談語言特性、常見陷阱與設計模式。這個編排跟多數入門書的章節順序相去不遠,差別在每一步都掛著你已經會的那門語言當參照物,讀起來少一種在陌生城市看地圖的感覺。

路線安排上有兩個實際的細節。其一是時數估計,站方給每條路線標了預估週數,JavaScript 到 Python 標 8 到 12 週,C++ 與 C 標到 12 到 18 週,Rust 標 10 到 16 週,排學習計畫時可以直接拿來當分母。其二是 LeetCode 熱題 100 題解,這條路線把刷題跟語言轉換綁在一起,正在準備求職面試的人可以一魚兩吃,用新學的語言寫題目,順便把語法練熟。

我按了執行 Python,範例當場跑出正確答案

語法對比模組的第一課是變數宣告。每個教學區塊左右並排兩個 Monaco 編輯器,就是 VS Code 同款的網頁版編輯器,左邊 JavaScript、右邊 Python,附三顆按鈕:執行 Python、執行 JS、展開。我按下執行 Python,右側範例用 f-string 組出問候句,畫面當場輸出「你好,張三!你今年25歲。」,字串插值的行為與教材說明一致,不是截圖裝飾。

LangShift 語法對比教材:左右並排的程式碼編輯器分別放 JavaScript 與 Python 範例,附執行 Python 與執行 JS 按鈕Pin
語法對比模組的並排編輯器,範例附執行按鈕,輸出當場出現在畫面上。

Python 能在瀏覽器裡跑,靠的是 Pyodide,把 CPython 編譯成 WebAssembly 之後整包載入,程式碼不出本機。原始碼對 Pyodide 的載入還做了多 CDN 來源的健康檢查與備援,一個來源失效自動換下一個,上課時不會因為單一 CDN 出狀況就整頁卡住。JavaScript 側更簡單,直接在瀏覽器裡執行。

教材在細節上也誠實。講解構賦值時,Python 側先給一行刻意標注是模擬的寫法,緊接著補上真正對等的 values() 寫法,並說明兩者的差別在哪裡。這種不迴避落差的做法,比直接端出一段看起來工整對仗的程式碼更能建立正確的理解,也順帶回答了一個常見疑問:為什麼同一件事在兩個語言裡長得不一樣。

教材的密度也不只程式碼。每個小節附關鍵差異表,把宣告方式、命名慣例、常數、字串格式化逐列排開,讀完範例後回頭速查很方便。站內也做了全文搜尋,快速鍵 ⌘K 叫出搜尋框,臨時想查某個語法在哪個模組講過,不用逐頁翻。這種整理對趕時間的人有實際價值。

執行架構有兩層:Python 留在瀏覽器,Rust 會出門

執行鈕的行為依語言而異,這是原始碼裡最值得先知道的一段。編輯器元件裡的語言執行管理器把語言分成本地與遠端兩群:

語言執行方式程式碼去向
PythonPyodide(瀏覽器內)不離開本機
JavaScript / TypeScript瀏覽器原生執行不離開本機
Rust呼叫 play.rust-lang.org送到 Rust 官方 Playground
C / C++呼叫 wandbox.org送到 Wandbox 線上編譯服務
Go呼叫 play.golang.org送到 Go 官方 Playground
Java站方 API 代理 Paiza.io經站方伺服器轉送
Swift站方 API 代理 Paiza.io經站方伺服器轉送
Kotlin呼叫 api.kotlinlang.org送到 Kotlin 官方 API

換句話說,學 JavaScript 到 Python 這條路,練習全程在瀏覽器裡完成;但學 Rust、Go、C++ 這些路線時,按下執行,範例程式會被送到對應語言的線上編譯服務。這是常見的工程取捨,把編譯型語言搬進瀏覽器的成本遠高於 Python,借助社群 Playground 是合理做法,但如果你打算把自己手上的程式貼進編輯器練習,先想想那段程式碼能不能出門。這條邊界來自原始碼判讀,各語言遠端執行的實際成功率我沒有逐條測過。

遠端這群裡還有一層差異值得知道:Rust、Go、Kotlin 直接呼叫該語言官方或社群的公開服務,Java 與 Swift 則走站方自己架的代理端點再轉送上游,原始碼裡兩個代理最終都打向 Paiza.io 這個線上編譯服務。我抽測了這兩個站方端點:Swift 的端點真的把一段印數字的程式跑出了結果,Java 的端點則直接回 405,等於這條路線的執行鈕目前按了沒有反應。遠端執行能不能用,取決於別人的服務活著沒有,練習時偶爾失敗,回頭重跑一次通常就過。

流量分析方面,網站掛著 Google Ads 與 GA4。GA 的事件設定收得算節制:程式執行事件只回報語言名稱與成敗,不包含程式碼內容,IP 匿名化開著,廣告個人化訊號關閉。你在編輯器裡寫什麼,Google 不知道,但哪個課程被多少人讀,站方看得到。

AI 生成的教材,錯了有人修

README 對內容產製方式寫得很坦白:運用 AI 技術生成學習內容,經審核優化,並建議搭配官方文件一起讀。倉庫裡留著 CLAUDE.md 與 .cursorrules 這類 AI 輔助開發的設定檔,整個專案的產製流程就是人機協作,站方沒有迴避這一點。

這種流程的品質要靠修正迴圈撐。issue 板上確實有錯:JavaScript 到 Python 課的範例程式錯誤被回報過兩次,後來都關閉修正;Swift 課的註解錯誤修掉了;2026 年 8 月下旬還有人回報 Python 到 Go 課的範例標籤配錯。對照的另一面是修得勤,多數錯誤在幾週內關閉,外部貢獻者的修正也被合併進主線。把它當主要路線圖、官方文件當最終依據,是比較穩的用法。

issue 板同時是路線圖的看板:有人許願 JavaScript 轉 Dart、Go 轉 Rust、C++ 轉 Python、C# 轉 Python,這四則許願到今天都還開著,作者這段時間倒是先把 Python 到 Go、Java 系列做完了。想學的組合還沒出現時,留一則 issue 是唯一入口,但許願與實作之間沒有保證兌現的順序。

學語言最終要看產出。拿 Python 做出實際東西的例子,可以看我們先前介紹過的 F1 Race Replay,用 Python 把 F1 遙測資料重播成互動賽道動畫,那就是把第二語言用到真實資料上的樣子。

繁中版能用,在地化只做了一半

繁體中文版不是聊備一格:每個課程目錄都有對應的 zh-tw 文件,打開網站的 /zh-tw/ 路徑,課程頁標題、正文、對比表都是繁體。實際讀起來有兩個地方要適應。其一是左側導覽列的模組標題有兩種毛邊:有的整條還停在簡體,有的字是繁體但詞彙走對岸講法,跟正文的繁體放在一起,拼裝感很明顯。其二是用語走對岸慣用:教材裡寫變量、聲明,台灣的慣用是變數、宣告,連資料型別的講法也走對岸版本。讀懂沒有問題,拿來授課或轉述時記得自行換算。

開源徽章連向一個不存在的檔案

README 頂端掛著 MIT 授權徽章,連向倉庫根目錄的 LICENSE 檔。那個檔案不存在,直接存取回 404,GitHub 的授權欄位顯示空白,package.json 裡也沒有授權宣告,連徽章旁邊的 CONTRIBUTING.md 一樣是 404。原始碼公開看得到,與授權存在可以合法重用,是兩件事:沒有授權檔的倉庫在法律上預設保留所有權利。自己上網站讀、跟著範例練,完全沒問題;要把教材整段搬進公司內訓或自己的付費課程,目前沒有授權依據,等作者補上授權檔再說。

授權狀態對一般讀者影響有限,對教學單位影響很直接:補習班、學校課程、企業內訓想把教材印成講義或改編成作業,穩當的做法是等授權明確,或只對學生給官方網站連結。以 GitHub 的慣例,這種事開一則 issue 提醒作者即可,補一個授權檔對維護者來說是幾分鐘的工程。

順帶看清「永遠免費」的支撐結構:2026 年 4 月底的提交把 Google Ads 整合進網站,實際打開課程頁也載入了廣告腳本,加上 GA4 流量分析。免費是真的,模式是廣告,不是公益承諾。這對一般使用者通常無感,但如果你在意的是「會不會哪天改收費」,答案已經寫在商業結構裡。

誰該現在開來用,誰先去讀官方文件

適合的畫像很明確:已經有一門主力語言,多半是 JavaScript 或 Python,工作上或求職上需要快速建立第二語言的全貌,而且喜歡對照表加可執行範例這種節奏。這種人用 LangShift 當骨架、官方文件當字典,一兩個月內可以把新語言帶到能做事的程度。完全零基礎的人先繞道,教材預設你已經會寫程式,變數與迴圈不會再教一遍;需要授權乾淨教材的組織,也要等授權落地再採用。

排程可以這樣想:每週走一到兩個模組,每個概念先讀對比,再把範例改幾行跑一次,最後憑記憶重寫一遍,三個動作合起來大半個小時;週末把當週模組對應的官方文件章節補讀完,把對比表沒講到的細節補齊。照這個節奏走完十三個模組,剛好落在站方估的八到十二週區間。

同性質的替代品不多,定位也各不相同。語言官方的入門教學最權威,但節奏從零開始;Qwerty Learner 用打字練拼字是練中學的另一種形態,跟語言學習互補;學生開發者想湊資源,可以看 Resourify 整理的學生優惠清單

想試的人,直接開網站的繁中路徑,讀完語法對比模組、按一次執行 Python,三十分鐘內你就會知道這種對照式節奏合不合自己。最後留一個判斷:LangShift 的價值在內容組織,把兩個語言的概念差異整理成可跑的地圖;執行環境只是配套,而且配套有邊界。把它放在這個位置上用,它是免費網路裡少見的扎實教材。

Sliven 褚崇名
Sliven 褚崇名

每日分享科技新知、免費資源以及 WordPress、虛擬主機相關主題,任何問題歡迎在科技月球下方留言,或是發送 Email 至 [email protected] 與我聯繫。

文章: 1044

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


Share to...