前文 "通用型的中文編程語言探討之一: 高考" 是基於現有英文編程語言的一個技術思路. 在 "這個回答" 以及下麵的討論中, 又提到了編程其實是人機交互的一種形式. 不禁試著跳出程式員視角看這個問題. 幾年前才發現Mozilla的火狐瀏覽器早在2008年開始了一個叫Ubiquity的項目, 而且根據 ...
前文通用型的中文編程語言探討之一: 高考是基於現有英文編程語言的一個技術思路. 在這個回答以及下麵的討論中, 又提到了編程其實是人機交互的一種形式. 不禁試著跳出程式員視角看這個問題.
幾年前才發現Mozilla的火狐瀏覽器早在2008年開始了一個叫Ubiquity的項目, 而且根據這裡介紹, 它直到最近的火狐瀏覽器大改才失效. 官網介紹摘選:
Its purpose was to explore whether a radically different type of interface to the Web — a task-centric, natural-language-based command line — could help us get common Web tasks done faster.
用戶手冊中, 有這樣的例子:
twitter updating my status with Ubiquity.
translate buenas tardes from spanish to french
它的界面會實時顯示"運行"結果, 比如twitter的狀態預覽, 翻譯的結果. 它也可以和瀏覽器操作結合起來, 比如選中網頁的文本/圖片後, 運行下麵:
email this to chris
就可以把選中的內容用email發給某個聯繫人(看到這裡, 想起之前自己的一個原型設計也許也是受到它的影響而不自知)
很自然地也有將它國際化的努力. 這個插件一直沒有被火狐轉正的原因暫沒有深究, 但也許和生不逢時有關. 2008年的自然語言交互還剛起步, 如谷歌直到幾年之後才有簡單自然語言語法的搜索命令. 這裡是更全的自然語言界面的軟體/工具/平臺列表.
搜索引擎的自然語言界面似乎已經能夠解決大多數人的大多數日常的信息搜索問題. 它也提升了人機交互的期望值. 而編程解決的問題和信息搜索差別很大. Ubiquity更接近專用腳本語言系統的範疇, 似乎也更可以借鑒. 更現實的例子是手機語音功能(最後的系統功能和生活服務部分), 比如"打開微信"(可惜似乎國產語音助手在這方面好像還是短板). 從這個角度來說, 中文編程已經被大量用於日常生活(打開微信
和print("Hello World!")
都是程式吧), 只是不被提及而已.
個人認為, 通過第三方應用集成手機的系統和應用功能的方式, 中文編程的潛力很大, 別說基本的日常命令還有很大提升空間, 進一步的簡單條件/迴圈語句也可以有很多功能增強(之前的腦洞), 而似乎現在的語音助手都不具備這個功能. 類似的服務如IFTTT, 雖然只支持如果...就...不然
的邏輯, 通過集成各種網路服務也有了很多用戶.
在瀏覽器平臺上, 個人認為Ubiquity的插件方式還可以繼續, 當然需要和移動設備結合. 只是由於和手機隔了一層瀏覽器API, 在可集成的系統功能上會受限一些, 但優勢是可以集成瀏覽器本身的功能. 當然另一個優勢是跨系統平臺.