2011年8月1日 星期一

學習

學習


曾慶潭 Ching-Tang Tseng
ilikeforth@gmail.com
Hamilton, New Zealand
2 August 2011


貼出這篇網文後,我將靜音(Mute)兩個月,準備返台之事。

每天晚上看完本地新聞,我就轉往德國電視台DW-TV看他們介紹藝術與科技的節目。偶爾,該台會播出趣味廣告,其中,我最喜歡的一個,就是一個兒童為了愛玩一整天(Have fun all day long),跑到市中心的鐘樓裡面,自己控制顯示時間,然後跑到公園裡面,又玩這個、又玩那個的、玩了一整天、玩到不想玩了,再去鐘樓調整時間到下午三點,快放學了,最後十分鐘,回到公園吃它一根冰棒,三點十分一到,得意的露個笑臉,廣告就結束了,真是快樂的一整天。

我告訴我太太為什麼喜歡這個廣告?因為,小時候,我幹過幾乎同樣的事情,規模比廣告的內容還大,是帶著全班同學,享受過快樂的一整天。

從小,我是當班長長大的,小學四年級以前,唸嘉義大林三角里的社團國小,那裡充滿了我的快樂童年。為什麼老當班長?因為我四年級就會自己計算開平方了,我一生都記得『補0乘以2,然後就像算除法那樣,一路用猜的』,不相信我的人,我就反過來算給他看,不管幾位數,驗證結果。五年級轉到桃園中壢的內壢國小,也曾經在學校樹林下面,教過同班同學這種技術。

我終身記得,有一年,我們的級任老師,是學校裡非常好的江永順老師,很有威嚴,沒人敢在他面前調皮。有一天,吃過中飯後的午休時間,我突然靈機一動,覺得應該帶領全班同學出去享受一下鄉村的快樂,於是建議大家跟隨我去一位住在三角里同學的家裡『摘楊桃』,從社團國小走到三角里鄉村,大概有幾公里,是有點距離,因此,腳受傷、不良於行、與一位腳摔斷了的同學無法參加,他們只好悻悻然留守教室睡午覺了。

那時,我們小到根本不會看錶,沒人有錶,也沒有時間觀念,我只知道要讓全班同學快樂。來到同學家裡,我以一付小大人的模樣,拜見同學的父母,他們聽說是班長帶全班來訪,那還得了,立刻搬出一大鐵桶的『奉茶』先讓我們解渴,然後說門口這棵老楊桃樹,結滿了恰好成熟的楊桃,您們就盡量摘吧。我站在樹幹旁,指揮男生爬上樹去摘楊桃,找到好的,必須先丟下來給不敢上樹的女生,大家吃到飽,想帶的也隨便帶,那棵老楊桃樹到處都是果子,拔都拔不完,大家都吃到撐了,卻都聽我指揮,非常守規矩,還有同學告訴我,從來沒這麼快樂過。同學的爸媽聽說我這個班長很不一樣,大家都叫我小老師,所以也就不疑有它,沒問我為什麼可以離開學校的問題,覺得今天好像是學校主辦很有秩序的課外活動。

快樂完了,我要大家排好隊,清點一下人數,下達命令:
『誰都不能先溜回家,必須跟隨我回學校。』
然後,拜別了同學的爸媽,一路排隊、遠足、回學校了。
進了教室,留守的同學就非常驚恐的趕緊告訴我:
『ㄏㄛˊ~,班長你糟了,老師非常生氣,你會被狠狠的打一頓。』
我從未被老師打過,也沒想這麼多,只覺得學校也好像快要放學了,就反問留守同學:
『我們不在時,老師有沒有教新東西?』

心想,同學都稱我小老師,到時大不了可以請罪,告訴老師,我會幫他把同學教回來。留守同學告訴我:

『你不知道老師有多生氣,每節課都來問我們,為什麼還沒回來?回來非要狠狠打你一頓不可,然後就走了,什麼課都沒上』

隔沒多久,江老師出現了,真是氣得不得了,我站在教室正中央的走道上挨罵,江老師還氣得拿棍子打我屁股,打了很久,從教室前面打到後面,我也被打哭了,但是心甘情願,江老師退回講臺,我就又跟著走到前面,繼續接受體罰,來回幾次,又被打到教室後面,但是,就算我在全班女同學面前又痛又哭的哇哇叫,自己卻不覺得丟臉,只記得江老師說:

