張大胖正在海邊的沙灘上愜意地休假,老闆一個奪命電話打來:
「 大胖,系統出問題了,你趕緊看看,調試一下!」
「老闆啊,我出來休假沒帶我的筆記本電腦啊,我們的開發環境那麼複雜,幹不了活啊!」 張大胖掩飾著得意的心情。
「別找藉口啊!我們的開發環境都在雲端,IDE都在瀏覽器中,怎麼不能幹活?快去找個Pad,或者用酒店電腦!否則別想要項目獎金了。」
這當然是我杜撰的一個場景,最近看到一篇國外的文章,標題是《編程的未來在你的瀏覽器當中》, 核心思想是:「基於雲的編程環境將使得編程更為容易」, 這是什麼意思呢?
作者舉了幾個例子,表明過去幾十年, 桌面軟體不斷地在向Web遷移:
音樂從iTunes轉向Spotify和Pandora
字處理軟體從本地轉向Google Docs和Office 365
圖形設計軟體從Photoshop轉向在線的Figma。
不管如何,程式設計師的IDE倒一直「固執」地呆在桌面端,比如:Eclipse,IDEA, VS Studio , VS Code等等。
原因不複雜, 一是IDE對計算力要求比較高 , 二是對複雜項目的體驗不好。
現在GitHub提供了一個新功能,叫做「Codespaces」,試圖搞定這兩個問題。
在你的GitHub代碼倉庫中,只要點擊一個按鈕,你就可以在線地編程了, 根本不需要安裝任何東西,參見視頻:
Codespaces的口號是:不用離開GitHub,就能獲得VS Code的體驗。
編碼、編譯、測試、調試都可以用Codespaces完成, 其中代碼編輯器基於VS Code Editor, 也就是Erich Gamma大神之前搞的那個Monaco, 不得不佩服Erich Gamma,他很早就看到了未來的趨勢,離開Eclipse,從IBM跳到微軟,開始搞在線的開發環境。
如果僅僅是在線編輯,那也沒什麼讓人激動的,關鍵是Codespace 還能給你提供一個容器化的環境,如果你的應用程式需要MySQL, Redis, Elastic Search 等軟體,你可以通過Dockerfile告訴Codespaces, 這樣等你打開的時候,這些軟體就自動配置好,可以使用了, 十分方便。
既然代碼是在雲端,那就打開了共享和協作的大門, 使用Live Share功能, 同事之間可以共享屏幕查看代碼,還可以語音、視頻聊天,一起解決問題。
早些年我在IBM的時候,公司就搞過一個更加激進的項目,每個人分一個「瘦」PC, 計算能力弱,然後連到伺服器端的各自虛擬機,虛擬機已經把工作所需要的所有軟體如Lotus Note, WebSphere , Word, RAD等全部配好,新人來了開箱即用,非常方便,本地只是顯示,計算全在伺服器端。這種類似網絡計算機(NC)的模式對伺服器端的要求很高,當時雲計算,Docker這些技術還沒出現, 所以體驗沒有本機好,沒有大規模鋪開。
我們來暢想一下未來的場景,以後公司不會再買高配置的電腦了,只要到GitHub上給每個人申請一個Codespaces就可以了,集成測試環境,用戶驗收測試環境也都可以在雲端搞定,全部「雲化」。
對於程式設計師來說,無論何時何地,只要能找到一個能上網的電腦,Pad,不管性能如何,都可以打開GitHub上的Codespaces, 輕鬆地在線編程。
不僅是微軟的Codespaces, 其他廠商也推出過類似的編程環境,比如華為的Cloud IDE, 它們能成氣候嗎?
我覺得關鍵還得看體驗如何,在伺服器端,計算資源肯定管夠(當然錢也得掏夠)。
在瀏覽器端,Cloud-Based 的IDE 能不能做到本地IDE那樣絲滑般柔順?能不能做到迅速反饋? 由於計算主要發生在伺服器端, 網速一定得快,時延一定得低,5G也許就是助力。
不管如何,我也認為這是未來的發展趨勢:計算向伺服器端集中,客戶端走向輕薄。嗯, 這有點像最初的主機模式,多個終端連接到主機上。歷史似乎給我們開了一個玩笑,兜了一圈回到起點。
這個Codespaces現在還屬於Beta期,需要申請才能獲得嘗鮮的權限,感興趣的可以到https://github.com/features/codespaces 去申請一下。
添加良許個人微信即送3套程式設計師必讀資料
→ 精選技術資料共享
→ 高手如雲交流社群
推薦閱讀:
使用telnet測試指定埠的連通性
國內開發者在 GitHub 上開源 LeetCode 刷題模板,火爆全網!
微軟太良心,這麼強大的軟體竟然完全免費!
5T技術資源大放送!包括但不限於:C/C++,Linux,Python,Java,PHP,人工智慧,單片機,樹莓派,等等。在公眾號內回復「1024」,即可免費獲取!!