張貼日期:Jul 01, 2014 10:2:24 AM
上個月的月會,由於實在連著兩天往返台北開會太累了,因此我在台中的家裡,使用 Skype 上線參加了早上的會議,中午利用大家用餐的時間,說了一段話,恰巧「郭明坤」老弟,這次月會也來了,事後他寫了一封 gMail 給我,由於我燥鬱症陷入低潮,因此跌宕至今日,精神稍稍恢復,趕緊就此答覆他的信件,也一並跟大家問候吧!
-------------------------
金城老師您好!
首先對於您為我們這些FORTH人,以及FORTH的發展,持續不斷的提點與建議,
以及那些IT產業全面性的發展環境變化的解析,為我們努力的方向點了一盞明燈,
表示我對您的由衷的感恩與感謝! 我相信,有您,FORTH 必能在台灣或中國走出一條它的新路。
其次,對於您還記的我寫的那個DOS版的視窗模擬環境,說聲謝謝!
我以為那只是在那年少輕狂的年紀所作的蠢事之一。
我說它蠢,是因為當時不懂的堅持繼續發展下去。畢竟年輕,也沒有什麼資源,如今只能當個回憶了。
今日寫信,第一,還是表逹我心中的感動與感激之情。
其二,是想請教您一個疑惑:我們都明白,FORTH以前一直在小型且封閉系統設備的世界里,擁有迷人的控制能力。
而當時PDA出現的時候,我就覺的,如果FROTH能在這樣的平台上發展,那一定能獨領風騷。
後來,智能手機出現了,接著那個綠色機器人跑出來,我以為會有能人志士也用FORTH在智能手機上搭起舞台。
一直到現在,情況我們都知道。 我一度以為,也許 ARM的架構,不適合FORTH搭建 VM。
但在這次月會中,了解到有個FORTHUINO,看似個FORTH系統在這個ARM核心的板子上跑。
若是如此,怎麼在ARM架構下晶片或系統這麼多,怎麼不見有人使用 FORTH ?? 它真的不適合嗎?
還是單純的沒有人幫它寫那些周邊的程序??
請您撥空示教了! 先謝謝您了!
祝 好!
Best Regards,
Andy Guo/郭明坤
--------------------
✉: gmk....@gmail.com
-------------------------
其實,當 ARM 成為最便宜的 32 bits 工業量產的 SoC 解決方案時,已經不必太吹毛求疵的認為 C 的 RISC 不適合搭建 Forth VM 了,相反的由於 ARM 的授權生產模式,得到了前所未有的成功,由單核至多核心,由 32 Bits 至 64 Bits 的 CPU + FPU + DSP + IO 整體解決方案。與 Keil C 已經成為工業上標準的ARM 開發工具。以及各式各類的 C Library 可供選用。因此,若能拋除使用 Assembly 來撰寫 Forth Kernel 的傳統概念,改用 C 來撰寫,則只要把 Cell 放在 Macro 定義裡,便能夠非常方便的寫出好用的 Forth VM 了!
至少,使用 C 來撰寫 Forth VM 的版本中,我個人覺得 4tH 的作法,就非常的漂亮,而 FICL 4.0 也算是在 Debugger 上非常方便的一套。這些都是舊話重提,已經說過很多次了!若真的有心要使用 C + 現成的 C Library 來撰寫 Forth VM ,就多多參考下面兩個的網站吧!
http://thebeez.home.xs4all.nl/4tH/
當然,若真的要在 ARM Cortex-A9 上 uLinux 則 gForth 0.7.2 也算是個 GNU 上的標準版本,可以透過 C 的 Library 來運用多核心的 ARM。
http://www.gnu.org/software/gforth/
至於,那一套 Forth Inc. 的 SwiftXForth 當然也有 ARM 的版本,但說實話,若使用 ARM 還要自己使用 Forth 來寫 I/O Driver 與 Boot Loader 的話,那就不如使用 Keil C 來的方便了!
其實,做任何的「專案設計」,不外乎是「市場、客戶、成本、利潤」的考量,至於使用哪一顆 Chip 說實話,並不是最重要的,工程部門的觀點,經常與市場部門的觀點衝突,這時候最好去問問「設計顧問」,到底合理的決策選擇是什麼?
我個人是偏愛把 ARM 當成 FPU、IOP、GPU、MMU 來使用,浮點運算,網路與 I/O 處理,繪圖顯示、記憶體管理,都讓那一顆有 uLinux 或 RTOS 的 ARM 去管理,而真正公司的智慧財產,必須保密防諜的工業秘密,則放入一顆 FPGA 中來保護,這樣子設計起來的系統,就很棒了,這樣的設計就是我多年來不斷重複的 F2Com( FPGA Forth Communication Computer ) 設計概念,也就是在雲端時代的 Internet Of Things 的系統架構。
Lattice 使用 MachXO2-7000 做了一塊小板子給 Raspberry Pi ,應該算是這樣的成品中,最便宜的入門款吧!有興趣的人,不妨弄一套玩玩!
http://www.latticesemi.com/en/Products/DevelopmentBoardsAndKits/RaspberryPiFPGA.aspx
最後,想回應那一套在 DOS 下的小視窗 Forth 程式,其實使用 Forth 來撰寫整套的 GUI 並非不可行,在德國就有過一套 BigForth 是完整的 Forth GUI ,有興趣的不妨弄一套來瞅瞅:
http://bigforth.sourceforge.net/
在網路走向顛峰發展的時代,任何「單打獨鬥」的 R&D ,都不會是真正的研發方式了。這也意味著過往那種 Forth 高手,以駭客級的身分與技術,一肩挑起,硬體線路開發,軟體系統分析,系統工具開發,應用程式開發...etc. 的時代已經結束了。那種在 6502 與 Apple ][ 時代培養出來的系統好手,而今再也不容易訓練出來了,一個大學資訊系畢業的學生,大多半不會寫 Assembly,甚至看不懂有 Pointer 的 C 程式。這就是這個時代的現象,不喜歡這樣的工程師,又能怎麼樣呢?
Forth 要如何才能夠跟上時代呢?兩條路而已,要不然就跟隨 Moore 的腳步,勇敢的走入 144 至 288 個核心的 Green Array 架構,重新思考 Forth 怎麼利用多電腦核心的概念,以軟體解決過往硬體演算法的問題。另外一條路就是走向更單純,更省電的軟硬體架構,去挑戰以一顆鋰電池,可撐一年的超低功耗的 IOT 終端點系統。至於那種 32 Bits 的 ARM 架構就可以使用 Keil C 解決的專案,就讓 ARM 發揮所長吧!頂多花五塊美金,加一顆 FPGA 設計一個簡單的 eFx18 來做好保密防諜也就夠了!
許多玩 Forth 的好手,一輩子都以研發工程師的角度來觀看問題。其實,若能退除這種心態,學著以市場的角度,設計整合的角度來觀看問題,也許會更有助益!
順頌刻綏!
燾昍 隨筆