12306是一個很糟的網(wǎng)站,反應(yīng)速度慢,錯誤率高,安全性差。隨著它的代碼被公開在網(wǎng)絡(luò)上,關(guān)于這個網(wǎng)站是《程序員低級錯誤大全》的調(diào)侃隨即出現(xiàn)。這里且不討論這個網(wǎng)站到底有多么糟糕,也無意說它能夠贏得招標這個事實背后是不是有什么別的問題。
我們下面講個故事,和12306的故事類似,我們從里面可以看出一些問題:
國內(nèi)某大能源集團曾有一個1.5億的企業(yè)信息化方案,用IBM 90年代陳舊系統(tǒng)框架。投資中60%被硬件賺走,大部分是IBM等公司的服務(wù)器。技術(shù)授權(quán)又占20%,還有其它軟件有10%-15%。產(chǎn)品效果類似12306,不過因為該集團內(nèi)部訪問流量沒有12306這么夸張,所以也就捏著鼻子用了。這么一個不算復雜的應(yīng)用,居然用70名開發(fā)人員,足足干了快兩年。算下來平均每個員工的收入也就每年5萬塊錢。
這樣的開發(fā)狀況,是國內(nèi)大型企業(yè)內(nèi)部信息化方案實施的一個普遍情況。
考慮到12306售票系統(tǒng)涉及到比上面提到的信息化項目復雜得多的軟硬件應(yīng)用,要服務(wù)的人群更加龐大等等因素,金額達到3.3億,按照國內(nèi)業(yè)界的話來說:不是多了,而是少了。其中已經(jīng)沒有養(yǎng)活一只“碩鼠”的余地。
開發(fā)上面所說項目的公司,管理、策劃、客戶源都是清華出來的。這些人非常喜歡用IBM那些90年代的架構(gòu)做東西,而IBM從那時到現(xiàn)在實際已經(jīng)沒有新的軟件做出來。其中7成的錢IBM等公司賺走,實施公司拿一點人工費。
這里就要提到,IBM和微軟常年與中國的許多重點大學進行“合作”,向這些大學支付大筆資金,讓他們只教自己的軟件框架。而大學為了提高“就業(yè)率”,也很高興推薦自己的 學生去這些大公司。而在國外的大學,一般是不教微軟的框架的。主要教學內(nèi)容是數(shù)理邏輯和編程邏輯。這樣的學生可以自行學習任何軟件框架,這是國內(nèi)的大學生目前所欠缺的。
近段時間“中國的超級工程”電視片很火,如果我們看一下12306的相關(guān)數(shù)據(jù),就會發(fā)現(xiàn)這個項目,本應(yīng)成為又一個讓中國人自豪的“超級工程”的。
據(jù)網(wǎng)友統(tǒng)計,截至1月5日,互聯(lián)網(wǎng)權(quán)威流量排名機構(gòu)Alexa顯示,元旦一周,12306網(wǎng)站的“一周平均排名”為339,日均IP為194萬。而國內(nèi)航空網(wǎng)絡(luò)售票網(wǎng)站“travelsky.com”的“一周平均排名”為11340,日均IP為8萬多。相比之下,火車票的需求為機票的25倍左右。
和普通的電子商務(wù)網(wǎng)站相比,12306的另一個關(guān)鍵的設(shè)計難題還在于其訪問高峰是在每天固定時間投放客票后的極短的時間內(nèi)爆發(fā)式增長的,對于網(wǎng)絡(luò)流量提出了嚴峻的考驗。
把這樣一個系統(tǒng)做好,無疑需要強大的工程能力,做出一個軟硬件方面都達到 水平的網(wǎng)站設(shè)計的。
然而最終12306網(wǎng)站卻以現(xiàn)在的形象出現(xiàn)。
我們暫不考慮傳聞中的高層人事變動帶來的影響,從技術(shù)的角度說,到底出了什么問題?
如果我們用建筑來打比方的話,鐵道部掏了3.3億,說他們要造一個容納全國乘客同時看比賽的運動場。合理的選擇是造一個“鳥巢”,主體用鋼結(jié)構(gòu),內(nèi)部設(shè)計按照21世紀的標準確保觀眾有序入場退場,要設(shè)計廁所和服務(wù)設(shè)施等等。然而承建的公司卻是一家小施工隊,他們只有很少的技術(shù)人員,而且缺乏經(jīng)驗。由于不會用先進的工程機械,招了一大群剛剛進城打工的農(nóng)民來當力工,然后拿出一張上世紀90年代的河北廊坊體育場的圖紙。把主體結(jié)構(gòu)改成木制,同時把規(guī)模放大十倍。經(jīng)過漫長的施工,他們終于完成了一個搖搖欲墜、丑陋又巨大建筑物。最終這個沒有經(jīng)過測試的體育場在大批觀眾入場后轟然崩塌。
類似的情況,在國內(nèi)的網(wǎng)絡(luò)和軟件領(lǐng)域?qū)乙姴货r。
同樣的情況也曾出現(xiàn)在高考查分網(wǎng)站上。國內(nèi)的銀行網(wǎng)站至今不能支持非windows操作系統(tǒng)電腦的網(wǎng)上銀行業(yè)務(wù)。它們的投資,大多也不比12306少。
有人要開始質(zhì)疑紀檢監(jiān)察部門不作為。然而在軟件行業(yè)內(nèi),卻對這種情況覺得“很正常”。
原因是什么?
一個讓人很難相信的數(shù)字,在中國進行做網(wǎng)絡(luò)開發(fā),達到與國外同類軟件相似性能,需要10倍的人力成本。中國程序員的收入明明才和普通產(chǎn)業(yè)工人差不多,為什么會出現(xiàn)這個10倍的成本呢?
軟件業(yè)內(nèi)人士指出,首先在于技術(shù)結(jié)構(gòu)落后。
兩個美國的周工資5000美元的程序員能夠在2天內(nèi)完成的工作,到了國內(nèi)就需要40個拿4000人民幣月工資的程序員干一個月,從生產(chǎn)效率上說,相當于人家開著鏟車,而我們還在揮舞鏟子?偝杀竞嫌,美國人需要1萬3千元人民幣,中國程序員總共拿了16萬元人民幣。從成本上來說,達到同樣的效果,人力成本國內(nèi)是國外的10倍還多。
國內(nèi)的軟件行業(yè)的通行標準相當于美國的90年代水平,以微軟,IBM等公司的框架為基礎(chǔ)進行開發(fā),這就要向這些大公司繳納高額的費用來獲得他們的授權(quán)和技術(shù)支持。這些10多年前的軟件代碼執(zhí)行效率以今天眼光來看非常低下,并且非常復雜,也只有這些大公司自己玩的明白,國內(nèi)公司不可能掌握它們的核心技術(shù)。
這就是說,國內(nèi)的軟件業(yè)實際上是用上世紀的簡易房的圖紙修修補補來設(shè)計今天的摩天大廈的,而且它們多數(shù)還不掌握建筑學的基本知識,所以出現(xiàn)任何紕漏都不奇怪。
導致國內(nèi)軟件公司現(xiàn)狀的原因是國內(nèi)的開發(fā)者本身水平總體較低,大部分國內(nèi)軟件公司的開發(fā)者都是俗稱“碼農(nóng)”的一批人,他們多只學過大公司軟件框架的知識和一些電腦語言基礎(chǔ),由于沒有學過數(shù)學算法邏輯和編程邏輯基礎(chǔ),所以學習新軟件的能力很差。國際上,合格的程序員80%的知識和能力是依靠自學的。
我們還是用形象的語言來解釋下這種情況。
國際標準的程序工程師應(yīng)該是會自己炒菜的廚師,然后通過在飯店里自己掌勺逐漸提高水平,最后成為能獨當一面的主廚,而國內(nèi)的“碼農(nóng)”僅僅是簡單的重復勞動,就相當于麥當勞里打工的學生,工作很辛苦,薪水很低,但是永遠學不會如何炒菜。
一個更不合理的現(xiàn)象出現(xiàn)在那些被認為是“精英”階層的 大學軟件工程的碩士,博士們,他們中很多人都在大學中微軟IBM等大公司組織的招聘會上被選中。盡管給他們的工資不低,但是他們實際承擔的往往只是軟件測試和外包程序開發(fā)等流水線工作。這類低級的工作和還不錯的收入很快就會消磨掉這些精英的進取心和獨立開發(fā)能力。
這就導致中國的軟件行業(yè)人力資源的“金字塔”是倒置的。
頂尖的精英人才在外國大公司里從事應(yīng)該由大量的低端人才從事的流水線作業(yè),而設(shè)計工作交給了那些沒有能力做好設(shè)計的“技術(shù)工人”。為了完成開發(fā)工作,軟件公司往往用大量的“碼農(nóng)”采用人海戰(zhàn)術(shù)。
這就是國內(nèi)軟件產(chǎn)業(yè)充斥缺乏開發(fā)能力,試圖依靠數(shù)量龐大的非熟練工人取代工程師和技術(shù)人員的“山寨”軟件公司的原因。
那么這就引出我們必須要問的下一個問題。
我們知道,一個正常的市場上,這種無法提供合格產(chǎn)品的公司,或者開發(fā)成本十倍于正常水平的畸形公司根本就不應(yīng)該能夠生存。但在國內(nèi)市場上他們繼續(xù)生存著,盡管并不滋潤。
原因很簡單,中國的軟件市場,不正常。
眾所周為了國家安全的原因,我國對國外的很多軟件封閉了網(wǎng)絡(luò)應(yīng)用。于是,那些競爭力強大的國外“大鱷”無法進軍國內(nèi)。一些壟斷大公司在國外早已因為21世紀初開始興起的免費開源軟件的風潮退出了商用軟件市場,但它們卻可以在國內(nèi)培養(yǎng)一批“徒子徒孫”,他們只會使用這些壟斷公司的的軟件框架,壟斷公司因此可以在國內(nèi)大量吸金。正如我們前面第一個例子中提到的,在世界范圍內(nèi)已經(jīng)不做軟件的IBM公司,依然能在中國賣出他們90年代的老軟件。順便,由于老軟件的執(zhí)行效率低,他們又可以賣出高價值的服務(wù)器。再加上相關(guān)的授權(quán),許可證,最終導致全系統(tǒng)成本加在一起要比國外的類似功能的商用軟件高出十幾倍甚至幾十倍。
言而總之,外國壟斷公司,利用中國的封閉市場環(huán)境,通過資助中國的教育機構(gòu),讓中國的普通開發(fā)者只是一群效率低下,只會使用這些壟斷公司提供的模塊化開發(fā)工具的“碼農(nóng)”;把高端人才用高薪誘騙到自己旗下,讓他們從事扼殺創(chuàng)造力的簡單工作。中國的各路軟件公司,猶如民國初年被各路帝國主義所控制的軍閥們一樣在中國這塊戰(zhàn)場上混戰(zhàn)不已。而真正撈到大錢的,是這些外國壟斷公司。所有中國人在這場陰謀中,都是輸家。
在這種條件下,我們就可以理解為何12306這類的網(wǎng)站會屢屢出現(xiàn)了,因為國內(nèi)的軟件開發(fā)市場,基本上只有這類公司可以選擇。
國內(nèi)的銀行業(yè)早年設(shè)立網(wǎng)絡(luò)銀行的時候多用微軟的開發(fā)語言,當時中國的軟件環(huán)境還是盜版為主,所以看起來似乎這個語言沒有成本。并且有“微軟崇拜癥”的中國軟件公司最為熟悉。但是這為將來有一天微軟的“收網(wǎng)”留下了隱患。事實上微軟目前還忙著在中國進行個人電腦裝機市場的正版化環(huán)境營造。誰也不知道他們什么時候會開始轉(zhuǎn)向政府金融行業(yè)。銀行并非不知道這個問題。而且,這個古老的框架的安全性方面也是有隱患的。由于銀行業(yè)的特殊性,他們不能停機,目前只能捏著鼻子繼續(xù)。
國內(nèi)目前已經(jīng)有少部分網(wǎng)站開始努力擺脫大公司的束縛,比如 的電商京東網(wǎng)。他們在去年遭遇“購買死循環(huán)”錯誤事件之前用的也是微軟的開發(fā)語言,然而發(fā)生錯誤后,在京東自己無法解決的情況下,為了保住京東,微軟先后派出四批工程師,依然無法完全解決錯誤。最后京東終于決定全面轉(zhuǎn)向開源軟件。但沒有完全走出困局,因為它還在上面提到的這種模式中掙扎,不過是從虎口到狼窟而已。也就是說模式不轉(zhuǎn)變,不能解決問題,即便京東雇傭了數(shù)以千計的開發(fā)人員也無法破局。
而一開始就采用國際開發(fā)標準的淘寶體系,不但從沒有遇到國這方面的困難,還能向軟件界反過來免費提供他們自己開發(fā)的開源軟件框架。就更不要說國際電商龍頭的亞馬遜因為太過重視技術(shù)開發(fā),以至于應(yīng)對并發(fā)等問題能力過于 ,反而富余大量服務(wù)器資源,反而又成就了其成為全球最大的云服務(wù)提供商的例子了。這是路線正確的結(jié)果。
惡劣的是,中國的市場由于封閉而又“富營養(yǎng)化”,就好像發(fā)生赤潮的海區(qū),無數(shù)的低級生物的繁殖反而導致魚類因為水中缺氧而全部被悶死。
漂亮整潔的辦公樓和穿戴整齊的員工不能代表軟件公司的技術(shù)先進,在光鮮的外表下,國內(nèi)的軟件公司大多是吱嘎作響到處漏油的中古手工工場。而國外的大公司還在拿他們過時的技術(shù)推銷,尤其是推銷到教育體系中。產(chǎn)生了惡性循環(huán)。國外公司希望國內(nèi)處于封閉落后,消耗大型硬件資源的現(xiàn)狀中。
在這種狀況下,中國軟件業(yè)要終結(jié)目前這種惡性循環(huán)的怪圈,有兩種方向。
一是產(chǎn)業(yè)繼續(xù)這樣下去,但這種落后的技術(shù)狀態(tài)遲早總要有玩不下去的時候的。等比12306更加惡劣的情況出現(xiàn),就是開發(fā)成本達到連國內(nèi)財大氣粗如民航,鐵路,石油,電商公司都承受不了,同時用戶根本無法正常使用的情況遲早要出現(xiàn)。那時,中國的軟件業(yè)將迎來一次全面的崩潰,隨之而來的將是全面洗牌。這時候,那些隱身幕后的國外壟斷公司將會走上前臺,開始進行收割,向那些陶醉于“廉價”盜版軟件的中國企業(yè)和機構(gòu)揮舞起收割的鐮刀。同時國內(nèi)軟件業(yè)天下大亂。不是像國外21世紀初開源軟件崛起一樣出現(xiàn)一次革命性的進步,就是如同今日的國足一樣徹底沉淪,那時也許我們的政府也不得不向國外軟件廠商開放國門允許他們進入國內(nèi)市場。那時,缺乏掌握新技術(shù)能力的國內(nèi)軟件公司將會在這些無法抵抗的對手面前一敗涂地,國內(nèi)“碼農(nóng)”將會和90年代下崗工人一樣集體失業(yè)。
當然,還有一種可能的未來,就是國內(nèi)出現(xiàn)一批真正獨立的軟件企業(yè),依托一些有遠見,懂技術(shù)的軟件工程師,好像20世紀20,30年代從江西到延安的火種一樣,在中國大地上,最終燃起軟件行業(yè)燒盡今日不合理秩序的熊熊烈火。(川北在線綜合)
投稿郵箱:chuanbeiol@163.com 詳情請訪問川北在線:http://sanmuled.cn/