祝大家國慶假期快樂   再來分享一篇許多人常會有的迷思

有些專長是純軟體的人,觀念上總是會認為演算法是萬能的,認為可以不用顧慮硬體和電路狀況

個人認為這種觀念是很荒謬,且代表其技術視野方面的客觀度可能也有點問題

如果用較嚴格且精確的角度來說,世界上沒有所謂純軟體這種東西,

不論多麼高階的上層軟體程式語言的執行平台是如何將底層系統和硬體給抽象化,讓上層軟體開發者可以專注在純軟體本身去作開發,

但軟體終究是為了驅動硬體做出相對應的動作而存在的,電腦本身從頭到尾都是硬體,不是因為拿現成的硬體設備所以沒看到其設計過程所以就代表硬體不需要存在或者不用被考慮

就像做一個溫度感測系統,如果sensor或其搭配的放大電路本身有問題的話,那純軟體或演算法(當然演算法不一定只能透過軟體實現)再怎麼樣厲害也沒用。舉個例子,假設有感測器有時候輸出類比電壓2V代表20度的溫度物理量,而有時候卻是輸出0.5V代表20度,有時侯又變成是輸出1V代表20度,動態變化且毫無規律性,那要如何知道到底是幾V代表20度?如果可以知道,那我看世界上也就不須要sensor和感測系統的存在了。當然實際上溫度感測器本身輸出類比電壓在經過放大電路之前通常不會到輸出2V這麼大,這邊只是隨便舉個簡單易懂的例子,或者也可以看成是經過訊號放大之後的結果。根本的原因是因為問題就根本不是在這些判斷機制,而是出在資料(感測訊號)的來源

另外

關於純軟體,其實演算法不一定只能透過軟體實現;而關於演算法,以上面的溫度感測系統例子來說,講得rough一點,演算法是針對raw data去作後續處理應用的方法,但是演算法本身並沒有辦法去確保raw data的來源的正確性和規律性,演算法並無法取代sensor(這句是廢話)

現在AI會被過度炒作或迷信就是這樣來的,其實就是許多人不明究理。方法是要看場合去使用,而不是去迷信什麼高大上的流行技術能夠一體通用解決所有的問題

如果聽不懂我上面講一堆是在講什麼的朋友,你只要仔細想想自己寫的純上層軟體應用程式,到底是跑(執行)在什麼東西上面就好,並想想實際上是如何執行的, 自己是否講得出來 

而且建議去想想你寫程式碼所用的鍵盤 是什麼樣的東西 而不要因為習以為常就當成沒看到或覺得不重要

arrow
arrow
    創作者介紹
    創作者 阿良 (孫文良) 的頭像
    阿良 (孫文良)

    阿良的嵌入式系統技術學習區

    阿良 (孫文良) 發表在 痞客邦 留言(0) 人氣()