『你好大胆,竟敢帶著全班同學逃學!』

我也只能回答:

『下次不敢了』

那個年頭,老師的體罰是合法的,我到現在也還欣然接受。

那一節課是打到下課,江老師罵完、打玩,放學時間也到了。

我回到班長的第一個座位,眼淚未乾,仍然叫口令:

『起立』、『敬禮』、『下課』

然後打掃清潔,全班嚇得沒有人敢發出任何聲音,我淚流滿面的指揮搬桌椅與掃地,帶隊參加完運動場上每天放學前都必須舉行的降旗典禮後,才擦乾眼淚放學回家,盡量不讓家人知道此事。

自從那次事件以後,全班無論男女同學,好像比以前更服從我的領導了。

江老師也知道這種情況,經常授予我超級的班長權力,甚至於代理他夜間值班,留在值班室內自己作功課,他先回家料理家事,再回學校時,我才回家。早上則先到校,開教室門,在黑板上寫早自習,要同學習字與練習造句,升旗典禮前,我收好作業簿,轉交江老師,我們班上沒有敢違規不交作業的同學。

考試時,我會幫忙老師監督同學,不准作弊。那時,教室裡每張長課桌配兩張椅子,每人至少會有一個同學是鄰座。我記得有一次月考,考九九乘法表,我旁邊的那位同學,成熟度比較晚,考試時間到了,臨收考卷前還沒寫玩,我堅持不肯告訴他任何答案,他也非常無奈。

最後,臨交卷前,他在3 x 7 =____ 這一題上,非常緊張而抱怨的說:
『管它三七二十一,就寫25』
我回家講給家人聽,他們反問我怎麼會有這種人,我說:
『他實在是太緊張了』

後來,我見過許多人寫笑話時,都拿這件事情當題材,我可是真正見到這樣的事情,是我們天真無邪快樂的童年往事。
我確信江永順老師現在依然健在,只是我已不知如何才能聯繫得上了?
我小學時的那一班同學,現在也都 60 歲了,不知還有幾人記得這些童年往事?

我們的一生,人人都必須要學許多不太有用的東西,很多人也講不出該不該學的道理。我卻覺得不懂事以前(嚴格定義則是國中以前),學校教的都該學。高中以後才有分科教育,那時才能選擇想學的科目。

這幾天朋友來訪,再次談到一些許多東西該不該學的問題,我覺得這個問題好像是長期以來一直困擾家長的嚴重問題,因為,大家都講不出其中非學不可的道理。為什麼我們必須學習許多不太有用的東西?而且我這個60歲的老人,還可以告訴大家,我的一生大部份學過的東西,從來就沒有在生活中用過,都 60 歲了,為什麼還是要學那麼多不太有用的東西?包括 Forth 程式語言。

昨天,大女兒送來了四大本與基因有關的研究生專用書籍,剛才秤了一下,共 8 公斤,讀者是不是覺得我有點不太正常?老愛曲解『活到老,學到老』的意義?不是的,我想設計能夠處理基因圖譜的程式語言,當然需要看這些書。這件事與解釋『必須學許多不太有用東西』的問題不相關。

我可以舉一個實例,解釋與此相關的問題。有一次,為了鼓勵朋友的小孩,努力學會計算出最大公約數與最小公倍數,我表示了自己的意見,提供大家參考。

公因數、公倍數生活上確實是很少使用,其他所有的科學知識或技術,情況也都差不多,您知道嗎?我學過很多高深數學,從事了一生的研究工作,好像一輩子也沒直接碰過幾次需要使用高深數學的狀況。為國家工作時,最高級的一次,大概就是用到微積分中的曲線積分,精確的算出螺旋線的長度,如此而已。

可是,學校中列入科技教材的內容,幾乎找不出沒有用的東西,否則教材豈不早就不存在了。編書的人應該都比用書的人懂得較多,不是嗎?而科技的學習幾乎也沒有一次就能學通或學完的項目,所以只好將科技上需要的東西拆開來教,安排成循序漸進的方式教育新人,這種程序本身就是一種科學,學生隨年齡的不同而有成熟度上的差異,所以學習內容也就有深淺的不同。

基本上,生活上很少用到的知識,大部份都不是為生活而準備的,它們的用處,主要是用來學通後來更高深的知識。

