2017年7月16日 星期日

我的程式何去何從?

"我的程式何去何從?"這是一個很好玩的自我反省的想法。

以前我在學校一開始學的是 FORTRAN  程式,人家那時一直鼓吹學工程的要學這個。

但那時我總覺得這個東西太死板了,全部都是算式,都是文字、數字。

所以呢?我自己就跑去別的系上去旁聽偷學 PASCAL 。覺得比那個FORTRAN 好玩多了。

但是還是覺得圖形處理還是不夠吸引人,總覺得這些程式跟我們念工程有多少關聯性?

所以才又跑去玩所謂的 計算流體力學(Computational Fluid Dynamics,簡稱CFD)。可以透過

大型計算機或是工作站,可以把我們念工程的那一大堆的算式,數字的東西,轉換成

我們看得到的東西,就覺得非常有成就感。 



這個東西看起來是不是很酷了?想想這如果是在三十年前,那是不得了的事了。

然後進入職場,還是對程式軟體與工程應用就一直念念不忘。而此時也剛好

PC 個人電腦開始大行其道,許多研究單位也開始廣泛應用各種程式軟體來做各種

工程應用,那時我的同事是利用QBASIC 做風扇性能分析。也不錯。但我還是覺得

不是很能接受,因為那時整個工程業界還是比較鼓吹 C 語言的東西。剛好那時 Turbo C

也蠻強大的。所以我才利用 Turbo C 寫了這個程式:


後來因為微軟出現了視窗作業系統,讓 Visual Basic 讓許多工程師愛不釋手,但我只寫了

一個VB 程式後,我就放棄了。

可能一方面我這時候我已經在玩單晶片,也看到單晶片未來還是會以 C 語言為主吧。

所以再搭配單晶片的C 語言之外,就還是以 Visual C 的 MFC 為主了。

這一路走過來,也沒有覺得哪邊不對?至少我可以因此謀生,養家活口...只是現在

越做越辛苦了,因為這些東西滿街都是,還不包括全球最大的代工市場的中國大陸。

也難怪一大堆寫軟體或韌體的工程師們叫苦連天,自嘲:程式寫得好,要飯要到老。

----

當然一方面最主要的原因是:現在硬體的運算能力是越來越強大了,你說還要像我們以前

那樣的斤斤計較的考慮一大堆硬體資源或程式架構問題嗎?(我指的是傳統單晶片應用市場)

這些搞微處理器或CPU 的硬體廠商都巴不得你們趕快用這些強大的處理器,去做一些更

複雜或更新奇的應用了。至於你說我們以前那些甚麼單純的 IO 控制,甚至甚麼無刷馬達。

這些應用對這些處理器廠商來說:都不是他們想看到的東西。你說一架無人機控制,

他的重點已經不是那個馬達控制了,再換個角度想:你說引擎動力系統控制,這個東西

對全球處理器應用市場來說:他算是新興產業或市場嗎?我想肯定不是的。

再強調一次:若以全球應用市場來說喔。

所以這就是讓我們對我們未來可能會面臨怎樣的程式語法與架構有了不同的思維了。

只是我們年紀已經大了。不太可能還有那一種精力再搞這些玩意了。

我們只是完成我們階段性任務了。但我們這些老人家卻又很容易犯了一個孔老夫子的一句

名言:及其老矣,戒之在得。

總覺得我們資格老,經驗豐富,我們的想法是對的。年輕人要聽啦。

學這些所謂的 C 語言或是單晶片傳統底層的東西準沒錯。

但最近我被我兩個兒子吐槽了。因為他們跟我說:他們想做的是這個:



----

---

喇 ?這是甚麼東西啊?

有幸的是:我就順便跟他們借來翻了一下。我終於有新的領悟了。

"機械學習?"....

姑且不講這些理論對錯與否,至少以我自己本身的經驗法則或一些業界的觀點來說。

對啊~為什麼我們還要下一代跟我們一樣從基礎單晶片的這些甚麼 I/O 跑馬燈?UART ?

這樣子慢慢搞啊?講難聽一點,會寫 I/O 跑馬燈或是一個無刷伺服馬達控制的東西又怎樣?

生活中的許多應用都已經慢慢地跳脫簡單的 I/O 控制了,一個無刷變頻冷氣這一種基本

