人人能編程是可能的嗎?

今年的Coscup活動中,我分享了一個開放的講題「人人能編程是可能的嗎?」。

在準備講題的過程中參考了很多資料、思考了很多的可能性,最後選擇以現在的方式和大家分享。

之所以會提出這個講題,其實是自己對我過往在各處分享各種不同講題、寫技術書籍、辦活動的總結。我發現不管我分享的主題為何,似乎這些活動彼此之間有一條驅動我這麼做的暗線存在。就我目前看到驅使我做這些事情的動力,可能是「讓人人能編程」這個願景。

「人人能編程是可能的嗎?」是個開放結局的問題,每個人都有自己的想法,覺得不可能實現或是有自己相信的可能實現。從講題被接受後,我也一直在尋找要怎麼將各種可能幫助我們達成「人人能編程」的各種可能性組織起來。 最後我歸納出可以用「人」、「程式」、「指令」、「機器」四個「從寫程式到在機器上執行」的過程中會遇到的必要元素間的距離來做判斷。用這四個元素間關係所組成的六個維度作為判斷框架,能協助我們判斷每個可能的實現在各個層面對「讓人人能編程」這件事。

從PC到筆電到智慧手機/平板這條線,改進的是「人與機器的距離」這個維度。

周蟒改進的是「人與程式的距離」這個維度。

Blockly改進的是「人與程式的距離」(積木化)、「程式與指令的距離」(輸出Python, Javascript)、「指令與機器的距離」(網頁上直接執行)、「人與指令的距離」(開源且Blockly本身積木與輸出都很容易修改)、「人與機器的距離」(開網頁就能用)這些維度。

因為演講時間有限,沒有辦法把每個想表達的想法都傳達出來,所以特別寫下此文,聊以記之。