2009年4月26日 星期日

產業革命與編譯技術

農牧業的興起在人類的歷史中是一個非常巨大的里程碑,不少進步史觀的歷史學家都認為,如果沒有農業,我們的生活將會是萬古如長夜,不僅過著茹毛飲血日子,像"阿宅"(或許阿宅這個名詞也不會出現了)如我,每天為了三餐的溫飽而煩憂,根本無法宅在家裡甚麼都不會,更不用說有時間在電腦(??)面前敲敲鍵盤,寫寫心得了。然而,很顯然的,這個進步史觀是有問題的(就顯而易見的就是我們阿宅們用了更不符合投資報酬率的工作時間來換取溫飽了),這算是一個無心插柳柳橙汁的結果,不過這不是我想討論的重點,所以就帶過了。

很多人會問,現今的世界為什麼是現在這個樣子?中古世紀的時候,西歐是個文化科技的輸入國,而現在看似社會保守,不講究科技發展的阿拉伯國家,當時可是科技的輸出國。甚麼事情改變了這個世界?這個問題不算難,很多人都會回答是工業革命,事實上"近因"就是如此,遠因很長,就不多談(對於這個問題,槍砲病菌與鋼鐵是個不錯的專書)。附帶一提的,這個世界的產業革命分成兩大類,一個稱英國式產業革命,一個稱為德國式產業革命,其他國家的產業革命模式基本上是逃不了這兩種模式的範圍的。(宅灣?他是走德國式產業革命的路線)

當一個國家想要發展工業時,其中有一個很重要的指標項目叫基礎建設,如果沒有這些基礎建設,這個社會將無法支撐起一個所謂的"現代化國家"的工業。在這個時期,鋼鐵被稱為工業之母,因為沒有這些鋼鐵,各式各樣的基礎建設就無法完成,一個國家生產鋼鐵的數量,當時就是這個國家工業實力的基礎數據標準(當然在21世紀的今天,鋼鐵仍然還是很重要,但鋼鐵產量一定不是等同於工業實力了)。當然,鋼鐵很重要,但只有鋼鐵是沒啥用的,如果沒有辦法賣出去或製成再製品(這些再製品的價值會比鋼鐵好很多),這些東西其實也無用武之地。

話說回來,現在是21世紀,我們都叫他資訊時代,那資訊時代的基礎建設是甚麼?有些的硬體跟鋼鐵一樣,沒有軟體把他弄成再製品是賣不了多少錢的(可以引伸為,如果沒有軟體跑在intel cpu上,這個硬體其實也賣不了多少錢),理所當然的,"系統軟體"就成為了資訊時代的新基礎建設,這些基礎建設中,其中一個很重要的元素叫"編譯器技術"。沒有編譯器,人們就會被迫使用不親近人類的低階語言,軟體的產能自然會降低,軟體工程的書做過研究,語言不是銀彈,但使用低階語言來開發軟體,開發的效率降低是明顯的。

個人認為台灣編譯器技術的研究和能量算是貧乏的,也間接造成計算機結構的研究受其影響。然而,現在是一個充滿編譯器的世界,身為一個工程師,每次聽到編譯器技術,覺得深不可測(或是腦海忽然浮現起自動機的回憶)而輕言放棄,實著可惜。就個人經驗,編譯器的基礎入門門檻的確稍高,但是其實也不會高攀不起。前輩Jserv寫了一些很好的文章"窮得只剩下 Compiler -- 淺談編譯技術的革命"來說明編譯器技術,並為編譯器技術做了一個深入淺出的剖析,就前輩所言 "編譯技術其實也可以很有趣",在這個充滿編譯器時代,就讓我們 Just Compile It !

沒有留言:

張貼留言