因此,除非年底就不再上學而要就業了,否則,該學的還是要學,是為了要學更多而學,然後,最後學成的專業,例如:大學或專科畢業時的科系分類,大概就可以決定您的這一生,應該從事於甚麼樣的工作比較適合?但不代表能賺多少錢,學天文可能還會找不到工作。

假設您永遠搞不懂公因數、公倍數,以後碰到兩個分數相加,就完全不知如何是好了。不幸,我們的一生絕不能只管整數不管分數,所以非學不可,我在大學裡,解大三的複雜微積分方程式問題時,還得經常搞分子、分母的通分,就得不停的使用公因數、公倍數。題目解不出來,科技問題就學不通,所有學科當掉二分之一就得退學。能有今天,與當初不放棄公因數、公倍數很有關係。

回頭看看其他科目,應該也都是有用的,品德尤其重要,它要排在第一,是為了自己。愛心的養成也不該少,是為了別人。至於知識、技術,能學多少就盡量學多少,但不要完全不學,否則可能會遺憾活一生,因為,後來會老是遺憾這個也不會、那個也不懂,結果都要花錢解決問題,能夠不花冤枉錢過日子,是人生一大樂事,大家應該互相勉勵。

有一些學問看似沒有用,卻帶有其它的意義,也就該學。舉例來說:誰都知道三角形面積是『二分之一的底乘以高』了,那麼,為甚麼現代高中教材裡還老愛強調一個所謂的海龍公式(Heron’s formula),要大家學習如何證明它呢?

這個公式可用來表示三角形的面積,它被表示如下:

A = SQRT ( S * ( S – a ) * ( S – b )* ( S – c ) )

S = ( a + b + c ) / 2

其中,A 表三角形的面積,a、b、c分別表三個邊長,S定義如上式。

Heron 是大約生活在西元 10 年到 70 年間的希臘數學家,他發現了這個公式,並實際應用。

我並不想像網路上可以搜尋獲得的資料那樣,專門解釋或證明這個公式,只想告訴大家,兩千年前,這個公式確實是很有用,而且也必須只能用它來算三角形面積。我也利用這個公式當範例,設計一個對談式的簡單程式,留在新寫的書中當教材,因為,英國劍橋大學的程式範例教材中也引用它。我設計的程式,所展示的性能,當然必須與劍橋大學的有所不同,才值得當作範例程式。

我們可以仔細的想一想,兩千年前,人們如何測量土地面積?量長度大概是不會有問題的測量技術,但是,量角度就未必了,那怕是一個最單純的90度直角,當時的人類都可能量不準的,就算現代一般人,也都未必量得準。如此一來,您若硬要說三角形面積只能用『二分之一的底乘以高』來計算,就會有很大的紛爭而出問題。

底的長度是比較容易量得,高呢?您就站在底線上往頂點看,如果沒有量角器,好像從底線上的很多位置立正站好往上看,看起來好像都是直角吧?就算有量角器,因為不太準,也還是這樣。那麼,測不準的高,就會影響精確土地面積的計算,進而影響稅收或交易,許多人年年都要打上一架,才能決定公不公平。

於是, Heron 公式就有用了,因為,我小學四年級就會開平方了, Heron 當然比我聰明太多了,他那時是希臘的工程師與教授,一定很會算開平方。所以,結論是:不要輕視這麼一個三角形面積的簡單公式,土地面積都應該用它來算才會準,其他任何不規則的多邊形土地面積,都能由多個三角形組合而成,只靠這個公式,精確的測量與計算出來,絕對比『二分之一的底乘以高』方法還準。

我常自覺學過的東西有點與眾不同,考大學時英文只考了 38 分,英文怎麼可能好?這麼低分,就表示有一點不同了。可是,嫁女兒時,只有我一個人敢不用草稿,全程用英文講一些話。崔保忠學長一家人都參加了喜宴,他真正見到所有天生講英文的人都要靠講稿,大專聯考只考 38 分的我,不必。宴後,全體親友告訴我,現在才知道我的本領。

我學的英文如何與眾不同?如果有人想考我孔子所說的話,我也很敢直接亂翻譯,但有把握讓對方聽得懂,就算孔子的繞口令也行。

子曰:

『知之為知之,不知為不知,是知也。』

我就這樣說:

I know I know.

I don’t know I don’t know.

