Cloud 9 IDE 簡介

前一陣子看到有網友在問 Cloud 9 是什麼、如何使用等議題,剛好筆者使用過一陣子這套軟體,而且是付費會員,筆者就自身的經驗來說明 Cloud 9 的使用相關議題,給需要的讀者做一個參考。 [Update on 2017/12/19] Cloud 9 後來被 Amazon 併購了,舊版的 Cloud 9 帳號已經停止申請,筆者目前的使用經驗主要是基於舊版的 Cloud 9,待筆者將環境轉換到新版後再更新本文。

大體來說,Cloud 9 是一個雲端整合式開發環境 (IDE),透過瀏覽器即可操作,不需額外安裝軟體。通常只要版本夠新的主流瀏覽器都可以支援,筆者本身是透過 Google Chrome 操作 Cloud 9,其他的瀏覽器,像是 Firefox、Safari 或 Opera 應該也可以,就請讀者自行嘗試。由於 Cloud 9 IDE 運行在以 Ubuntu 為基底的環境,即使本地端使用 Windows 系統,仍然可以在不更動系統的情形下使用 Ubuntu 系統撰寫程式;有時候不得不使用 Windows 時,這個雲端環境可說是相當地方便。

理論上,能在 Ubuntu 上運行的程式語言,就可以在 Cloud 9 上執行。不過,受限於 Cloud 9 的 IDE 支援,對於不同語言的支援程度有些許差異。對於主流的程式語言,Cloud 9 大抵上都有支援,甚至像是 Kotlin 這種新興語言,Cloud 9 也在前一陣子加入基本的支援。筆者瀏覽了一下 Cloud 9 的支援清單,甚至一些冷門的語言也在其支援之列,單純就語言層次來說,已經相當夠用。

雖然 Cloud 9 的 IDE 有支援,但不會什麼語言環境都包進來,不過,安裝新的語言環境也不會相當困難,基本上,只要找針對 Ubuntu 14.04 LTS 版本的教程 (tutorial),大概都可以通用。筆者前一陣子在該平台寫 ASP.NET Core 網頁程式,雖然 Cloud 9 沒有內建的 .NET Core 環境,透過微軟的 .NET Core 官方網站,很快就可以建立一個開發環境。另外,筆者有一次想在 Cloud 9 環境中使用 MySQL,弄了一下子,發現該平台相關權限設置過於嚴格,後來就放棄了。雖然 Cloud 9 已經預先建立好 Ubuntu 虛擬機器,最好還是要會基本的 GNU/Linux 操作,比較能夠順利使用該平台。 像有時候筆者在 Windows 電腦下做事時,也會闕 Cloud 9 來用,馬上就有一個現成的小型 GNU/Linux 環境可用。

由於瀏覽器先天的限制,Cloud 9 能寫的程式類型相對受限;基本上,只能撰寫三類型的程式:(1) 終端機程式 (console application)、(2) 函式庫 (library) 或模組 (module) 或套件 (package)、(3) 網頁程式 (web application);跟本地端開發比起來,其實還蠻侷限的。[Update on 2017/12/19] 由於現在蠻少人會願意用終端機程式,通常 Cloud 9 就是用來開發和 UI 無關的核心功能或者是網頁程式。稍微規畫一下專案的架構,就可以將不需使用者介面的部分放到 Cloud 9 來開發。

使用過一段時間的 Cloud 9 之後,就可以發現該平台有針對網頁程式去設計。只要把寫好的網頁程式的 IP 掛在 0.0.0.0,port 掛在 8080,就可以即時地預覽該程式,不需要設定網頁伺服器,對於開發早期,這樣的設計可以節省設置環境的時間,專注在程式開發上。經筆者實測,甚至連 Cordova 或 Ionic 這種 hybrid mobile framework 都可以運作。

在 Cloud 9 環境建立專案時,可以選擇某個模板 (template),基本上,模板就是預先建立好的專案,程式設計者可以少打一些樣板 (boilerplate) 程式碼。有些網友可能會發現不是每種語言都有樣板可用;其實有沒有樣板不是很重要,首先,很多程式語言都有自己的樣板產生器,不一定要用 Cloud 9 內建的,再者,其實那些樣板也可以自行手動建立;有時候 Cloud 9 建立的樣板不一定符合自己的需求。

最後,談一下 Cloud 9 的收費服務。雖然 Cloud 9 可以免費使用,但免費方案僅能使用一個私有虛擬環境,而筆者習慣每個專案搭配一個獨立的環境,比較好管理;一方面支持 Cloud 9 平台,一方面在專案還不成熟時,也不想讓專案提早曝光。有需要的讀者,可以自行參考。

Disclaimer: 筆者和 Cloud 9 無對價關係,本文僅為個人意見。

上篇Go (golang) 是否該支援泛型?
下篇程式設計師的工具箱