位元詩人 [技術雜談] Paiza 雲端開發環境介紹

Facebook Twitter LinkedIn LINE Skype EverNote GMail Yahoo Email

前言

Paiza 是一個雲端開發環境 (cloud development environment),這類開發環境只要透過主流瀏覽器 (Chrome, Firefox, Safari 等) 就可以操作,不需在本地端額外安裝其他的軟體。Paiza 的產品線有兩條,paiza.io 是雲端編輯器,paiza.cloud 則是雲端 IDE,本文會分別介紹這兩項產品。

其實雲端開發環境不是什麼新鮮事,Paiza 也不是最知名的開發環境 (參考這個排名)。為什麼筆者要特別介紹 paiza 呢?Paiza 開發團隊來自日本,在開發這類產品時,對於亞洲語系 (中日韓語系等) 會比歐美團隊來得更注重。例如,以下的 C 程式用到一些中文:

#include <locale.h>
#include <stdio.h>
#include <wchar.h>

int main(void)
{
    // Trick to print multibyte strings.
    setlocale(LC_CTYPE, "");

    wchar_t *s = L"你好,世界";
    printf("%ls\n", s);

    return 0;
}

在 Paiza 的開發環境上,中文可以正確無誤地顯示;若讀者拿這段程式去其他同質的產品上試,就會發現很多開發環境無法正確地顯示其中的中文字串。

paiza.io 雲端程式編譯器 (editor)

paiza.io 是雲端編輯器,共支援了 29 種程式語言 (參考這個清單)。由於 Paiza 背後是跑 GNU/Linux 平台,故 GNU/Linux 上主流的程式語言都支援。但 paiza.io 算是輕量級環境,沒有 SSH 遠端連線權限,也不能開終端機視窗,基本上就是提供一個編輯框讓使用者直接在網頁上寫程式。

以下是在 paiza.io 上撰寫 Objective-C 程式的畫面:

paiza.io 雲端編輯器

雖然 paiza.io 不用註冊帳號也可直接使用,但註冊帳號會有一些額外的好處,像是可以管理自己的程式碼,可以和 GitHub Gist 同步化等。除了用電子郵件註冊外,paiza.io 也支援 GitHub 帳號、臉書帳號、Google 帳號等快速註冊。此外,paiza.io 上寫的程式碼也可以直接內嵌 (embed) 在網頁中,對於技術部落客來說相當方便。

paiza.cloud 雲端整合式開發環境 (IDE)

paiza.cloud 則是一個雲端 IDE,這個軟體需要註冊帳號才能使用其服務;不過,可以用 GitHub、Google、Facebook 等帳號快速註冊,這個過程不會太麻煩。

剛啟用 Paiza Cloud 時,還沒有啟動任何伺服器:

paiza.cloud 建立新伺服器

根據訂閱計畫的不同,可使用不同層級的服務:

paiza.cloud 選擇訂閱計畫

一開始試用時,先選 FREE plan 即可;但 FREE plan 啟動的伺服器在 24 小時後會自動銷毀,如果需要長期在這個雲端 IDE 上撰寫程式,最好還是升級到 LITE plan 以上;應該不會有人想每天重新建置一次開發環境吧。至於 BASIC plan 的功能是可以直接將雲端 IDE 兼做網頁伺服器,用來發佈自己的作品;以一般最低階的 VPS (個人虛擬主機) 來說,大約每個月 5 至 10 美元,所以每個月 19.8 美元的價格訂得相當微妙。

在建立伺服器時可選擇是否要快速啟用某些開發環境:

paiza.cloud 設定伺服器起始狀態

開啟檔案時竟然是開一個新的虛擬小視窗,而不是像 Cloud 9 整個貼在頁面上,只能說這個開發團隊的美學不太一樣:

paiza.cloud 檔案編輯視窗

不過,Paiza Cloud 其實可以在 TAB Window Mode 及 Floating Window Mode 間切換,切到 TAB Window Mode 就會比較像在用 Cloud 9 或其他雲端 IDE 的感覺。筆者試用的感覺是目前 Floating Window Mode 做得比較完整。

當然,也有終端機環境可以用:

paiza.cloud 的終端機

我們寫了個 Sinatra 小程式來測網頁伺服器的功能:

require 'sinatra'

get '/' do
    'Hello World'
end

輸入以下指令就會自動啟用網頁伺服器:

$ ruby hello.rb
Traceback (most recent call last):
        1: from hello.rb:1:in `<main>'
hello.rb:1:in `include': wrong argument type String (expected Module) (TypeError)
~$ ruby hello.rb
== Sinatra (v2.0.4) has taken the stage on 4567 for development with backup from Puma
Puma starting in single mode...
* Version 3.12.0 (ruby 2.5.3-p105), codename: Llamas in Pajamas
* Min threads: 0, max threads: 16
* Environment: development
* Listening on tcp://localhost:4567
Use Ctrl-C to stop

開啟網頁程式如下圖所示:

在 paiza.cloud 上開網頁程式

結語

Paiza 雲端開發環境是一套新的產品,除了免費的 paiza.io 雲端編輯器外,主力產品是 paiza.cloud 雲端 IDE。從實際的使用經驗來說,paiza.cloud 的使用者介面和說明文件相對比較陽春些,而且完全不用終端機的話有些動作,如編譯程式,無法完成,應該還有一些進展的空間。不過,Paiza 的開發團隊相當注重萬國碼語系的支援,這是同質的歐美團隊所缺乏的優勢。目前 Paiza 知名度不算高,如果在 UI/UX 上加強一下,應該還是一個大有可為的產品。

關於作者

身為資訊領域碩士,位元詩人 (ByteBard) 認為開發應用程式的目的是為社會帶來價值。如果在這個過程中該軟體能成為永續經營的項目,那就是開發者和使用者雙贏的局面。

位元詩人喜歡用開源技術來解決各式各樣的問題,但必要時對專有技術也不排斥。閒暇之餘,位元詩人將所學寫成文章,放在這個網站上和大家分享。