I do know.

我查過網路,沒見過有人這樣翻譯這個孔子的繞口令,可是,這裡面沒有任何一個國中生不會的單字,總共只用到四個,比中文還少,中文要七個,因為我是用搞FORTH的方法來執譯(Interpret)。

這一段時日,碰到了一些 Forth 系統上的問題,我需要有最新型電腦的朋友支援測試,以便解決問題。呂明貴主動相助,我就當他是朋友來往,君子交情紙一張,事後贈給朋友一個精彩程式也都值得,我協助他簡單的實現讓電腦唸 Forth 鼻祖 Charles H. Moore 寫的程式詩,他的裝備比我先進,是小姐的聲音,我的還是男士。實現了這樣的禮物,比甚麼都好,我卻有點納悶,怎麼我學的東西又與別人不同了?離開台灣太久,對大家都陌生了?

上網查一查台灣優秀的大學網站,試圖了解那些優秀大學生是如何了解 Forth 的?點開一篇文章,看他如何探討 Forth 系統的堆疊,見到作者很努力的想透過 DEPTH 指令寫兩個實際程式教導大家,是難能可貴的實作程式,能教人程式的寫法,可是有幾個問題很可以改進。

我把這樣的學習題材用在這裡當例子,以便告訴大家, Forth 的學習,還有那些事情應該注意。我見到這麼一個清除數據堆疊的程式設計

: clear-stack depth 0 ?do drop loop ;

這樣設計的指令,在標準 Fprth 系統內都可以執行無誤,可是應避免這樣子認識堆疊。

刪除』或『抹掉』電腦記憶體的內容,在意義上完全不同,想達到清除堆疊內容的目的,是執行『刪除』,不用『抹掉』,所以沒有那麼麻煩,視障同胞都能辦得到。左手亂壓幾個鍵,右手壓輸入(Enter)鍵就能辦到,這是操作出來的『刪除』而非『抹掉』。『抹掉』則須強制填入0值,或像上列程式那樣,誤用多個 DROP 指令來做多餘的事情。

如果非得在程式中使用到『刪除堆疊內容』這樣的指令不可時,也不宜使用這樣設計的指令來看待堆疊,標準指令 ABORT 就做這樣的事情,不要另外設計。

如果像大師兄陳爽那樣的好手來設計這種指令時,我預計他會善用系統內的指標,以一取一存指標之值來達到目的,高低階方式設計都能輕易實現,程式就又快又安全,也不會是上述設計的程式。

DEPTH 指令反而是在想獲得堆疊內特定數字單元的位置時,才宜使用的參考基準量,絕非用來清除堆疊內容之用,這樣用它,會誤解了堆疊的意義。

當我再審視其他大學生設計出來的 Forth 程式時,我才發現大家是使用 gForth 來進行溝通,難怪不便也不易深入了解真正標準的 Forth 系統,無法建立正確觀念。 gForth 是以 C 建成的 Forth 系統,截至目前為止, C 建不出標準 Forth ,該類 Forth 都難讓接觸者了解 Forth 系統的真正精神,幾乎只能用來設計非常初級的 Forth 程式。

如果硬將 Forth 深淺的等級分類成五級,那麼,以 C 設計而成的 Forth ,最多只能設計出二級程度的 Forth 程式,標準 Forth ,至少要能達到四級程度的能力, Charles H. Moore 現在正在搞的,才是五級的作品。

這些大學生設計出來的創作是西元 2000 年以後的新作品,那時, Win32Forth 系統已經面世十年了,大家若能跟著這一個標準系統研究 Forth ,可能就不會造成今日世人對 Forth 系統產生這麼多的誤解。我深信有不少人花過不少時間,並且下過不少功夫於 gForth ,才能寫出那些有水準的程式。可是,我也能確定,這些同好就被誤在那些漂亮程式的頂點,無法進步到獲得 Forth 該有的後續更強大精神,因為 C 造不出來。

C 程式語言不是不好,它有它的適用領域,不用我來解釋。可是,用它來搞 Forth ,絕對是浪費您寶貴的時間,誤導您對 Forth 的認識,我使用過好幾套 C 式 Forth ,明白其中許多致命性的問題所在。現在,已不再保留與接觸任何 C 式 Forth ,它們全都毫無歸檔留參的價值,新造的,我也完全抗拒。因為,我沒見到能夠將 C 式 Forth 等級提升到四級程度的新技術,我已 60 歲了,沒有寶貴的光陰足供浪費。以後,還以 C 來設計 Forth 的人,請自己留著玩就夠了,我會強烈建議大家少碰那種東西,真懂 Forth 的人,必須封殺這樣的發展,過去這十幾年,它害慘了 Forth ,讓 Forth 大退步而沒有進步。

