2018年10月5日 星期五

富碼時代

重新移植Forth,但為何要新的語言,以及語言應會如何發展,我有疑惑。
因為已進入資訊時代,我發現程式開發行為也變得不同。
以前人要去了解原理,再轉成程式。但現在不是,都是網路上找原始碼,再加以拼裝。
這樣的行為在年輕及老工程師之間變成很大的行為不同。
為何行為不同?
個人發現,因為資料取得的方式不同,造成行為不同。

這個差異,我分成二個時代,貧碼時代及富碼時代。
貧碼時代,因為原始碼取得不易,大部分程式碼要自己寫,工具也不是很好,除錯方法有限。
所以工程師要對原理很清楚,不然程式跑不對,就無法從其他儀器或是除錯器上來看。
工程師會要求別人很仔細的看別人的程式,或是很追求程式效率。因為以前CPU跑很慢,效率加速是很明顯的。
再來網際網路出現,開始進入富碼時代。年輕一輩因為可以找到原始碼,且工具進化,有程式產生器。
程式設計變成富碼的設計方式。程式可以很容易下載到函式庫,很容易安裝,有各式各樣的函式庫取用。
利用別人的函式庫,很容易達成基礎建設,所以心力轉去應用架構上的設計。

那一個新起來的語言,變成別人不會在乎它是不是真的有效率,而是在乎它有沒有龐大的應用函式庫。
富碼時代,語言會傾向使用解譯式,因為效率不重要,反而是大型架構下,能不能重態修改程式。這種想法是受到網路程式javascript的設計style影響。
已不是說使用在MCU或是什麼領域上,而是新生代工程師認為那是理所當然。

個人是MCU工程師,這個領域在變。之前的貧碼時代已經很久了。
最近MCU開始支援Quad SPI Flash XIP模式。程式空間爆增。
於是正式要進入富碼時代,已不會因為程式空間太小,限定了程式的發展。
程式空間一大,各式工具程式就會開始使用。
MCU在富碼時代應如何開發,是新的議題了。

4 則留言:

  1. 在開放源的時代裡,大家講求的是如何在既有的開放源程式碼裡加上自己的"貢獻"。

    讓某一個應用領域裡去累積增加其功能。所以未來應該會慢慢走向這一種概念吧。

    我想這也是一種機械學習或是人工智慧的基本概念吧。

    因為未來軟體也會像大腦思考一樣,需要不斷的輸入許多學習經驗,慢慢的建立其

    龐大的運算或是對於人事物的判斷能力。這已經是一種不可逆的發展趨勢了。

    回覆刪除
    回覆
    1. 不只是開放原始碼問題。富碼後,原始碼轉換器變成是一種可利用資源。目前在想,為何不利用WebAssembly將MCU用的C轉上去用?
      結果會變成MCU程式可以利用瀏覽器做為執行平台。像是LCM等繪圖就可以先在瀏覽器中執行。或是寫一些解譯器等,資料庫(SQLite)說不定也可以。

      刪除