科技臺
發表文章發起投票
點解寫軟件咁X貴? 為練總拾遺 軟件技術是否五十年不變?
作者:散彈一號


朋友來訊,引述練乙錚今年四月一篇文章[0],問我意見。練總這篇文章,講香港和大陸的GDP增長,我當然不懂。(大陸的一切,我從來都不懂。)但文章裡,有一段關於寫軟件的技術,這個我反而懂。容我引述如下:

舉例說,某燕梳公司要處理大量數據,外判給一個電腦服務公司代行;為了提供這個服務,後者要購入一個新型的數據處理器,聘請一位軟件顧問工程師工作一個月。很明顯,處理器的技術進步一日千里,性價比不斷上升,但軟件編寫的技術就不會那樣突飛猛進,故此,處理同樣複雜大量的燕梳數據,50年前的硬件部分成本可能很高,佔總成本的九成;

15年前,硬件技術進步了,硬件成本可能只佔總成本的一成,但編寫軟件的技術沒有大變;到了今天,硬件成本更可能佔不到總成本的1%,軟件還是得一行一行地編寫,有關技術可謂「五十年不變」!那麼,「替燕梳公司建立一個數據處理系統」這個服務的製造業技術含量本來很高,佔成本的大部分,但到後來就差不多微不足道,變成上述的補習服務一樣,主要是一種人力心智的投入,生成這個服務的效率因而不會隨着時間過去而顯著提升。

文中聲稱「軟件技術五十年不變」是一個很大膽的觀點。如果單以字面上理解,這句話一定是錯的。舉個例,如果我要寫一個程式,把輸入的資料排序(sort),三四十年前的程式大概像這樣:


以上程式,大約有六十行程式碼,輸入和輸出示範:



二十幾年前,同樣的程式用 C language 寫,縮短到二十行:



十年前,用 python 寫,一行就夠






誰說「軟件技術五十年不變」呢?

事實上,軟件技術日新月異,從事電腦科技的人經常抱怨要花很多時間更新知識,追上潮流。潮流這東西雖然一時一樣,但整體而言,新技術的確會令編寫程式的時間大大縮短。一個好的軟件工程師隨時懂得十幾種程式語言,二十幾種軟體框架,目的只是能夠更有效編寫系統。做 IT 行業,大家都擔心如果追不上潮流會被取締。就算今天收入略勝於儕輩,面對著一身新潮技術的後進,也不知幾年後能否保住飯碗。如果有「軟件技術五十年不變」呢支歌仔唱,IT專業人士可以食老本,靠「N年經驗」自持資歷高深的老屎窟,那將會是多麼美好的事情。

服務業的產值增長速度一般而言低於製造業?

也許有人會問,既然軟件技術越來越先進,為甚麼軟件的價錢卻越來越貴?練總的文章提到「工業」和「服務業」的分別,且讓我分析一下為甚麼「工業」的成本跌得那麼快,但「服務」的成本卻相對穩定。

傳統工業,大多數都是製造商品 (commodity),然後以市價賣出。一般製造業的經營方式,是佔據有大量潛在買家的市場,用經濟規模(economies of scale)減低成本。阿當史密夫在《國富論》的經典例子,是一粒釘的製作過程。因為釘是有大量需求的商品,廠家可以把每個製作過程拆分,用分工合作的方法,減低成本。後來廠家經常使用的生產線(assembly line),就是因分工而變得可能的技術進步。分工還有一個好處,就是每個階段的工作變得很簡單,可以用機械把工作自動化。所謂工業的技術進步,與產品的需求量的關係是密不可分的。每件機器成本也不小,如果產量不大,人手製作的成本可能更低。所以,無論技術如何先進,沒有有效的規模,成本是不能夠壓下去的。

雖然電腦處理器號稱是「高科技」產品,但它的經濟模式,仍然像傳統工業。總之就是由資本家投資人才器材,用既有的方法,把商品製造出來。市面上除了英特爾公司(Intel)壟斷了高端市場,其他製造處理器的玩家都不見得吃香,因為就算是這種「高科技」工業,競爭也很大。事實上,處理器這種東西,是一種明白電晶體 (transistor) 的基本運作後,就原則上任何人都懂得堆砌出來的東西,只不過廿一世紀的處理器有幾億個電晶體而已。當技術問題被英特爾, ARM Holdings 之類的公司解決了,餘下就只不過是資金和人力資源方面的問題。製造低端的處理器,也許可以說,跟製衣業「差不多」。至於高端的處理器,雖然英特爾投放了大量資源做科研,但因為市場上對處理器的需求仍然很大,所以市場上的買家把成本攤分了,每個買家承受的成本相對很小。

為甚麼軟件這麼貴?

那麼,軟件又是怎麼回事?練總說軟件很貴。我不同意。商品化(commoditized)的軟件,其實大多數都很便宜。在經濟學的角度,它不得不便宜。軟件的複製成本近乎零。只要沒有壟斷的情況,市場對某種軟件的需求越大,它的價錢就會越低,因為它的供應沒有技術上的限制。就算微軟公司曾經一度壟斷市場,微軟的市面上的產品也不見得很貴 (起碼不是幾千萬這樣子)。這些年來,微軟花了不知多少億美元做R&D,結果視窗系統還是在幾百美元以下的價錢。

事實上,坊間免費的「開源軟件」多不勝數,例如經常用作伺服器系統的 Linux,可以隨便在網上下載,任改任用,完全免費。一般人也許不知道坊間有很多開源作業系統,功能上和視窗系統相若,都是免費的。[1] 其實,這二十年來開源軟件推動互聯網科技發展功不可沒,甚至是主因之一。軟件工程師業內有個不文規矩,就是當有人解決了一個常見的技術問題,只要不影響公司的「核心業務」,他應該把這個技術變成開源軟件,和全世界免費分享。[2]

那麼,為甚麼燕梳公司會覺得軟件很貴?能夠處理大量數據的軟件,成本是零。伺服器可以用 Linux,數據庫用 MySQL 或 Postgresql。以上都是成熟可靠,能夠處理大量數據的軟件。但燕梳公司要求的,不是「商品化」(commoditized)的軟件,而是度身訂做(made to order)的軟件。電腦服務公司接到燕梳公司的要求,也許他們會利用 Linux 或 MySQL 作為「零件」去編寫系統,或者把這些「零件」加工。在此之前,外判公司要先了解客戶的要求,把每一個細節都搞清楚,然後才可以為客戶寫一個度身訂做軟件。而這個由了解、到編程、到完成的過程,最繁複,最用時間,最用錢。你問,為甚麼不能改善這個「技術」,令價錢變得更低?這就回到根本的問題:經濟規模(economies of scale)。處理器的成本低,技術成熟,是因為同樣的處理器,可以賣給千千萬萬個客戶。燕梳數據系統貴,沒有現成的技術,是因為……世界上有幾多間大型燕梳公司?


詳細內容請看原文

http://style.vjmedia.com.hk/2015/06/11/7343

Good 1Bad 0
11/06/15 5:40 PM
引用快速引用

本貼文共有 17 個回覆
此貼文已鎖,將不接受回覆
O:-)
#-2411/06/15 6:19 PM
引用快速引用
O:-)
#-2311/06/15 6:39 PM
引用快速引用
#-2211/06/15 6:40 PM
引用快速引用

#-2111/06/15 6:47 PM
引用快速引用
碌咗對風火輪入黎
#-2011/06/15 6:51 PM
引用快速引用
未睇內文我諗起個故仔
有個。工程定測量師去幫人睇樓係張圖畫個圈收五萬比人屌咁貴
條友就話貴在圈出果個位既知識O:-)
#-1911/06/15 6:55 PM
引用快速引用
留名
#-1811/06/15 7:02 PM
引用快速引用
未睇內文我諗起個故仔
有個。工程定測量師去幫人睇樓係張圖畫個圈收五萬比人屌咁貴
條友就話貴在圈出果個位既知識O:-)

香港班仆街只看結果不看當中知識同技術含量xx(
#-1711/06/15 7:09 PM
引用快速引用
都sort sort地
#-1612/06/15 1:53 AM
引用快速引用
未睇內文我諗起個故仔
有個。工程定測量師去幫人睇樓係張圖畫個圈收五萬比人屌咁貴
條友就話貴在圈出果個位既知識O:-)

香港班仆街只看結果不看當中知識同技術xx(


企硬就得
嫌貴證明唔係自已個客人
去搵ive呀sir 搵學生整最好
#-1512/06/15 2:05 AM
引用快速引用
真心唔知二三十年前D人點寫program

第一幅圖D CIL真係難到仆街[sosad]
#-1412/06/15 2:06 AM
引用快速引用
未睇內文我諗起個故仔
有個。工程定測量師去幫人睇樓係張圖畫個圈收五萬比人屌咁貴
條友就話貴在圈出果個位既知識O:-)

香港班仆街只看結果不看當中知識同技術xx(


企硬就得
嫌貴證明唔係自已個客人
去搵ive呀sir 搵學生整最好


散仔既價錢,大師級既服務 O:-)
#-1312/06/15 2:14 AM
引用快速引用
未睇內文我諗起個故仔
有個。工程定測量師去幫人睇樓係張圖畫個圈收五萬比人屌咁貴
條友就話貴在圈出果個位既知識O:-)

香港班仆街只看結果不看當中知識同技術xx(


企硬就得
嫌貴證明唔係自已個客人
去搵ive呀sir 搵學生整最好


散仔既價錢,大師級既服務 O:-)


有成功例子既。
有D簡單野平平地搵學生係win win
但上太空又落翻黎,成TEAM人審條片,十幾個人比意見,就要比翻十幾個人審條片既價錢
#-1212/06/15 3:01 AM
引用快速引用
係時候用 linux

#-1112/06/15 7:13 PM
引用快速引用
係時候用 linux



好耐無蒲頭喎
#-1012/06/15 7:19 PM
引用快速引用
係時候用 linux

好耐無蒲頭喎

忙呀嘛大佬 #adore#
#-912/06/15 7:31 PM
引用快速引用
係時候用 linux



#-813/06/15 12:01 PM
引用快速引用
發表
請先登入以發表回覆