2013年1月30日 星期三
Sikuli - 改變世界的圖像程式語言?
什麼是 Sikuli ? 是一個極有創意的程式編輯軟體,挑戰了程式碼的新可能。
可以參考Sikuli 的 Demo 影片:
http://www.youtube.com/watch?v=FxDOlhysFcM
官網:
http://www.sikuli.org/
以及Sikuli 作者 Vgod的部落格,可以讓人更深入了解核心:
http://blog.vgod.tw/2010/01/30/sikuli/
過往寫程式時,總是先得先學習一套語法,在既有的規定和邏輯下,
一字不差的打出程式碼,否則電腦便讀不懂指令。
寫出來的程式,只要稍加複雜一點,
即便是懂得程式語言的人,即便是清楚的在// 後寫上註解,甚至即便是作者,
都可能要花點時間去思考。
而Sikuli ,卻跳脫了框架,不用再輸入冷冰冰的文字,而是利用截圖的方式,
即便是完全不懂程式語言的人,也能輕鬆上手,寫出來的程式,更是老嫗能解。
上圖就是用Sikuli 的介面,最上方是一般工具列,
左欄是函式,右上是程式碼的編輯區,右下是執行程式的結果。
寫好的程式碼只要按下執行的箭頭,就會開始測試。
測試後如果有bug ,會在出問題的那一行前出現驚嘆號。
只要安裝好軟體,只要會點滑鼠,就算沒有教學可看,也能很直觀的使用。
安裝好軟體之後,我寫了一個自動登入信箱的程式,不需要花幾分鐘的時間。
單就Sikuli 的設計理念而言,這是一個很傑出的創作。
但......
Sikuli 有以下的矛盾點:
1.是一個帶來方便的工具,但工具外的包裝卻不便利:
http://www.sikuli.org/download.html
看Sikuli 的下載頁面就可以理解筆者所言為何,
Sikuli要能使用,電腦必須先安裝有 Java 6。
而且一定要是 Java 6 , 最新版的 Java 7 are not supported !?
但其實,坊間已經找得到破解版,讓Sikuli 能在 Java 7下運作。
只要改掉原本程式碼幾個小地方而已。
另一個不便之處: 要使用者自己 fix bug。
雖然步驟不難,但不免讓人會嘀咕,
為什麼不直接做一個沒有bug 的installer 讓使用者下載呢?
是作者希望能營造一些step by step 的互動嗎 ?
還是作者因為使用 Mac 的關係,無心對windows 版做改善呢?
謎。
最後一擊,是在軟體說明的地方,所連到的網址,不管是要找範例,手冊,Q&A。
都會出現嚇人的 404 以及大量的 Sorry 。似乎是最一開始的網站被攻擊的緣故。
排掉這些稍稍有點惱人的問題後,Sikuli 的使用介面還是十分親切的。
2.用創意扼殺了創意
用圖像寫程式是一個很有創意的想法,
但是,圖像本身就缺乏想像的可能性。
簡單的說,你做了一件事,然後截圖加一些指令,叫 Sikuli 依樣畫葫蘆跟著做。
Sikuli 僅能讓已存在的東西動作再現,很難去創造出新的可能性。
很像是,請了一個助理,認真聽話但不聰明,一步一動。
當然,這也可能只是因為我才疏學淺,使用受限。
或者在其他高手的使用及擴充下,能有更突破的應用。
誠如Sikuli 作者 Vgod 說的,這一切只是個開始,還有無限可能。
3. 表相與真相
這是個非常殘酷的現實:凡事不能只相信外表。
憑藉著圖像做為辨識的依據是很危險的。
光是從這台電腦到那台電腦,icon 的樣子和位置就不一定一樣。
就算是自己的電腦,姑且不論軟體的更新,光式桌面改了個配置....
就很可能影響了程式的執行。
如果寫出來的程式,在別人的電腦使用時可能會有困難,
那麼,程式碼的易讀,又有什麼用處呢?
越是能跨平台的程式語言,往往越是抽象,
反之,越具體的程式語言,是不是就越受限呢?
這可能也是Sikuli 需要突破的關口。
4.Sikuli 為誰而生?
Sikuli 作者 Vgod 是個很有想法的人,可以去看他非常有名的系列文章:
追求神乎其技的程式設計之道: http://blog.vgod.tw/category/divine-code/
對 Sikuli 有興趣的人,有高手中的高手,也有連Hello world 都寫不出來的老百姓。
對高手來說,比起使用Sikuli ,更有興趣在改寫 Sikuli 本身的程式碼。
對於老百姓來說,省省手指頭點滑鼠的次數,業已心滿意足。
那麼 Sikuli 會怎麼改良呢? 往什麼方向去呢?
我們拭目以待。
後話:
Sikuli 確實可以幫忙節省許多時間,
特別是一些工作上 routine 的步驟,類似定期查詢跑報表之類的。
但想想自己平時工作其實花了這麼多時間在不動腦的事情上......
不知為何感到有點哀傷。
2013/01/30
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言