C 設計出來的東西, Forth 全能叫來使用,只不過是設計 C 的人,也得遵守相當的規矩, Forth 才肯配合。我在新寫的書中,記錄了這樣的技術,換句話說,以後,搞 C 的人,也請別再以 C 之資源這麼強大的理由來誤導 Forth 好手, C 那邊好,您請自用,別來 Forth 領域攪和,此前, C 只在劣化 FORTH。

您若能規規矩矩的寫好 C ,我想叫來用,只須使用兩個指令,執行吸功大法,如此而已,我已設計過無數個這種程式。

我佩服張吉進堅定發展 tinyFORTH 技術的原因也在這裡,那種起步方式,絕不會像 C 那樣傷害 Forth ,就像精簡的 eFORTH 發展觀念,也不傷害 Forth 。回台之後,應該向他請益,涉入發展,就可以接觸 Forth 的另外一種實體應用領域。

昨天,2011 年 7 月 29 日,網上論壇還有自認為是 Forth 高手的年輕人,貼文表示, Charles H. Moore 如果一直留在 Forth 軟體業發展,絕對比他去發展 Forth 硬體要好。

這種人就是欠缺對 Moore 先生的認識, Moore 先生來台在國王飯店的一席演講中,明確的說過:『大家要這樣搞FORTH,我就不搞了』。指的就是安排 C 把 Forth 的核心技術隔離掉,有人美其名叫 VM(Virtual Machine) 吧?有很多人始終聽不懂 Moore 先生講這句話的意義。 Moore 先生很有休養,他絕不批評那樣搞 Fprth 好或不好,也絕不批評 C 不好,但一句稱讚 VM 的話也不講,他只稱讚過 LaFORTH 那種更上一層樓的傳統 Forth 技術。

現在,搞 C 式 Forth 的人搞不下去了,回頭怪罪 Moore 先生不應該不搞 Forth 軟體發展,而去搞 Forth 硬體。您們怎能在闖禍十幾年後推卸責任?許多人覺悟後已不堪回首,卻倒過頭來宣佈那種 C 式 Forth 的死期。打從十幾年前, C 要流行的時候, C 式 Forth 就不該出生的,尤其不該的是,經過十幾年自以為是的發展,還不能把 Forth 核心的真正精神搞通,弄不出像樣的東西,最是不該。

問題出在那裡搞清楚了沒有?因為您用了一輩子的 C ,還在花錢買 C 的 Compile r,您怎麼這麼沒骨氣?不知道自己站起來設計一個 Compiler 。若還想拖人下水,打住吧!請別再做這種沒道德的事情。

Moore 先生卻相當高興,所有他造出來的 FORTH CPU 完全不受 C 的影響。最近繼續公佈了他創造的 ColorFORTH 硬體,只有 48 個純 Forth 指令,已經有兩個系統建好了,一個是 polyFORTH ,另一個是 eFORTH ,完全跟 C 不 C 沒有關係,這才是他的 Forth 精神, C 要排在很後面,很將來,也很可能永遠沒有能用的份。專搞 C 的人,見到這樣的現象,請不要生氣,您完全可以不談 Forth ,繼續發展您的 C ,反正您認為 Forth 沒甚麼嘛, Moore 先生又沒有說您的 C 不好。

我所設計的ABC Forth ,也引起一些人的誤解,以為我在強調 BASIC 比 FORTH 好,嚴重錯了!我在使用說明書中明確的宣告過,我並不是在發明另一種程式語言,更不會是用 BASIC 來蓋掉 Forth ,它永遠都是 Forth ,只不過是遇到數學計算時,才鼓勵改用 BASIC 式的語法,基本精神還是 Forth 。這套技術也不是我的發明,發明人還是 Charles H. Moore ,不是別人。

