1. 程式人生 > >從人機互動角度看中文程式設計:'開啟微信'

從人機互動角度看中文程式設計:'開啟微信'

前文通用型的中文程式語言探討之一: 高考是基於現有英文程式語言的一個技術思路. 在這個回答以及下面的討論中, 又提到了程式設計其實是人機互動的一種形式. 不禁試著跳出程式設計師視角看這個問題.

幾年前才發現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, 在可整合的系統功能上會受限一些, 但優勢是可以整合瀏覽器本身的功能. 當然另一個優勢是跨系統平臺.