人助自助者
曾慶潭 Ching-Tang Tseng
ilikeforth@gmail.com
Hamilton, New Zealand
2 December 2011
嚴格說來,這一個月我根本沒有時間打網文,每天也只有零星的時間上網或發展程式,休息時就感到肌肉酸痛,想解程式問題時,也只能產生斷斷續續的思考。
因為我要自己修車,拆換兩輛車子的避震器,屬於車底盤重型危險工作。另外還得互換兩輛車子駕駛座旁,車門的兩個活葉支撐配件,門很重,也不能全拆下來,工作不好做。
自用車子遇到這種問題,換成一般大眾,只好花錢請修車廠代勞了。我則有能力完全自行修理後,讓車子通過紐西蘭公定的車輛制式定期檢查(WOF, Warrant Of Fitness)。為什麼一次要做兩輛車子?因為我要憑本事節省到完全不用花錢的程度修好車子,取用崔保忠學長贈送的廢棄車子料件,轉用到自己的車子上,做完工作後,必須讓廢棄車子保持仍然堪用狀態。
打這篇文章時,已經完成了避震器的拆換,車門活葉稍後再做,紐西蘭的制度是驗車未能通過時,車主保有一個月的維修期,足夠寬鬆,因此,我能選擇晴天、不忙時才工作。
自己修車就跟現今自己搞許多新的 Forth 系統一樣,沒書可讀,一切只能看著辦。您若只想花錢省事,那就不用談這些情況,如果不肯低頭、不肯認命,怎麼辦?確實難辦。不幸,現今整個世界,人生確實就得經常面對這些問題,由不得您。
但是,解決問題的辦法,並不是一切無跡可尋,要有耕耘才會有收穫,天助自助者,人也只助自助者。光是怨歎,不會有結果,現在就讀一讀這篇網文,也許能夠獲得一點啟示、一點助益,這篇文章就談一談這方面的事情。
現代公開的大型 Forth 系統,確實都大到創作者也難以全面寫出整個系統的使用說明文件。有具體文件的系統當然很貴,使用者請自己選用,完全合情合理。那麼,這種情況是不是等同於宣告了 Forth 推廣工作的死期?完全不是的,否則,我怎麼可能自己修車?兩者情況是相類似的。
記憶體容量很大、也不貴,所以現今的 Forth 系統,完全透通的源程式,可以大方使用全名而不用縮寫字當指令名稱,這一點與古時候的 Forth 系統資源澈底不同,系統無書可讀的問題幾乎降低了一半。
好系統中的源程式,指令說明也都寫得清清楚楚,另外為指令寫成的書,遠離了真實的程式,反而表達得更不清楚了。
好的創作者,通常伴隨系統附贈了精彩的範例應用程式,簡明扼要的表達了整個系統的使用方法,許多只能會意不可言傳的東西,文字書本都難以表達,不這樣做,還真不知道要如何傳承創作技術呢?
其實,上述的不正常現象,對推廣 Forth 所產生的打擊並不嚴重,問題的嚴重性,起自於整個社會的學習心態。忠言都是逆耳的,這樣的網文看起來就令人心生不滿,因為本文在批評學習者的心態。
很多人不讀書卻說沒書可讀,不用 Forth 卻說 Forth 不好用,自己都不用的 Forth ,卻介紹給大家使用。我講了實話,聽起來卻非常逆耳,是吧?
如果只想讀一本書就能搞通 Forth ,有!這本書就是 Forth, Inc 出版發行,由薄利歐(Leo Brodie)先生所著的『Starting FORTH』。看不懂英文,也有台灣鄒靖寧老師翻譯,儒林圖書公司出版的『FORTH入門』可讀。中國大陸也有黃勝先生所譯,海潮出版社印行的另一本『FORTH入門』可讀。買不到書,設法去借,或乾脆網上下載全英文的資料,逐字逐句的啃到底,我就不相信您還搞不懂 Forth !怎麼會沒書,是您不肯讀書!這些書都是紙本實體書,不是雲端虛擬書,書中若有不合時宜的部份,略去無傷大雅,不影響澈底了解 Forth 。
還有,其他書我就不覺得有建議給大家的絕對必要性了,包括薄利歐先生後來另寫的一本『THINKING FORTH』亦然。面對現今大家都只看那『幾把刀』的心態,我就迎合您們,簡單告訴您我的經驗,可以不必浪費時間去讀任何其他 Forth 相關書籍了。如果嫌我講得太苛刻了,那麼,丁陳老師、金城老師的書也都還存在現今的世界上,為什麼不去找來讀通它們?怎麼沒書???
其他的書或網上的譯文,就寫得像普通的使用手冊,浪費時間去讀,就真的划不來。硬要搞一本手冊,莊哲維譯成的全套ANS FORTH,可以網上免費下載,是他的熱心貢獻,我都讀了,您為什麼不仔細的讀?任何人都不該再公開講沒有FORTH書可讀了!!!
為了避嫌,我自己寫過的書或文章,此處一本、一篇都不介紹,可以吧?想全盤了解系統或結構, eForth 的源程式散佈得到處都是,找丁陳老師買一本小冊子仔細啃,啃完還搞不清楚 Forth 基本精神,從此之後終身別再搞 Forth 。
有經驗的老手,推介 Win32Forth 系統,作為台灣推廣標準,主要的老手,就是原先易符公司裡的成員,公佈為推廣標準當初,與我完全無關,我只從他們手中複製了初期的系統,但我尊敬老手的決定。此系統健全好用,兩本免費的書,由諾裘利(Julian V. Noble)先生與貝知默(J. L Bezemer)先生著作,幾乎做到了隨系統附贈的程度了。有人不讀、不學、不用,對群眾沒有影響,也就罷了。若來批評這個系統的不是!卻介紹一個連自己也不用的系統給大眾,那就心態可議了。已所不欲,快施與人,是『幾把刀』教您這樣做?那就讓大家看看,您將來還想往身上自插幾把刀?
老手未必是高手,但老手努力用過系統之後,提出來的嚴重問題,就是真正的嚴重問題,老手希望反對看法的人努力克服問題造福人群,但是直到今天為止,那些嚴重問題沒有人解決過。
您自己也無能解決,又不肯聽逆耳忠言,卻繼續誤導群眾,讓大家浪費時間陪您鬼混您想混的那個系統,我會跳出來講話。更有甚者,這幾天還看到認為自己也是 Forth 老手者,只顧表現自己也設計了自己的 Forth 系統,就來反對 Win32Forth ,請問您設計的系統對社會進行過多少貢獻?能比 Win32Forth 系統好?努力貢獻過再來介紹吧,不想貢獻也沒關係,您請自用,既然自認為是老手了,就更不應該對推廣標準進行破壞,否則,我直說,您是別有心機。
我的網文內早已說過那種系統不能用的原因,您不讀也不學,卻引用一大堆程式語言來狡辯,語言『懂』得多了代表甚麼?不代表甚麼,只顯得有點輕浮不穩,貢獻幾百個程式教育社會才有意義,列出幾百種程式語言的名稱沒有意義。我則絕不重寫寫過的東西,為此,我反不覺得您還是FORTH老手,卻認為您只愛現別種程式語言。
您自己或自願附和者享受自己的系統,我絕無異議,要不然您就耗費上萬個小時,寫它幾百個程式,證明您想介紹的系統不是老手講的那樣:『具有嚴重問題,將來會搞不下去』,我就慎重其事的跟你學。網頁上推廣自己設計的系統,推不下去者,都因吹噓所致,使用 Win32Forth 系統作為推廣標準,就沒有這些問題,多少年來,它恆只忍受大家的攻擊,包括現在台灣的不用之客。
有人不願合群共襄盛舉,卻老批評 Forth 系統都只能獨搞,這樣的批評又誤導群眾了。 Win32Forth 系統的程式貢獻者何止幾十人?包括我們台灣的白日東醫師在內,總數可能超過百人,國家遍及全世界,年代超過十八年,截至目前為止,那一個系統能像它一樣?我用 Forth 三十幾年,從未見過。就算發現後來的版本,越來越不像話,甚至於有好幾個版本,一直都存在著嚴重的問題,始終都不修改,根本不好用,最新推出的版本也全不可靠,要跳號選擇版本才能使用,系統已經演變得這麼糟糕了,我卻仍然忍受問題,繼續共襄盛舉。超過百人貢獻出來的系統,每個程式我都看得下去,能稱這個系統為獨搞嗎?我看批評者才真孤獨,來合群吧,合群才得歡心,孤獨當然鬱卒。
截至目前為止,無論什麼層次的人,從十歲到八十歲(我已試推廣過),無論什麼時候,只要您真心誠意的想學 Forth ,就請直接開始接觸 Win32Forth 系統,它完全不要錢,資源多到您看不完,我曾使用它超過上萬小時,寫成過上百個程式,這個網頁內曾經刊載過的程式,幾乎都是為 Win32Forth 系統而寫。此前,任何其他 Forth 系統,都不值得我這樣子下功夫無條件奉獻,那些基本作法上就出問題的殘障系統(Disable FORTH system),我終身都不想再碰。如果您公開談論批評 Forth 幾個月,卻連 Win32Forth 系統都裝不起來,省省吧,免得到了後來,大家都發現您根本不貢獻,努力貢獻過的人,出一個小問題,要求展示您自己設計之系統的真程式,就能令您難堪。
任何程式語言都可以搞,但別說 Forth 的不是。任何 Forth 系統也都可以搞,但不要來破壞 Forth 社群可以用來溝通的推廣標準,我能證明在 64 位元系統上跑 Win32Forth 系統還好用得很。有問題,我也都能自行修正,第一套裝上 64 位元 W7 作業系統的 Win32Forth ,完全是由我自己修改安裝而成,並立即公開由世人自行比對出修正之處, V6.14.00 以後的版本就作了與我完全一樣的修正。新時代會自然產生適合用來溝通的新標準,值得使用的新標準還沒有出現,以後會有,現在倒是可以確定,不會是您設計的那種殘障系統,您想獨挑大樑自己推廣,那就很好,我們早就願意退休了,過去這幾年 Forth 的沒落時期,您為什麼不做?要不然,我設計系統時,早就會從您想搞的系統開始,不會是 Win32Forth 系統。在我之前的人,辛苦推廣 Win32Forth 系統時,您躲在那裡?這是不是台灣目前普遍的心態?
習慣使用非 Forth 程式語言的人,容易以它種語言的方式,誤解 Forth 的基本觀念。我發動一次 Forth 活動,從大家來往的過程中就能體會出來,活動主旨要介紹 Win32Forth 系統的使用方法,目標只唸百家姓,大部份人都沒興趣參與,因為百家姓有什麼好唸的?搞編譯式程式語言者,確實可以這樣想,搞 Forth 程式語言尤其是 Win32Forth 就不能這樣想。
別種程式語言設計完唸百家姓的程式後,產品真的就只能唸百家姓,不作它想。 Forth 系統作完了,唸百家姓的功能成為系統中的一個增用指令,後面可發揮的空間無限,彼此狀況完全不同。您不想參與,就失去與我交換使用 Forth 系統經驗的機會,我也失去向您學習的機會。活動不容易舉辦,我則學到了不少東西,很值得。我帶頭活動後,參與者能得到什麼東西,那得捫心自問,人助自助者,人不助不自助者。
現代 Forth 的使用方法,與傳統 Forth 的使用方法也有很大的不同,參與活動者見過我提出來的一些新東西,也還有很多新東西沒被提出來, Forth 外界的所有資源,現代 Forth 都能叫來使用,就算您不愛用 Win32Forth 系統,也別再幼稚到老愛提及『無法利用外界大量資源』的這一說詞,來批評 Forth 的不是,老手您自己看得懂名家設計的核心程式,十幾年前『操控一下 Forth 系統的 UP 就達到目的了』。若您自己喜歡設計系統,卻沒這種本領,您的 Forth 觀念豈不是落伍了十幾年?沒關係,不會就該好好學一學。文章看到這裡,趕緊去追蹤一下我講的指令,全部只用五、六個組合語言指令,就能完成設計,學會了,就在心中為這個系統道歉,以後別再光靠批評 Win32Forth 系統的不是丑表自己。
我們使用 Forth 都三十幾年了,想學 Forth 的新手,無論您怎麼要求,絕不能要求老手老是只能跟您談基本指令,實體書早就擺在那裡,人只助自助者,人除了睡覺能增肥外,人間沒有可以不勞而獲的東西。如果您真想學通 Forth ,到青海省、北大荒也能學得通,心意不誠,拜甚麼師也沒有用。
附註 : 20241026 重新整理後貼出。
沒有留言:
張貼留言