以後,若有人又來推介某處有新的 BASIC 系統出現,問我意見,那麼,我就建議您回頭使用讓比爾蓋茲發財的 BASIC ,回到 DOS 環境還能使用,沒有其他 BASIC 比 DOS 內的那一個 BASIC 好,以後也不會再有了,因為流行已過,人們都是喜新厭舊的。

只將 Forth 學到二級程度的人,可能都還無法了解 C 式醜陋的 VM 給 Forth 帶來了多大的傷害?我有必要花一點篇幅,以通俗的比擬將其解釋清楚,以免大家一直誤入岐途。

就 Forth 的本質而言, VM 可以算是 Forth 核心精神所在,也是系統性能絕對的根本所在之處,設計與運用得好,就能產生最漂亮的 Forth 系統。

可是,自鳴得意只懂C的人,自以為以 C 最擅長的指標符號,就能寫出 Forth 核心程式在幹甚麼。殊不知,那只是一種現象的描述,不表 Forth 精神僅只如此,而且自鳴得意者,每次還只能像瞎子摸象般從多套中摸得一套,完全不明白基本 Forth 真正的意義所在。然後,將一切交給賣 C 編譯器(Compiler)的大公司處理,他們是最痛恨 Forth 的軟體商人,心中竊喜無比,為了對付這麼沒水準之 C 的使用者,就將那些指標翻來覆去的醜陋程式,編成了窩囊的 C 式 Forth ,打擊 Forth 十幾年。

超過二級水準的 Forth 程式,必須動用到系統核心運轉的操控技術,我經常要使用這些性能,當我發現幾個非常簡單傳統的 Forth 標準指令,就如 ALLOT、>R、R>、COMPILE、[COMPILE]、,、’ 、[‘] ……等等,那種 C 式 Forth 系統,都設計得亂七八糟,不是正確功能時,我能有甚麼感想?最具代表性的 gFORTH 也是這樣,連試了好幾套, C 式 Forth 顯現的結果,全都沒有例外,更見不到四級以上的 Forth 功能。

我們為什麼必須勉強使用這麼低級、差勁的 Forth 系統,又不是沒有 Win32Forth 系統可用!何必為了迎合 C 的流行而隨波起舞?現在後悔已來不及,正式的 Forth 使用風氣,已經被毀得差不多了。

講深入一點的 Forth 系統性能,台灣還老是有人聽不懂,不能覺悟,我改講生活上簡單的對應例子來解釋。

我們移民紐西蘭至今,見到許多台灣來的同胞,將多到幾千萬台幣的金錢,交給本地的所謂基金經理人,操作買賣商業大樓,或進行大筆的森林投資。幾年下來,基金經理人把錢吃光、喝光、花光光了,台灣同胞一點辦法都沒有,全部投訴無門,很多人都迫不得以,退回台灣了,為什麼?

那麼大筆的錢,在紐西蘭足夠以自己的名份,單獨進行任何投資買賣了,您卻交給基金經理人,他只回給您一張紙狀持分財產。他若還有良心,最多像銀行存款那樣,幫您保八(8%),其他任何利益應該都是您自動送上門來的。原來紐西蘭的合理老年投資人,都只有一點點像樣的積蓄來養老,所以基金經理人,還能以平常心經營也是吃人夠夠的事業。台灣同胞來了,一個幾千萬,就足以讓他動心,更何況是那麼多筆,而且可以愈騙愈多。最後,設法適時透過法定手續,宣告合法破產,這一群不明事理的台灣同胞,您想告甚麼?他說:『我們都是合法經營的』。

這跟 Forth 新進,急著將規劃主宰 Forth 核心根本結構的權力,交給賣 C 編譯器的公司,託它處理,有什麼兩樣? C 幫您保住二級水準,然後銘謝惠顧,連一張紙狀財產都沒給您。我不相信基金經理人的胡言亂語,所以我有自己的投資、自己的大筆土地、自己的房地產、自己的 ..... 。我公開正式的強烈否定任何 C 式 Forth ,專心使用傳統標準 Forth ,最後才能走出自己的 ABC Forth 數學計算系統,道理就在這裡。

拿投資理財當例子,也許還是有人聽不懂,那我就講一個更簡單的故事。

幾年前,日本曾經舉辦創意發明比賽,結果選出的第一名,是一個能夠用來打蟑螂的拖鞋,因為那個拖鞋的腳後跟,設計了一根可以伸縮的手柄,不打蟑螂時就縮進鞋底,拖鞋純粹只能當拖鞋穿,想打蟑螂時,可以立刻拉出手柄,就能打蟑螂了。C式FORTH跟這個日本拖鞋有什麼兩樣?完全一樣。