概念已經是一種標準的基本生活常識了,隨隨便便應該也可以從許多微處理器原廠的

範例程式裡都可以找到一些基本應用,只是你要不要花時間去整理K 一下而已。

就算你花時間整理或是自行演練之後呢?這些過去對我們這些搞單晶片控制的人來說:

還有多少這一種基礎應用市場還值得你去搞得?工業應用?家電應用?等等...

這些許許多多的應用產品,隨便屈指一算,不管國際知名品牌外,國內或是中國大陸

公司也肯定有不少現成的東西等著你拿來用而已。搞這些對我們這一代來說:

可能只是圖個餓不死的小確幸而已。對新一代的人來說:他們的機會在哪?

 對新一代的應用來說:他們已經可以處處看得到所謂的智慧車輛、智慧機器....

一樣用單晶片、微處理器。他們想做到的是:一個臉部辨識,智慧判斷到互動模式。

那你想:如果要做到這些功能,您還在想用我們這一代這一種程式觀念的寫法嗎?

一個 I/O 控制,一個伺服馬達控制等等,都已經是一個基本基礎了,如果我是賣

微處理器的IC 設計公司,我都可以幫你搞定這些基礎應用,而我比較期望的是:

你跟我說:要我在我的單晶片或微處理器裡加那些東西,才可以達到所謂的機器學習?

真的~我原本還一直覺得我自己在單晶片程式語言的觀念沒有錯,但我沒想到的是:

時代還是會改變的。就像以前我跟我父親底下當學徒時,我父親也是有堅持他的想法,

但他沒有想到的是他兒子這一代因為電腦或所謂的單晶片微處理器的應用,改變了

他傳統機械製造或是控制方式。以前他認為他一個很好的工程創意,結果在我這一代

卻變成一個再簡單不過的 I/O 循序控制的而已。

現在我也會去相信:我的下一代可能會拿我這一代一個伺服馬達控制,去完成一個

智慧互動的機械學習。就像以前我們從來沒有想過所謂的行動電話,甚至一個SIRI 秘書。

但今天當我們還在搞這些單晶片時,人類已經超越自己,教機器下圍棋的打敗世界第一的

棋手。沒錯!撇開所謂的道德或人文基本認知,我們也不得不承認:所謂的機械學習正在

一步一步地進入我們的日常生活了。

-----

那我的程式何去何從的這一個想法呢?當然自然而然就只是一個屬於我自己這一個世代

自我孤芳自賞的一個註記而已。我寧願我的程式只是上述中所謂未來機械學習過程中

一個很簡單基礎的標準應用基礎函數庫而已。

而未來真的要做到所謂的機械學習的東西,那肯定不會是用我們這一種程式語言再搞這些

玩意的,就像以前我們所接觸過的:FORTRAN、BASIC等等...連我們自己都不會說服自己

再回頭用這些程式語言了,更何況是即將面臨更複雜未來的下一代呢?

你說:是不是?




