當前位置: 華文問答 > 數碼

為什麽很少聽到有人在用 Windows 編程?

2019-05-25數碼

該答案使用 VSCode-Zhihu 外掛程式創作並釋出

我就是在用 windows 編程,2020 年的 windows 已經不是你想的那樣了。

我最開始學編程的時候,在 windows 平台上遇到的很多討厭的問題,現在都解決了,而且,有的解決的似乎超出了我的預期。

第一,我希望 windows 平台上能有像 linux,macos 上的那種包管理工具,能讓我一個命令就下載相應的環境,並把環境的路徑添加到環境變量中,無需自己手動操作,然而這樣的包管理工具已經存在了:

我現在換了 surface pro 後,電腦上的所有環境,包括 node,npm,python,java,git,filezilla,都是用這個工具安裝的,所有包自此之後都不需手動管理,就算要解除安裝,也只是一個命令。

第二,我希望能在 windows 在舒舒服服地學習,使用 linux。

微軟已經解決了這個問題,而且解決的很好。現在的 WSL2 和主系統 windows 完美的結合在一起,進入 WSL2 後,一切都和 linux 系統一摸一樣,和 WSL1 的轉譯系統呼叫的方式不同,WSL2 是基於虛擬機器的,但是這個虛擬機器和普通的虛擬機器不太一樣,它的環境並不是和 windows 隔離的,你可以在 linux 裏編輯和更改 windows 系統的檔,也可以在 windows 裏編輯修改 linux 的檔,二者是互通的,並且如果你在 linux 裏啟動一個 localhost 的套用,你可以直接在瀏覽器裏用 localhost 去存取。

根據我最近的一點點研究,大概 WSL2 和 windows 的作用機理是透過一個中間的網絡檔協定(9p)去互動的,在 WSL2 中編輯和開啟 windows 的檔,就有點類似於你在 filezilla 透過 ftp 開啟一個遠端 linux 伺服器的資料夾一樣,WSL2 是有自己的私有ip和虛擬網卡的,也就是說 WSL2 和 windows 其實作用方式和雙系統很像,只不過兩個系統之間是互相將對方的整個 filesystem mount 到自己的根目錄中,然後再透過一個虛擬的私有本地網絡互動達到了這種效果。

WSL2 並不是你們想象的那種又卡問題又多,很難用,很重,相反,它很輕量,很快速,擁有 full system call compatibility, 可以執行 docker 這類的容器。

有了它,就可以更方便的學習 linux,使用 linux 的相關工具,在 linux 環境做開發等等一系列事情,再結合 VSCode 提供的 remote development,直接remote到原生的 WSL2,VSCode的超強編輯體驗 + linux 環境,簡直不要太爽。

第三,我希望有好用的命令列工具

去年推出的 windows terminal,支持多分頁,自訂樣式,GPU文本渲染,各種快捷鍵,螢幕分裂,json自訂配置:

你以為的 windows 命令列工具可能還長這樣:

有了上面三個的加持,再結合 VSCode,在 win 平台上開發,再也不是你從前以為的那樣,至少,我可以說,在 2020 年,win 平台上開發,搭開發環境麻煩,無法獲得類 unix 體驗等等問題,都是不存在的。

時代在發展,微軟也在擁抱開源,近幾年的 VSCode,新 edge,WSL2早已表明了微軟的態度,不要總用幾年前人們的觀點來看現在的 windows 開發環境,也不要受刻板印象的影響,windows 早已不是原來的 windows 了。

另外,再結合去年的新品,基於 Chromium 內核的新 Edge 瀏覽器,VSCode 線上版本 VSOnline,隨時隨地瀏覽器一開,遠端伺服器一連,開發環境和本地解耦再也不是夢,雖然這個在 mac 上也一樣ok,但至少,抹平了和 mac 的差距。