Charles H. Moore 先生剛開始設計 Forth CPU 時,受過日本 Oki 公司耍詐後的氣,於是便封殺了日本 Forth 的發展,從此之後,日本沒有像樣的 Forth 。這個日本可以打蟑螂的拖鞋,最能形容 C 式 Forth ,用拖鞋打蟑螂,幹嘛還要手柄?因為日本人要安排一個日本的第一名,所以才要手柄。

現在,大家可以明白 Forth 系統性能的描述了吧?還不懂,我也沒辦法了。要不,您就只弄懂那個『可以打蟑螂的拖鞋』就夠了。

前幾天密集的與周遊美國的陳爽大師兄聯絡,寄贈他我寫在新書中的一小段繪圖程式精簡設計方法,他不愧為 Forth 高手,五分鐘就能讀完我的文章,我太太說他十一分鐘就能回我程式,可見道行高超。書中記述了以即時、受控、動態、連續…等方式繪製彩色圖形,還包括將圖黏來此處張貼的簡明技術,是他在別的地方難以獲得的基礎工具。

我們用 Forth 溝通,才能 11 分鐘,換成是 C ,依我看, 11 個月也難實現,因為要重造系統,我們現在所用的功能,卻是寫 C 的人為我們造好的背景,我用 Forth 的吸功大法吸來使用,沒做其他任何事情,用法實在諷刺。這種現象,似乎就是在說, C 只宜以此奴僕方式,為 Forth 所用,搞 C 的人見我這麼寫,請不要生氣,事實真是如此。

一般系統能繪之圖,就算彩得再漂亮,都是死圖,這一張畫的卻是潛在性的活圖,活到可以發展『氣體動力學』中氣體分子碰撞之『布朗運動』的模擬研究,只須配用同時存在於系統中之方便的數學計算功能就能實現,再耗幾分鐘的操作,就能將圖示放進文章,我將瞬間停格後的一張顯示圖黏到此處,展示給大家看,圖中彩泡自由運動,碰到視窗壁,是會自動反彈的。



這些功能,已經隨著公開發佈的ABC635.exe系統,傳給大家了,只是您們不知如何快速進入狀況而已,我寫在書中,還有其他許多方面的功能,有寫論文也能使用的現成工具程式。

我的書若只對爽兄有用,就太可惜了,繪圖與語音輸出高度與現行軟硬體相關,現在很好用,很快就會不夠好用。所以,新寫成的書,這些部份的內容,大概會因此而受到很大的影響。我則希望書能使用幾十年,所以都選最精簡、最有用的範例,當作題材。

我離台多年,不知環境演變的狀況,現在大家可能都不逛書店,都不買紙本書了,都只喜歡看那『幾把刀』的東西,我還寫書,有什麼用?有用,裡面有許多現成實際可用的東西。我不喜歡懶到連程式都不想寫的人跟我談 Forth ,所以有用的程式都直接刊載在書內,也刊出執行結果,以後,我也拒絕供應我已建成的現成程式,想用的人應該自己建,就當作編寫程式與學會除錯的練習,具有教育與實用性的精彩程式,都不太長,不這樣逼大家學 Forth , Forth 就會沉淪下去,不想學的就請不要學。

將來我的任何作品,可能都得用這樣的系統才能執行,我專搞數學計算,而且速度比任何人快,用的就是 ABC Forth 數學計算系統,全世界別的國家、別人都沒有,只有我有,我已將系統放進台灣,使用者必須尊重我的使用要求來運用,否則,我就斷掉此後具有更強大功能系統的免費供應。

搞任何其他程式語言者,可以藉這樣的系統,體會所有的性能,但別隨便侮辱 Forth ,那樣做,代表您根本在自取其辱。

現代 Forth 具有現成的吸功大法、能彩繪可操控即時動態圖形、是會講話的程式語言、允許快速的自我改進、並再造自己……等等,您們會的, Forth 全都能吸來用, Forth 會的,您若不會,也請不要自慚形穢,有骨氣一點,我也沒說您不好,還不會,就趕快跟吧,這才叫作『學習』。


附註 : 20241022 重新整理後貼出。

沒有留言: