close

程式存在的目的是:

協助設計師快速撰寫出機器能系統化處理的功能,然而近年來越來越多人沒有辦法左右程式,而變成被程式左右之,我姑且將此現象稱之為『程式異化』。

 

馬克思認為,在資本主義社會中,工人創造了財富,而財富卻為資本家所占有並使工人受其支配,因此,這種財富及財富的占有、工人的勞動本身皆異化成為統治工人的、與工人敵對的、異己的力量,這就是勞動異化。 

 

從電腦產生之後程式的發展逐漸從低階程式語言(機器語言、組合語言),到現在的高階語言(程序性語言、非程式性語言)等等,一切的目的都是為了讓設計師可以簡化開發時的進入障礙,盡可能讓開發者可以專注在邏輯流程,而非指令底層之複雜運作。

 

這幾年我常在面試的過程、教書跟工作的過程聽到許多人說:我一定要會java因為很多人用、我一定要會android因為手機程式很熱門、我一定要會ruby因為開發速度很快。這是一個很有意思的現象,大家只知道要往熱門的走,但當我開始問:ㄟ你知道什麼是臨界區間嗎?你知道什麼是ThreadProcess的差異嗎?你知道什麼是Polymorphism嗎?你知道design pattern嗎;此時大家常一臉茫然,也代表越來越多人都變成知其然而不知其所以然了。小心這個現象代表你被程式異化了。

 

進幾年越來越多年輕人常常會呼叫Androidapi但到底Android的價值在哪裡、核心的運作原理是什麼,往往都不知道,那到底程式存在的目的是要讓我們盡情的使用,還是變成有這一個熱門的程式存在就開始迫使我們必須去學習如何撰寫程式碼。試想java幾年就紅遍天下了、ruby多久就也竄出來了、而Android更是快速的席捲手機應用程式的世界,只是因為此程式是目前市場的主流就開始學習指令,撰寫程式。那相信未來會有更多好的程式語言出現,不同的指令將一輩子跟你做好朋友,也就是為了工作你得要不得不被更好的程式所驅使。

 

若還是一昧的只知道api而不去深耕資結、演算法、作業系統、設計模式、物件導向、系統分析等基本工的話,我想台灣的軟體產業永遠就要等著西方的架構師來勞役我們。硬體代工已經讓台灣吃了15~20年的鱉了,不是說賺不到錢,而是總為了賺錢被國外擁有IP的大廠所驅使,所有技術授權、高階設備總是掌握在老外手上,為了生活大家只能咬牙配合,難道還要走向軟體代工的局面嗎?

 

台灣該怎麼走,我想李家同教授在去年出了一本『我們需要第二次的工業革命』,我想軟體產業一樣要痛定思痛了,軟體產業的第二次革命早就開啟動了,該開始深耕基礎,語言的語法真的不是重點,改變將整體的framework設計能力、系統架構力、設計模式活用(而不是每天都死背)O.O.的實際理解。諷刺的是我還常問許多工作很多年的工程師到底什麼是call by valuecall by address,老實說盡然很多人講不出來,都是遇到邏輯錯誤才開始debugdebug後也是解掉就不去追究其原理了。

Web1.0的時代都過去那麼久了,台灣的SI業者該好好審視一下在Web2.0的時代中為什麼幾乎沒有台灣的角色。當很多學生問我資訊業在台灣好像沒有什麼未來。其實,在世界上現在許多很紅的公司都是資訊業,甚至還都只有純軟體跟平台而已(googleebayfacebook…族繁不及備載)。所以商機多的是,但如果思考模式跟努力的方向不改變,程式異化還是會持續跟著辛苦的工程師朋友們。

arrow
arrow
    文章標籤
    程式異化論
    全站熱搜

    劉逸 發表在 痞客邦 留言(2) 人氣()