Slingshot

by winson, 11 months ago.

如果說Rails是這幾年軟體界最偉大的發明,那麼Slingshot便是Rails界最偉大的發明。

這隻彈弓(Slingshot)能夠做什麼呢?

他可以把原本應該透過瀏覽器執行的網路服務,變成安裝在個人電腦上執行的一支程式。透過小幅度的改寫,更可以讓這支程式與伺服端的服務做資料同步,簡單的說就是離線作業。

使用彈弓的好處就是突破了瀏覽器的限制,眾所周知網路服務與各種瀏覽器之間的相容性,一直是開發人員心中的痛。今天讓網路服務變成可以在電腦上執行的程式之後,相容性的問題立刻消失!!

那麼,什麼是離線作業呢?

舉個例子,如果把各位鄉親現在正在看的這個部落格包裝成電腦上的程式之後,不管可不可以上網,我隨時可以在自己的電腦上寫一些最近使用Rails的心得,等到電腦一接上網路之後,他立刻幫我把文章送上遠端主機!!

這種將網路服務離線作業化的戰爭目前正打得火熱,包括Sun的JavaFX、微軟SilverLightAdobe AIR以及Google Gear等等,他們的主要訴求也許有些差異,但都是很類似的東西。

任何系統要達到這樣的包裝其實不難,難度在於程式的改寫程度以及背後系統架構的複雜度。

Slingshot的做法是直接將伺服端的程式目錄整個複製到他所提供的Virtual Machine裡頭,做些參數修改或小幅度改寫,連compile都不需要,便可以直接在Intel機器(Mac or PC)上執行,也就是說Server與Client有95%以上是相同的程式。

至於遠端主機則是放一個負責資料同步的外掛就好。

其他家的做法幾乎等於用全新的語言、全新的開發工具重寫一支Client端專用程式,那我不如去用Ruby on Rails改寫比較快,至於資料有沒有辦法同步還是一個問號。

透過Rails/Slingshot可以簡單、輕鬆、愉快地達成這個目的。