2010年2月8日 星期一
從 Sikuli Script 來看數位生活的演進
上個月底,網路上開始流傳一個新型的程式語言 Sikuli Script,以下是作者的網誌及程式官網 :
網誌 : http://blog.vgod.tw/2010/01/25/change-the-world/
官網 : http://groups.csail.mit.edu/uid/sikuli/index.shtml
可以看出這個作者是個在 MIT 念書的台灣人,這是一件非常振奮人心的事情,並不是因為他是台灣人這麼簡單,而是他做的這件事本身就很不得了,如他所說 "Change The World",豈是一句 "台灣之光" 了得 ? 全世界都需要這種人 [1]。
我個人不是資訊背景出身的,這種講古的文章也寫不了太多,只是藉著一些已知的資訊,發表一些自己的想法。數位生活是從什麼時候開始的 ? 其實嚴格說起來並沒有很久,至今十年前,還是很多人體會不到數位化的生活,一來是電腦不普及,二來是大多數的電子產品各自為政,沒有整合在一起。但是那已經很不容易了,因為已經有了個人電腦可以使用,做一些初步的工作。更早以前呢 ? 一開始的電腦非常龐大、非常昂貴、非常耗電,做的事情可能只是計算,所以稱 "computer" 為計算機一點也不為過,之後慢慢發展到大型伺服器,以電腦巨擘 IBM 最為有名。
可是如果這樣下去,電腦不會進入你我的家中。Apple 的兩位創始人看出了這一點,在車庫自製個人電腦,開啟了個人電腦的時代 [2]。可是電腦還是不好用,如果有人用過 DOS 的話,應該可以體會 -- 打指令的介面不合人性,大家不會把電腦當作生活的一部分。然後苦主 Xerox 的 GUI 被 Apple 抄走,M$ 再抄 Apple,圖形化介面的電腦時代就此來臨 [3],個人電腦也日漸普及。
下一個世代是網路時代,我個人覺得網路才是數位生活的開端,網路使得溝通更為方便,資源也能共享,人們有什麼東西想知道,第一件事可能是上網去找,而不是去圖書館找,這就是生活型態的改變。再配合上此時如數位相機的生活產品數位化,以及方便的 USB 傳輸介面逐漸普及,人們已經漸漸將電腦、網路及生活結合在一起,連有些老人家也在學習使用簡單的電腦技能,比如說收電子郵件或整理照片,至於智慧型手機也是類似的演化模式。
下一步呢 ? 主角還沒登場對不對 ? (哈) 從上面的發展可以看出演進的模式都差不多 :
簡單化
做不到的事 --> 只有少數人可以辦到 -------->>>> 大眾都能享受
有沒有發現 "簡單化" 的箭頭特別長 ? 不只是因為要塞比較多字的關係喔 ! (哈) 而是這一段路最難,最需要突破性的創造力。那現在我們缺乏什麼 ? 就是大家都希望電腦能幫自己做更多事,可是每個人的需求跟觀點都不一樣,等著別人做實在很不實際,為什麼自己的命運要被掌控在他人手中 ? 所以這就是科技進步的下一步 -- 如何讓大家都是創造者 ? 也就是程式開發的簡單化。想想資訊背景的人花了多少年在學習程式,程式的語法跟結構的確相當複雜,大學四年簡直只能學皮毛,更別說其他沒受過正統訓練的人了。可是這很重要嗎 ? 如果我只是想利用電腦完成我簡單的工作,而不是要開發什麼龐大的軟體 (像 Office 之類的),我沒必要學那麼多吧 ?
這就是重點所在,如何讓一般人也能輕易地寫出簡單的程式 ? 這其實很早以前就有人在做,比如說 Mac OS 裡的 Applescript,前身為 HyperTalk,以相對類似英文的語法使寫程式的門檻降低,即使這種語言的功能性稍嫌不足,但是做些簡單的自動化工作已經非常夠了 [4]。
什麼 ? 還不夠簡單 ? 沒問題 ! Apple 在 Mac OSX 10.4 發表了 Automator,藉著圖形化介面的輔助,讓使用者可以輕易製作工作流程,以操縱一些支援 Applescript 指令的程式,進一步簡化 Applescript 的撰寫過程 [5],Apple 對於人機介面的努力實在不得不佩服,連讓使用者簡化工作的程式開發工具都弄得有聲有色。
只有這樣嗎 ? 其實還有一家公司做得更好,只是他們公司發展取向的關係,使得他們不是廣為人知,就是 National Instrument (NI)。NI 是一家生產工業儀器的公司,在理工領域非常有名,除了生產儀器,NI 為了讓使用者可以控制這些儀器,開發了一個全新的程式語言 -- G 語言,程式撰寫介面完全是圖跟線,範例圖可以看我以前的文章。而程式開發工具為 Laboratory Virtual Inctrument Engineering Workbench,簡稱 LabVIEW。LabVIEW 在 1986 年推出第一版,到現在已經 8.x 版,功能越來越多,而且各作業系統平台都有。LabVIEW 的程式撰寫相當直覺,學習門檻較低,非常適合給非資訊科系的學生或職員使用,用來控制他們想操縱的儀器。
我前一陣子去參加 NI 辦的免費課程,我跟他們的行銷部門主管提到 "LabVIEW 最大的優點就是它最大的缺點",他說 "是阿",但沒有再深一步回答我或是問我細節,而我也懶得多提.....我想他應該是把這個問題當作耳邊風吧......沒錯,LabVIEW 明明就是這麼偉大的作品,為什麼鮮為人知 ? 原因就在於 LabVIEW 被 NI 定死在 Lab 裡,專心發展理工領域要的控制元件及功能,卻沒想過要推廣給更多處在 Lab 以外的老百姓,廣告裡都是那些圖表跟數學式,一般人看了就煩,也不會想去用,很多人更是有著根深蒂固的刻板印象,認為 LabVIEW 只能用在控制儀器,出了實驗室就沒有用了 (像我以前的老闆,他就以此理由不建議我學),但其實 LabVIEW 在 "功能上" 已經與其他程式語言相近 [6],但是可以用更少的精力去寫出一樣功能的程式 [7],若是 NI 願意做,LabVIEW 絕對有成為明日之星的特質,但發展了這麼多年策略都沒變....我看我這番話是不可能成真。
現在回到我們的主角 -- Sikuli Script,它利用程式的螢幕截圖來取代程式撰寫的一部分,有用又有趣,眼見即所得,讓程式的自動化更加容易,比起來 Automator 有些部分的程式說明還真的看不太懂....而且 Sikuli Script 還有個最特別的地方,就是它是以 JAVA 開發,這也代表它是跨平台的,不像 Applescript 是絕無可能移植到其它平台去的。看了作者的網誌,發現他是個 Mac user,這個程式語言是在 Mac OSX 環境下開發的,Windows 版本是後來才弄的,不過我必須要說,其實在 Mac OSX 底下的重要性不像 Windows 那麼高,因為至少還有代用品,但是在 Windows 裡就沒有了,最相近的頂多是 WinMacro :
可是還是沒有 Sikuli Script 好用,何況 Sikuli Script 才剛起步,以後會變得怎麼樣真令人期待。目前從名字 -- Sikuli "Script" 來看,似乎作者只初步預設它是自動化的腳本語言,但是以後會不會改名呢.....? 這一切都很難說.....嘿嘿嘿......
(謎之音) 都沒有人第一眼看到 Sikuli 會想到 Sugoi 嗎...............? 我好糟糕 orz..orz..orz..
附註
1. 可惜的是台灣媒體根本不知道這件事,國外的 Twitter 和作者的信箱都已經被灌爆了....同一時間有個台灣女孩拿了日本圍棋女流的某頭銜,報章媒體大幅報導...........我心想,是阿,這是台灣之光,不過我現在要討論的是世界之光。
2. 這方面的歷史故事可以看一部非常棒的電影 -- 矽谷海盜 Pirates.of.Silicon.Valley,把 Apple 跟 Microsoft 的過去講得很清楚。另外,不要理會台灣的譯名 "微軟英雄",不知道是不是台灣這個微軟王國的環境讓那個譯者腦袋被穿洞了 ?
3. 雖然很為 Xerox 感到惋惜,但也只能說他們的上級沒有遠見,看不出東西的價值。
4. Applescript 的前身 HyperTalk 在 1980 年就誕生了,那時還是古典 Mac OS 的年代,以非常類似英文語法的方式跟系統做緊密的結合。但也因為太像英文,被很多程式開發者嘲笑,甚至不屑使用這種語言。但我覺得如果作者 Bill Atkinson 當初就有 "簡單化程式的開發" 的遠見,即使這種語言本身有很多缺點,也是非常偉大,為這種思想的先驅者。
5. Automator 的確是 Applescript 的簡化版,但是裡面還是可以插入自製的 Applescript 語法喔 ! 這樣一來可以做的事情就更多,只是透過 Automator 寫出的工作流程執行速度會比較慢。
6. 為何我只說 "功能上" 呢 ? 因為 NI 只想在自動控制的領域經營,人機介面的美化做得真的很糟,每個 LabVIEW 程式寫出來都是差不多那副德性,頂多是控制鈕排得整不整齊而已。反正理工領域的教授或老闆大多都只希望程式 "能用就好",當然對於這個就不太重視了。
7. 事實上 LabVIEW 在功能上也還有很多改進空間,比如說 Event structure 這麼重要的東西居然第八版才出來.....#$%^&.....但只要不遇到它的弱項,LabVIEW 程式可以以更簡單的撰寫方式達到相同的效果。
訂閱:
張貼留言 (Atom)
剛剛看完作者的文章
回覆刪除http://blog.vgod.tw/2010/01/30/sikuli/
發現很多觀念跟我文中提到的相同,只是我是嘴砲,他是真的改變了世界,希望 Open source 能讓 Sikuli 更好 !