41 則留言:

  1. MCU必有ROM及RAM,已經運作數十多年了。但時代前進,TI已出全FRAM的MCU。在次世代記憶體發展下,ROM/RAM還有得分?沒分ROM/RAM,C語言還有優勢?以全FRAM的MCU來說,使用解譯語言更有優勢。所以我早在二年前就看開了,C語言外,一定還要學會第二電腦語言備用。

    回覆刪除
  2. 其實這些新東西或多或少小弟都有在玩,但最大的問題是...老闆覺得我這個年紀應該#%$#^&...這些東西讓年輕人去玩就好了

    回覆刪除
    回覆
    1. 所以老闆可以不用管甚麼軟體,他只要能抓老鼠的貓。

      但最怕的是:老闆明明知道有新技術,新趨勢;但卻要老貓用舊方法去做到新技術,

      那老貓就玩完了。不過,這還要看老闆甚麼時候會想到....

      順便提一下:我是看到這個東西才恍然大悟的:https://micropython.org/

      一樣的 I/O ,一樣的ADC/DAC,UART、SPI、I2C...;最強的還是在於它的聯網功能...

      趨勢無法擋的。舉一個簡單的應用例子:

      夏天到了,我最受不了的是:晚間冷氣機的設定功能,不是定時開,就是定時關。

      難道不能做到時段設定開關嗎?如果傳統單晶片要做到這個功能,肯定不是寫程式的會花瘋;

      就是會被使用消費者公幹他的UI 操作介面,但我想如果有所謂的雲端智慧互動學習模式,

      一定可以改變這一種窘境。怎麼做?我不知道,因為我不會 Python ...

      刪除
    2. 美國1998年就研擬出BACnet (Building Automation Control Network Protocol),您老的問題其實早就有解,但一般家用冷氣不會用這麼複雜的協議,另外Python如MediaTek推出的7688上也可以Python,但那個效能實在太爛,印個hello world要好幾秒,能實用嗎?目前最有可能在Embedded出線的是Google Go,效能已經接近C,而且有記憶體自動管理...Python不難學拉,美國大一課程現在已經改教這個了,只是現在我是不見兔子不撒鷹

      刪除
    3. "只是現在我是不見兔子不撒鷹"... 給你按個讚!

      可以私底下跟我說一下:甚麼時候,甚麼情況下你會撒鷹?...嘻~嘻~

      以前有許多特殊應用,可能因為考慮到當初MCU 平台的一些硬體功能限制,

      造成許多控制介面不得不以規範來限制,但我在想:當現在微處理器與雲端聯網這麼強大

      功能性以及許多手持裝置連結方便性。

      到底還有多少這一種早期所制定的規範還可以存活多少下來?

      就像你說的:以搞硬體廠商的心態來看,"但那個效能實在太爛...",這個就是他們可以看到

      的商機了。我相信在市場需求或未來議題炒作下,只會更精進而已。

      這個東西以後只會越來越聰明,也會讓許多人感到不可思議而已,要不然你以為像在老美

      那一種 Google 公司來說,他們在幹嘛?

      以前我們在搞軟體寫程式時,總覺得微軟應該是最大,而且是市場唯一了,他是個巨大怪獸。

      還有那個 Intel ...那個微處理器應用市場裡存在的科技巨人。

      但誰會想到今天還有出現 google? 有所謂的 ARM ? 一切都已經在改變了。

      刪除
  3. 應該如何?老闆的話是對的? 大部分老闆只是考量你在公司的位置,而不是你真的應該做什麼。
    個人覺得大部分公司沒法過十年,所以要準備的是十年後的職業。除非是55歲以上,那就要準備的是退休。
    電腦也是,十年後就有巨大變化,還是要一路看。

    回覆刪除
    回覆
    1. 厲害~ 比我的回答還快,還貼切。

      所以我已經在準備站在另一個角度來看這些巨大的變化。

      有時抱怨是沒有用的,怎麼調整才是重點。

      刪除
    2. 小弟現在也是在思考,我學了能怎樣?在這個產業我能有什麼位置?我能進入這個產業嗎?

      刪除
  4. 有關MCU的機器學習,對我來說遇到SVM(支持向量機)是一個大突破。它從數GB的資料中去找最佳化高階投射函式,最後只剩下一行方程式,最後的一行方程式就可以移入MCU了。
    這還不是人工智慧,但可以看到大數據如何用在MCU上。了解新科技,去找出MCU可以用的,才是新職業真正需求。而不是聚焦在使用那一種語言。

    回覆刪除
    回覆
    1. 所以我也是經由這一次的探討才發現:原來在這未來的趨勢裡,真的完全再也無法仔細的去切割

      分辦出所謂的軟硬體之間的分野。常常是時而硬體,時而又是軟體。

      所以有人笑 Nvidia ,但你又很難不承認這些事...這速度只會越來越快了。

      我都還剛覺得人家 Arduino 很方便,沒想到的是 MicroPython 更Easy 輕鬆。

      這才是瞬息萬變的科技時代啊。

      刪除
    2. 類似 MicroPython 的東東...
      https://www.zerynth.com/
      Zerynth is the middleware for smart devices, IoT and Industry 4.0 applications

      刪除
    3. 非常感謝你所提供的資訊。

      我相信在這個風起雲湧的世代交替,不知誰能勝出?

      但我只知道:一來已經不是我這一種LKK 工程師還可以抓住甚麼的?

      二來應該也不會再走回頭路去讓每一個應用工程師再從我們那個時代一個一個I/O

      用C 語言慢慢搞了。甚麼是所謂的高階語言?也可能要重新定義了。

      或許已經不是所謂的高階語言了,而是另一個名詞了吧。請賜教!謝謝。

      刪除
  5. https://wallace7914032.blogspot.tw/2017/07/blog-post.html
    此為個人看待未來的觀點。在人工智能下,程式已不再是程式,而是一種取得資訊內容隱含的行為分析工具。
    所以對於下一代要學新語言,我是非常贊同。

    回覆刪除
    回覆
    1. 嗯~寫得不錯。

      當我們的社會進入了資訊社會就已經沒辦法停下來了。就以目前許多資訊科技產品已經

      讓我們覺得生活已經過得不錯了,也很舒服了。但為什麼大家還是要這麼拼命的拚個

      魚死網破的~非搞得大家都生活不下去似的?這裡面有一個很重要的因素:

      那就是資金市場的出海口。很難想像喔。很簡單~當我們這些工程師們努力之後,

      就有人會因此會賺到錢,那也更不用說:許多印鈔票的人~美元、歐元、日幣、人民幣...

      當這些投資市場想找機會時,自然就會不斷有人去編織一個偉大的夢想了。

      所以你可以看到google、Nvidia 或是 Tesla 等等... 永遠都不缺研發經費。

      就連台灣的台積電都不會被放過。所以就看你要怎麼去編個好故事題材而已。

      ---
      另外你有提到一個很重要的重點:那就是 電玩遊戲市場。

      現在整個IT 產業的領頭羊幾乎就是電玩市場帶著大家往前衝,所有最高階的軟硬體幾乎

      都集中在這一塊領域裡。尤其所謂的AI 人工智慧。真的很難想像:一塊顯示卡要賣到2、3萬元。

      包括現在最高階的半導體製程幾乎都是這一塊領域的產品在推...Nvidia 在推的已經不只是

      單純的影像功能,而是那背後龐大的運算能力。

      ----
      不管如何,大家只要記得:只要資金投資市場不斷的膨脹,勢必也會一直創造打死不退的

      人們不斷的前仆後繼地投入。至於對每個人來說:只是要更懂得自己所處環境與條件。

      適度的調整一下心態了囉。沒有手機,也是可以過著沒有手機的生活的啦。

      刪除
    2. 資金市場? =有錢人存錢的地方? 為何要再拿出來?
      個人理解是經濟循環。在以物易物時代,經濟等於有形資產。但銀行出現後,經濟變成是金錢管理遊戲。市值變成是實質質產+流動經濟力。
      要維持流動經濟力,就要將賺到的錢再次投回市場。
      現代經濟下,流動經濟力已大於實質資產,這也是工業時代不太打仗的原因。一打仗,就消滅流動經濟力,就算得到土地,也不見得有得到利潤。

      刪除
    3. 今天電子時報的報導:
      ---
      大陸IC設計反攻台灣 兩岸競爭力此消彼長 /趙凱期 2017-07-19
      http://www.digitimes.com.tw/tech/dt/n/shwnws.asp?id=0000507703_GJL63D1S1NF0RF2CL2FT6#ixzz4nG55GG5F
      ---

      看不到內容沒關係,不重要~反正都是講那些...

      重點還是在於資金市場怎麼辦?中國大陸明明是奉行無產階級主義。但偏偏又是全球

      外匯存底最高的國家,怎麼辦?錢太多老是去國外買房地產、買國家等也不是一種好辦法...

      但不小心也很容易拿錢把自己淹死吧?要不然全國一人發一疊鈔票當飯吞怎樣?

      所以啊~再搞個 Arduino 、樹莓派 公版幾百萬片出來賣怎樣啊?哈~哈~

      你說的沒錯啊,至少這樣子才能符合"流動經濟力已大於實質資產"啊。

      要不然呢?十二吋晶圓廠、N代面板廠等再來給他蓋個十座、二時做得好不好?

      你說的:人家中國大陸土地都已經那麼大了。得到土地要幹嗎?

      只好趕快把錢花在蓋高速公路,高鐵...五環、八環、十環道路拼命蓋...

      所有的貨幣都會越來越貶值的,全球都一樣,把錢存起來要幹嘛?等著被貶值嗎?

      這才是有錢人最擔心的事啦。

      刪除
  6. 目前的資訊:

    https://en.wikipedia.org/wiki/List_of_Nvidia_graphics_processing_units

    Geforce GTX 1080 Ti : 16 奈米製程。Thermal design power :250 W。USD$ 699 。

    甚麼概念真的很難想像。挖礦機?

    回覆刪除
    回覆
    1. 不一定在挖礦上。影像處理上,機器視覺上都可以用。GPU也可以虡擬化分出來用。一台PC可以使用多台虡擬機,再分各VM需求多少GPU。
      現在VM改走輕量型VM=Docker。所以一台PC可以模擬出近百台的VM,可以玩叢集電腦。
      各docker有自己的任務,用在IOT上,若是每台docker各控制一台實體小型機器人,可以玩多機器人合力作業,每台機器人有自己的視覺,皆可以回傳到主機來計算。
      所以用單台PC是無法想像,若以VM來看就可以知道其應用。
      以上來自電玩伺服器的知識,個人未親自操作過。

      刪除
    2. 換個角度來描述。希望GPU可以有效服務客戶。若是每個客戶皆用APP回傳照片,希望使用GPU效益最大化,就是開多台VM去共用GPU。GPU之所以有如此大的計算力,就是要可以即時性回應。
      這種伺服器應用GPU做計算,不管是用在AI或是其他任務,或是混合性任務,和手機結合後都需求很高的即時性,自然造出高計算力的GPU。

      刪除
    3. NVidia 官方網站: http://www.nvidia.com.tw/object/deep-learning-tw.html

      深度學習技術,包含了:人工智慧、機械學習、自然語言處理、影像辨識及自駕車。

      看來是回到我們討論的主軸了。但如果你再點進去了解探討一下,你就會發現:

      人家就是可以非常投入浸淫在這一種將主導未來世界的技術開發。為什麼?

      還是我們所強調的:那是一個夢想,一個趨勢~也可以創造所有相關產業往前進。

      人家不用擔心要燒自己的錢,自然就有一大堆資金市場會追著他跑。

      所以這是一個工程師所應該要努力的~

      刪除
    4. 個人參加過nVidia的GPU程式設計。所以很清楚GPU的計算力,在矩陣運算上高出CPU太多倍。不是高個十倍,而是數十到百倍。機器視覺可以實用化(即時性)用CPU很難,用GPU很好做。
      自動化需求大量機器視覺,所以nVidia一直鎖定這一塊且做了很久。
      今年的CES開場就不是intel或是microsoft而是nVidia,可見未來主導電腦的科技已經變了。

      刪除
    5. https://www.cnread.news/content/2631496.html

      這一篇的標題下得很好,內容也非常貼切。

      "英偉達30億賭注:詳解最強深度學習處理器、GPU雲及新DGX"

      30 億美金是甚麼概念?我們的前瞻計畫是國家計畫,但人家是公司產品企劃。

      還是老話一句:你覺得你的下一代會學到甚麼樣子的程式語言與觀念?

      刪除
    6. GPU只要有概念就好,因為現在雲端已經備好API了。Google Cloud Platform內可以直接引用內含GPU相關的影像處理API。要租用GPU自己寫也可以。語音識別,影像處理的API在GCP都弄好了等待使用者去呼叫。一般應用已經很少自己去寫底層了。
      電腦應用,在未來可以給一般人操作的,都是雲端虛擬機了。

      刪除
    7. 上個月看到GCP有這些API存在,真的很懷疑還能寫MCU多久。一台安卓機要不了幾千,照像語言上傳到GCP就可以做一堆MCU以前不好做的。自己做板子,算起來還不如去買台平板。反正運算都在雲端。

      刪除
    8. 機器視覺最大的應用領域其實是工業控制,比方說PCB檢測取代人工檢測

      刪除
    9. 不用講甚麼一大堆理論,只要機器會"看得懂、聽得懂、會表達"..."也會做"這個就不用說了

      那搞自動化有甚麼困難了?

      所以呢?如果以後不能再引進外勞(應該要稱為移工)。然後呢?人口老化、少子化。

      那就得靠這個啊~所以當我們勸不了下一代時,那就只好趕快學,趕快做了啊。

      刪除
  7. 這裏有Python 跟 C 的執行速度比較

    http://benchmarksgame.alioth.debian.org/u64q/compare.php?lang=python3&lang2=gcc

    Python執行速度慘不忍睹, 最糟狀況可以差到100倍.

    這裏有2016年熱門語言排行榜(2017年也差不多)

    https://kknews.cc/tech/a8nr4v.html

    而讓人意外的是,「老掉牙」的彙編語言,居然再次進入前十(排名第10)。分析認為,彙編語言之所以能夠再次流行起來,與大量增長的智能硬體關係密切,例如智能牙刷或者是咖啡機等等,它們都在運行彙編語言,畢竟彙編語言的運行效率是其他程式語言無法比擬的。



    我個人認為, 沒有誰淘汰誰的問題, 而是對不同的處理問題採用不同的語言開發. 畢竟處理一個每天尖峰只有20份訂單的程式跟每天尖峰有100萬筆交易的程式執行速度的要求完全不一樣.

    所以比較可行的方式就是混合寫法, 不要求執行速度的部份用動態語言(比如說Python)寫, 要求執行速度的部份用C/C++寫. 這個在40年前當Apple II開始流行的時候就是這樣, 不要求執行速度的用(解譯式)BASIC寫, 要求執行速度的用(人工編譯式)機械碼寫.

    回覆刪除
    回覆
    1. 無關速度。使用環境才是主要需求。Assembler有無說是那一種,你確定是CPU?
      就我所知,現在大家正在研究的是web assembler,它不是給CPU用的。
      現在PC軟體少了,又無法在安卓上直接編譯,才使得解譯型式語言大流行。
      網站因為天天要修改,本質上不合適編譯語言。
      確定寫完程式不會再改的場合,才是編譯語言存在的地方。
      要從應用面來分析,而不是由技術面來分析。

      刪除
    2. https://www.tiobe.com/tiobe-index/

      2017年擠進前10名的是Go,而且他是前10名內少數擁有
      1.速度接近C
      2.靜態語言,編譯成機械碼
      3.擁有垃圾收集

      再看看Embedded Linux裝置氾濫的程度、embedded software 複雜的程度,Go出線是遲早的事,即使是台灣,實際上很多公司也慢慢嘗試使用Go來開發產品了。

      刪除
    3. 有時真的要拿這個東西出來比,真的有點失焦了。

      這個就跟我們這些科技宅男老是在比誰收集的"科技廢物"多的意思是一樣的。

      對~你的技術好,你也會寫幾本技術的書...那就怎樣?市面上賣最好的書籍可能是時尚雜誌。

      所以一樣的道理:就以你所提供的軟體排行榜來說:Scratch 這個語言可能會被所有

      學有專精的軟體工程師所不屑。那又怎樣?他未來可能有很基礎廣大的使用市場啊。

      人家不是在推所謂的中小學生學程式設計嗎?我小孩子都開玩笑說:學甚麼程式比較有用?

      搞不好,學學 SCRATCH 還可以拿來騙小孩子,混個教職還不錯耶!

      學程式語言還是要看市場需求吧。沒有飯吃的市場,再好的程式,學了也不一定有用。

      所以我才一直強調機會與未來吧。

      刪除
  8. "無關速度"也不太對,應是說速度有很多補償方法。所以不是最主要考量,功能才是。

    回覆刪除
    回覆
    1. >> 速度有很多補償方法。所以不是最主要考量,功能才是

      呵呵, 等你寫一個程式(用C寫)一次要跑40小時(我們最近碰到的), 如果用Python寫, 一輩子也跑不完(因為memory爆掉了, 跑都跑不動), 你就不會這樣講了.

      功能跟速度的取捨是完全看應用, 好的工程師應該是要根據不同應用選取適當的工具來完成應用要求.

      刪除
    2. 對我來說不是,MCU/CPU/GPU/FPGA都可以用。每一個上面用的語言都不一樣。有時連選擇的機會都沒有。
      40小時,是大數據吧。我也有過,4核心的PC是要跑如此久。不過跑完成出了一個SVM的方程式,再移入MCU就不會了。
      40小時的程式,只能當成離線用,用GPU去跑就有機會進入1分內,再不行,租用AWS上的GPU也可以。

      刪除
    3. Heliboy 學長,好久不見了... 先問候你一下。

      我今天出差沒開電腦可以看大家的留言。不好意思。
      ---
      其實真的要討論這一種程式語言的優勝劣敗,我個人覺得是要看從哪個人的角度來看。

      我這篇文章一開始的出發點:我也覺得我自己學 C 或是 C++ 不錯啊。

      但是我是看到我兒子對這一種程式語言興致程度來看,你說寫 C 語言這種事。

      沒錯,他們修課寫作業,還是會用 C 啊。你說他們不會用C 來程式嗎?當然會。

      我自己會不會寫組合(彙編)語言?會啊。那怕我在寫單晶片 C 語言時,我偶而還是會插入組語

      但我的重點是:但是為什麼他們會有不同的想法?他們看到或接觸到甚麼?

      以他們的眼光來看,他們看到甚麼機會?C 語言這種東西,本來你會用到,你就去摸一下。

      這麼成熟的東西,對許多人來說這已經不是要拿出來討論的議題,就像你現在跑出來說:

      你現在說要開一家IC 設計公司,肯定有許多創投公司都興致缺缺的,不是不能開這種公司,

      而是你要怎麼說服人家?對啊~我自己會寫 C 語言,應該也寫得不錯啊。但我真的沒辦法

      說服下一代只要學C 語言這件事。對於(只)用 C 語言寫程式,他們可以探索甚麼未來世界?

      這個也不是我所樂見的結果,我相信也不是大家所樂見的結果。

      但我們也不可否認的:對年輕一代來說,處處AI 人工智慧所呈現的現實社會,的確是比我們

      那些用C 語言一行一行程式所刻出來的世界豐富繽紛多了。

      我今天有幸帶著一個剛大學畢業的學生跑廠商。(他在等當兵) 回來之後,

      他很感性地跟我說一聲:今天非常感謝我帶他跑廠商。

      我就非常鼓勵他的說一句:我們能做的真的有限了,還是需要你們年輕人跳出來的。

      想想這個含意就好了。



      刪除
    4. 留下一個註記:

      https://www.facebook.com/yijing1/posts/10155047901669495

      【台灣的軟體工程師都跑哪裡去了?】

      刪除
    5. 走軟體這行,一生用過的程式語言超過10種都不算太稀奇,您公子在學校恐怕就會先學個2、3種以上。

      刪除
    6. 程式語言對於工程師來說:就像一般語言一樣,多一種語言就多一種不同的文化接觸。

      有多一點不同的機會。

      以現在許多程式語言的開發平台來說,都已經可以算是多一點人性化了。

      所以多學一點語言也沒有多大的困難,尤其對一些科班出身的人來說。

      重點還是在於基礎觀念的建立,就像鄒先生說的:當你程式寫一寫之後,發現跑不動,

      效率差,怎麼辦?那也好要換個架構或是平台跑啊。就是我們會善用工具的道理一樣。

      要不然呢?你不換,以後老闆也會教你換的啦。

      "咦?為什麼人家的機器這麼順,我們家的怎麼這麼慢?"

      怎麼辦?你十八般武藝也得要全拿出來啊。武功不行?那就又上山學藝啊。要不然還是老闆

      自己解決問題嗎?

      只是以後的差別是:基礎都是老程式語法在搞,然後一下子可以整合出美美外觀介面

      都是新語言程式... 然後你就會發現,原來連寫程式也分成不同的勞動階級了。

      譬如我說的:伺服馬達控制,C 語言,甚至組語強,很好,但是模組化後,低階標準化。

      引擎動力系統一樣。但是呢?人家拿來整合成機械手臂,機器人~甚至人工智慧,帥!

      引擎動力系統標準化,所以拿來做為自動駕駛智慧車。棒!

      結果站在台前光鮮亮麗的是誰?你覺得會是寫 C 語言或組合語言程式的人嗎?

      刪除
  9. 不只是AI對程式有很大的影響。LLVM的出現也改變了我對程式的看法。
    LLVM是compiler技術終極解,不只可以machine code to machine code對轉,語言之間也可以對轉。
    LLVM使我對程式語言的看法有很大的不同,最終人還是寫不過LLVM,不管用那一種語言都一樣。
    這也是我轉向由其他方法去取得加速計算的原因。所以我說加速計算有很多補償方法。
    只有差在,知不知道方法而已。

    回覆刪除
  10. 我也來留一個2017 年的程式語言排名:

    http://spectrum.ieee.org/static/interactive-the-top-programming-languages-2017

    Python 第一。

    回覆刪除
    回覆
    1. https://read01.com/xGm6ka.html#.WZqkAdR95hF

      刪除
    2. 非常感謝學長提供這麼一個精闢的說法。

      值得大家參考的。

      刪除