連三歲小朋友都會寫程式

2021-06-14 13:35:58 字數 2130 閱讀 3835

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

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 積木配合起來就可以做出機械人。

又要說這個大神了(西傑偶像),最近他又放了兩段片,一段是 stop drawing dead fish,一段是 drawing dynamic visualisations,兩段都對我有所啟發,這裡就只談後者,前者就留給大家自己欣賞(相信我,對你一定有所啟發)。

相關文章在此:

片中的 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)

最近在網上看到這個主張,就是不要 backend,我不太明白它在程式碼方面的主張,但看它提供的 invoice 例子,其實是乙個 what you see is what you get 的編輯器,所有你想改動的內容都可以 inline 改動並直接看到改動後的樣子,不用在 backend 改完再在 frontend refresh。

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

近期即將推出的 barley 就是其中乙個提供不用寫程式碼就能寫網頁的服務。

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

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

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

三歲定八十

三歲定八十 是最新成龍大哥影片 寶貝計畫 當中非常經典的一句台詞,也是值得我們細細思考的一句話。此話非寶貝計畫首創,在人的幼稚教育發展中,早已有之。三歲,用漢語用詞來講,非實指,而指乙個年齡階段。其中的 三歲 按現代心理學研究來說,可定為三歲至七歲。在諸多心理學研究資料中顯示,人的性格定型,就在兒童...

專案管理與「三歲看老」

三歲看老 是中國的一句俗語,意思是通過乙個三歲孩子的行為舉止便可以感受到這孩子將來會是乙個什麼樣的人,更深刻的說,乙個人小時候的行為習慣影響著他的一生。有學者對這句話進行了實驗研究,得出了科學的結論,證明了這句話的合理性。摘抄如下 1980 年,卡斯比教授同倫敦國王學院的精神病學家對 1000名3 ...

專案管理與「三歲看老」

三歲看老 是中國的一句俗語,意思是通過乙個三歲孩子的行為舉止便可以感受到這孩子將來會是乙個什麼樣的人,更深刻的說,乙個人小時候的行為習慣影響著他的一生。有學者對這句話進行了實驗研究,得出了科學的結論,證明了這句話的合理性。摘抄如下 1980 年,卡斯比教授同倫敦國王學院的精神病學家對1000 名3歲...