科技會過時?
不諳編程或是編程初學者常常會有一個印象:就是資訊科技發展很快,一種最新技術可能數年又會變得「不再流行」,又時時會有一些新穎的科技流行語(Buzzword),早幾年是雲端、大數據,過了一會又是數據科學、人工智能、現在又出現了所謂的區塊鏈技術。編程初學者,在沒有先前經驗的情況下,往往無所適從,不知如何是好。
由蒸汽機講起
要理解科技變遷的原因,最好的方法莫過於觀察科技一直以來的發展歷史:蒸汽機這個名詞,聽起上來非常十九世紀,蒸汽火車是只有老一輩才曾經坐過的交通工具,十九世紀英國發明家占士.瓦特(James Watt)改良原有蒸汽機,正式開啟工業革命的時代。蒸汽機在工業時代不可或缺,當時出現了蒸汽火車、蒸汽船、甚至蒸汽推動的汽車。二十世紀初,內燃機(Internal Combustion Engine)的發明,使傳統的蒸汽機,慢慢退出歷史舞台,今時今日的汽車及輪船,皆是由內燃機所推動的。
內燃機與蒸汽機最大的分別,在於蒸汽機是外燃機,也就是以燃料在容器外加熱,將釋放之熱能轉化為機械能,從而推動機器。內燃機則相反,將燃料放於容器內加熱,既是燃料也是介質。 內燃機成為現今絕大多數交通工具的引擎,原因就是內燃機的能量轉化效率較多,約有三至四成,相比起 蒸汽機的一至兩成,改善良多。
那蒸汽機就完全被人類文明摒棄了嗎?當然不是,蒸汽機同內燃機其實在性能上各有優劣,蒸汽機非常適合有恆常(constant power output)輸出的情況,也就是不適合經常改變負載(Sudden Loading Changes)。因此相對而言,在汽車的情況,行行停停的汽車,使用蒸汽機,遠比使用內燃機無效率。反之,在發電廠的世界,基本上全都使用 蒸汽渦輪發動機(Steam Turbine),因為供電輸出必須恆定,發電廠不會行行停停,在這種情況下,使用蒸汽機就比內燃機更有效率。
資訊科技的情況
資訊科技的情況,與上述情況類似,任何改變,必然是由於有一個明顯的好處,才會推動技術的進步。就用近年的Buzzword作為例子:
1. 雲端計算(Cloud Computing)是由於現代應用程式需要快速擴張負載能力(Scale Up loading),傳統自行託管的數據中心方式,已經無法達至如此的需求,想像一下,要在傳統的數據中心增設一部伺服器,起碼要一個星期。相較之下,在Amazon Web Service上增設一個EC2,只是十分鐘的問題。
2. 大數據的出現,是伴隨著雲端計算的發展而壯大,未有雲端計算之前,處理大量、多種類的數據是一個複雜的問題,要對數據加以分析亦難以成事。當數據不論容量、種類、收集速度都上升的情況,大數據處理工具如Apache Spark、Apache Hadoop等就應運而行。
3. 完成處理數據後,就開始可以對數據進行分析及視覺化,要處理數據,運用的就是數據科學。數據科學本身是由編程加上統計而成,正是數據量大幅增加使數據科學不可或缺。也正是數據科學的發展,令使用深度學習的難度也大大降低。
總結
資訊科技與傳統科技無異,都是正常的科技發展進程,感覺上資訊科技發展較快,是因為資訊科技較為年輕,不及傳統科技多年的高速發展,才有變化較快的錯覺吧。