開放原始碼是一件好事,如果每一個人寫好程式都完全不考慮開放,那就真的會讓資訊技術的進步牛步化了!太多微調就可以使用的重複程式,我們都必須自己從原理層次依序逐行打字建構,最多只能複製貼上自己公司的舊程式吧?30年前的電腦世界還真的就是這樣!大家的日子都過得很辛苦,工作效率還很低。
現在的軟體開發世界已經因為Open Source觀念的盛行變得完全不同了!譬如我教程式時就跟學生說:即使你「寫」不出很複雜的程式,只要你能「閱讀」看懂別人公開的程式,你就可以做個軟體工程師了!正如我們文筆創作力即使不如專業作家,也可以當個編輯或文字報導的工作者一樣。
我的教學很成功,真的教出很多能靠「處理」程式維生的人!試問現在有幾個軟體工程師不是找程式碼來拼貼開發軟體的?真正能面對問題,用科學原理思考分析,將想法變成數學模式,再精確地寫成程式的人,現在已經是有如鳳毛麟角的奇葩了!
我不是神仙,可以用很少的課程教出很多很會寫程式的人才,只是直接面對現實,我不會設定要教會學生寫各式各樣的程式,只是帶領他們模仿很多有用的範例而已。就像我們讀國文英文課文一樣,多數人上完課都看得懂了!但只有少數人可以因為天分與後續的努力能真的變成作家,但是每一個人至少都能通順的模仿範例寫報告或家書情書了!
所以理念上我是支持Open Source的,在自己學寫程式與教學生涯中,我也是實際的受益者!但很微妙的,我現在走到了大家認為很複雜深奧的影像辨識演算法開發領域,而且以此開公司賺錢討生活七八年了,但是這麼多年的職業生涯中,我開發的軟體完全沒使用過任何Open Source的資源!
我們這個領域相關的Open Source資源還特別多!從基礎的OpenCV,到進階的CNN與Yolo等等,品項多到族繁不及備載!據我所知,好像已經沒有任何影像辨識的專業公司,是完全不用這些Open Source資源,像我們一樣「堅持」從科學原理逐步分析解決問題寫出軟體的!
事實上,這完全不是我個人的怪癖,或有甚麼迷信成見預設立場,這一路上我和我的RD都不排斥使用任何Open Source。但每次嘗試都覺得太過麻煩,程式碼是擺在眼前,跑起來也大致是對的,但是要學習到跟自己的科學觀念完全結合呢?要學習到可以很有把握的修改,精確地用在自己要解決的客戶問題呢?
我們總是發現直接面對問題,用自己已知的科學觀念解題更快、更準確也更有效!到現在我的RD去研究所上很多課程,也是在學習操作使用譬如CNN等等技術的Open Source,但是光解釋操作細節(很多Lib的呼叫組合安裝等等)就夠麻煩了!
老師可能自己也是因應系上的課程規劃開課的,不太知道原作者解題的科學(數學)概念,或是知道,但沒有時間好好解釋,學生們多半已經預設是來「撿現成的」!既然都已經有可以使用的程式碼了,何必專心聽原理呢?結果就是上過這些課程的學生,最多只是學會操作這堆程式模組,只要原作者一改版,學習的「技術」就過時沒甚麼用了!
因為是免費的軟體,原作者連程式碼都公開了,還不收錢,哪會有時間好好教你學到真的會啊?他還有自己謀生的研究工作要做嘛!於是一大堆半吊子的AI達人,YouTuber就跳出來做網路教學了,還大賺學費廣告費?但是他們真的會用那些東西嗎?如果他們那麼懂ML、CNN、Yolo,能請問他們用這些資源開發成功過哪一款商業影像辨識軟體嗎?
大家都太想揀現成的軟柿子吃!以為學好這些有現成程式碼的技術,就可以跳過長時間的基礎研究學習,直接就能做出很AI,能賣錢的軟體!事實上是我沒聽過甚麼公司真的這樣賺到錢,多半是聞著吃不著,尤其是影像辨識,都是開工順利,卻遲遲無法達標高辨識率,一直無法收工結案,怎麼踹都踹不出一個洞來!
同時間,我們這種直接用科學原理解題的烏龜,反而每次都可以按時跑到終點!我們公司的影像辨識專案從來就不曾失敗過!既然如此,為何那些熱門的Open Source還是被吹捧得那麼厲害呢?其實只是外行人越是相信這條捷徑可以通,那各種教學商機就越大!他們一定會使命必達的把你送到不上不下的「半路」上!你其實永遠不可能靠那些技術製作出有商業價值的產品來賣,但是教你這些技術的人,則教完收錢也收工了!
這些其實自己都無法用自己教的技術做出軟體的人,就是會最大力吹捧這些技術很神奇的人!正如鼓勵你投資未上市股票的詐騙集團啦!那些投資不是完全不存在,也不是完全不可能獲利,但是賺錢成功的機率都被過度炒高了!我們的俗話就稱他們是詐騙集團啦!Open Source當然有用,但絕對沒這麼好用,相對於從問題與原理著手,其實還更麻煩!越是困難的軟體研發越是如此!
限會員,要發表迴響,請先登入