打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
連三歲小朋友都會寫程式


 
 

 

 

本文並不是要探討如何教曉三歲小朋友寫程式,而是想探討未來的編程到底會是怎麼樣的境況。提起編程,相信大家馬上想起一堆接一堆有嚴謹語法的代碼,大家有否想過可以圖像化一個程式呢?以下是我最近的一些研究,沒有特別鋪排,可能比較淩亂,我隱隱若若的覺得把它們整合起來就是下世代的 IDE,但實際上我還未細想如何把它們優雅地串聯起來,這裏就拋磚引玉吧!

Flow-based programming (FBP)

FBP 是一種編程模式,就像是一家工廠內的流水線一樣,流水線上有很多工作單位(可能是加熱機器,可能是組裝人手),原料在流水線上就會被處理直至產品完成為止。類比的情況是,瀏覽器發出 HTTP Request,原料(從資料庫拿出來的資料)被運送到工作單位,如 ”filter”,就會被剪裁掉,最後把處理好的資料經 HTTP 送回瀏覽器中。

利用這個模式,我們可以比較容易做到 parallel computing,因為每一項冗長的工作都會被切割成多個細小的工作單位,每個工作單位又可以獨立處理工作,因此利用 FBP 就可以很容易把多個原料運送到流水線上在不同工作單位中被處理,從而做到 parallel computing!

除此之外,FBP 亦有利於製作更簡單的 IDE(甚至是不需要寫代碼的 IDE),因為程式可以很容易地被編製成一個 Flow chart,Yahoo pipes就是其中一例。

其思想就是透過簡單的 drag-n-drop,簡單的 config,就可以把一堆數據拼湊成有用的資訊,這和 Spreadsheet 的理念有點相似。然,Pipes 似乎用來做數據處理(主要是 backend)還可以,要用來做界面程式(就是 frontend 嚕)就比較吃力。

另一例子是 Lego mindstorm,同樣地,它提供了一堆預製組件(工作單位)讓開發者透過簡單的 drag-n-drop 就可以開發程式,和 Lego 積木配合起來就可以做出機械人。

Bret Victor

又要說這個大神了(西杰偶像),最近他又放了兩段片,一段是 Stop Drawing Dead Fish,一段是 Drawing Dynamic Visualisations,兩段都對我有所啟發,這裏就只談後者,前者就留給大家自己欣賞(相信我,對你一定有所啟發)。

相關文章在此:http://worrydream.com/DrawingDynamicVisualizationsTalkAddendum/

片中的 Demo 是一個用來畫圖的 Editor,最令我有印象的是利用它,用家不用寫一行代碼就可以寫出一個“程式”,或者應該說成是一個 Macro,透過一堆 “snap point”,用家就可以輸入和輸出 variable,並把它們 bind 到其他地方去,這又跟 Spreadsheet 有點相似。

西杰隱隱若若的感覺到這跟 FBP 有點關連,但實際上如果把它們串連在一起呢?我還沒有答案。

另一亮點是,大家看到片中 Bret Victor 在程式中建立的 variable 都不是用傳統程式語言那種變數名稱(如 camelCaseVariable),而是用近乎人類語言(更貼切來說是英文)來編寫的,另外,程式的左手面都是用人類語言來描述程式正在做的行動,例如 Draw a circle 之類。西杰想起以前學寫程式時,老師們經常說,愈接近人類語言的程式語言是愈高層次的,我想,Bret Victor 這個程式 Demo 大概就是下世代 IDE 的雛型了。

(順帶一提,最近有個 IDE 是 inspired by Bret Victor 的,叫做 Light Table,有興趣可以看看,應該是不久後的新一代 IDE)

noBackend

最近在網上看到這個主張,就是不要 backend,我不太明白它在代碼方面的主張,但看它提供的 Invoice 例子,其實是一個 What You See Is What You Get 的編輯器,所有你想改動的內容都可以 inline 改動並直接看到改動後的樣子,不用在 backend 改完再在 frontend refresh。

西杰一向十分推崇這種設計,因為這種設計是最不需要用家費神,不需要用家花長時間學習,最直觀的設計。其實在網頁中,我們都可以使用這種設計的。

近期即將推出的 Barley 就是其中一個提供不用寫代碼就能寫網頁的服務。

另外,wix 也是這個範疇的一員,比較老字號的!

這兩個例子都是提供一些網頁 Template 讓人拿來改一下就使用,然,西杰認為或者可以把它們更 generalise 一下,變成一個開發的 framework,並整合至 IDE 中,那就可以很容易的製造更複雜的程式(例如資料庫相關的程式)。

總結

上文提及了幾個概念,Flow-based programing,近乎人類語言的程式語言以及所見即所得開發 framework,西杰認為下世代的 IDE 應該是朝著這幾個方向走,而且我相信屆時開發程式將會變後簡單,可能真的連三歲小朋友都會使用,希望我會看到這一天

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Bret Victor – Inventing on Principle | 酷壳
Notion的思想来源和投资人
苹果的智能戒指将至,但它或许并非是独立的个体
流瑜伽体位图大全 送给所有瑜伽人!!必珍藏
流瑜伽体位图大全 送给所有瑜伽人
什么是Flow Charts
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服