Bespin 雲上開發

Sunday, February 15, 2009

現在甚麼都可以放在雲上,連閞發環境也是。Mozilla Labs 剛剛推出了一個叫 Bespin 的 Web-based Code Editor,用的是 Canvas 技術,開發者只要使用瀏覽器即可進行開發,功能包括實時協作、指令欄 (如 VI) 等等。

其實這並不是新鮮事,之前在 Herokuappjet 也有一些讓你可以在瀏覽器進行開發的工具。除了編輯代碼,還可以與伺服器進行整合,將所有的 version control、compile、build、deploy 等等工作,都放到一個平台上。

Bespin 則是獨立的 Code Editor,可自行安裝到伺服器上,整合方面則可靠插件來達成。可以想像將來的軟件開發,可以自己在伺服器上建立一個 Bespin 服務,讓開發者可以存取代碼及協作。而在 Mozilla 現在的Bespin 的頁顯示,將來可以輸入一些 Public Project Repository,然後 Bespin 就為你建立該 Project。

這種平台暫時可有利於 Web 開發,但如果是開發桌面軟件則不太合適了。除了這種方式來提供開發環境外,使用虛擬機也是另一個方法,甚至可以提供整整一個 OS 的開發環境。無論是何者,伺服器的建立、維持的成本如何,也是要考慮的細節。當然這些也可能有可外判的「雲上」方案。

這樣的好處當然是開發者不需預備開發環境即可開始工作,省卻很多時間和資源,而且成員可使用一致的工作環境。但反過來想,因為只要有網絡和瀏覽器即可,工作似乎越來越「黐身」了?

不走回頭路

Friday, January 30, 2009

自從 Chrome 過了新屎坑期,聲勢又一下子沉了下來,即使上年尾正式跳出 beta,也不是人人留意。 《數位時代》 上一篇翻譯文章 Google Chrome, Out of Beta. Will That Be Enough? 提到年尾時 Chrome 的市佔率不足 1% ,增長太少太慢,Google 離其「雲端夢」還有很遠。

那 Chrome 在 Google 的「雲端夢」裏,佔多重位置?

Google 的商業模式是網上賣廣告,所以她要令用戶黏著網絡。要增加黏度,除了讓用戶搜尋網頁,還可以處理電郵、文件、日程等等。她們做得非常出色,很多人已轉用一系列的 Google 應用。最終可能一個簡單的 OS 再加一個瀏覽器已足夠所需。

由網頁到網絡應用程式,瀏覽器要作出相應的改變,也是 Chrome 推出時的重點:更快、更穩定、更安全和提供離線運作。Chrome 的確令人眼前一亮,但並不超前其他瀏覽器很多。Opera、Firefox 已有很不錯的速度, Tracemonkeyv8 也可以一拼。離線操作上,各個平台上主流瀏覽器則可以安裝 Gears 來支持。例如即將推出的 Offline Gmail ,也並不一定要使用 Chrome 才能用。

換句話說,即使沒有 Chrome,其他瀏覽器也能完 Google 的「雲端夢」,因為 Google 靠的是「公開」。用的是公開的網頁標準和技術,開發的 Chrome、V8、Gears 都是開源的,這當中沒有甚麼秘密,也沒有甚麼專利技術,人人皆可參與。

第一次瀏覽器大戰,IE 與 Netscape 各自推出專有技術吸引開發者,瀏覽器的市佔率有決定性的影響,結果出現了很多「只限 IE」的網頁。但 IE 不思進取,苦了開發者,所以近年開發都提倡支持標準技術,瀏覽器也以此方向發展。第二次瀏覽器大戰,不會走回頭路,鬥的不是專利技術,而是對公開標準的支持和瀏覽器本身的實用性、效能等等。而無論瀏覽器怎樣死鬥爛鬥,只要是依公開、標準的路線,Google 也會贏,因為用戶對網絡的黏度增加了。Chrome 的市佔率如何,影響也沒有那麼大了。

對 Google 來說,Chrome 仍是重要的,但可能非為「雲端夢」的主角,而是作幕後黑手,「指引」瀏覽器的發展方向,親身示範下一代瀏覽器該如何,才能配上越來越豐富的網絡應用,刺激開發社群走向其「雲端夢」裏。

玄雲

Wednesday, November 26, 2008

我覺得 Cloud Computing (雲端運算/雲計算) 可說是 Buzzword of the year。

這個名詞在今年不絕於耳,大家紛紛討論,好像很明白,但有時又好像在指不同的東西。看過很多文章在討論這題目時,都不約而同地先討論這個詞語究竟所指的是甚麼。那… 究竟是甚麼?

跟據 維基百科 ,Cloud 是用來比喻互聯網,及其背後的複雜的基建。通常在畫圖時,我們都會將互聯網畫成一舊雲。而 Cloud Computing 則是將一些科技應用「服務化」,用戶則通過互聯網來使用服務,用戶資料都是儲在伺服器一端。

這聽上去,好像不過就是網絡應用 (Web application) 嘛?不是一早已有嗎?幹嗎要用另一個詞語再說一遍?我可不可以說此 Blog 也是 Cloud Computing 的例子?好像又不行。那這當中好像有某些特質,但一時間又說不清。

我們先請大師 Time O’Reilly 解畫 ,看看他將 Cloud Computing 的作以下分類:

  1. Utility Computing,即將電腦的運算、儲存能力,當作水、電一般賣出去,例子有 Amazon 的 EC2、S3 等等
  2. Platform as a Service,平台即服務, 提供平台讓開發者在上面開發應用,例子有 Google App Engine、Force.com 等等
  3. Cloud-based end-user applications,即是我們常用的 Web Application 如 Gmail、Facebook、Twitter、Flickr 等等

在第一、二項的應用下,可以看出 Cloud Computing 多數都要有強大的伺服器群一起工作,來應付大量的用戶需求,提供穩定的服務。而第三項能否泛指所有網絡應用?大師認為我們在提 Cloud Computing 時,傾向於形容用來代替桌面軟件的網絡應用,例如會說 SpreadSheet、GMail 是 Cloud Computing,而非 Google Search、Google Map。我覺得這正正是 Cloud Computing 背後意思的「正解」。

想起自由軟體之父 Richard Stallman 的意見,他對於 Cloud Computing 一點也不感冒 ,他認為用戶對於自己的資料失去控制權,全都放上私有的伺服器上,就如使用 非自由軟件 一樣,他認為大家應該在自己的電腦使用專重自由的軟件。在這裏,可見他也是用桌面軟件來比較 Cloud Computing 的應用。

用來取代桌面的網絡應用,不是說了很多年嗎?的確如此,不過到了近年這個技術才開始起步 (條件有很多,如桌面的運行速度、網絡頻寬、伺服器群集技術、瀏覽器的發展等等),有實實在在的應用出現。所以,我們需要用一個新的字眼 (其實是舊詞新用) 去包裝,令人們覺得這是滿有潛力的新東西?

P.S. 與 Richard Stallman 的意見相對,李開復對作了一個的比喻,說人們以前都將錢收枕頭下,然後存放在錢莊,現在則存放在銀行。未來人們也會將資訊存放在網絡空間中。這當中銀行體制是否健康健全,有否適當的監管是相當關鍵… 不過最近銀行都…