我最開始學程式設計的時候,在 windows 平臺上遇到的很多討厭的問題,現在都解決了,而且,有的解決的似乎超出了我的預期。
第一,我希望 windows 平臺上能有像 linux,macos 上的那種包管理工具,能讓我一個命令就下載相應的環境,並把環境的路徑新增到環境變數中,無需自己手動操作,然而這樣的包管理工具已經存在了:
我現在換了 surface pro 後,電腦上的所有環境,包括 node,npm,python,java,git,filezilla,都是用這個工具安裝的,所有包自此之後都不需手動管理,就算要解除安裝,也只是一個命令。
微軟已經解決了這個問題,而且解決的很好。現在的 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 程式設計,2020 年的 windows 已經不是你想的那樣了。
我最開始學程式設計的時候,在 windows 平臺上遇到的很多討厭的問題,現在都解決了,而且,有的解決的似乎超出了我的預期。
第一,我希望 windows 平臺上能有像 linux,macos 上的那種包管理工具,能讓我一個命令就下載相應的環境,並把環境的路徑新增到環境變數中,無需自己手動操作,然而這樣的包管理工具已經存在了:
我現在換了 surface pro 後,電腦上的所有環境,包括 node,npm,python,java,git,filezilla,都是用這個工具安裝的,所有包自此之後都不需手動管理,就算要解除安裝,也只是一個命令。
微軟已經解決了這個問題,而且解決的很好。現在的 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 了。