沒錯,我們和美帝的差距就是這么大
程序員都知道,美帝在計算機領(lǐng)域非常厲害,我們和美帝的差距很大,但是到底有多大呢?
我們平時忙于寫代碼,沒有精力對技術(shù)做追根溯源, 所以也就沒有直觀的、切身的體會。
最近畫了幾篇計算機技術(shù)溯源的漫畫,接觸到了細節(jié)以后,真是越來越心驚:
美帝在這個領(lǐng)域的積累實在是太深厚了,我們和美帝的差距實在是太大了。
1
比如平時經(jīng)常用的關(guān)系數(shù)據(jù)庫,大家可能都知道的是這些:
關(guān)系理論是美國人科德1970年提出來的。
SQL也是美國人張伯倫和博伊斯在IBM發(fā)明的。
事務(wù)處理技術(shù)是美國人Jim Gray開創(chuàng)的,他提出了原子性(A),一致性(C)和持久性(D)。
但是很多人不知道的是:
B Tree是美國人Edward M. McCreight和德國人Rudolf Bayer 在美國波音工作時發(fā)明的,它的變體B+ Tree是數(shù)據(jù)庫索引的基礎(chǔ),率先被應(yīng)用到IBM 的VSAM 中。
IBM的System R最早在數(shù)據(jù)庫查詢優(yōu)化中使用了動態(tài)規(guī)劃(這也是美國人Richard Bellman在50年代發(fā)明的算法)。
關(guān)系數(shù)據(jù)庫在剛興起的時候受到網(wǎng)狀數(shù)據(jù)庫“無情”地打壓,網(wǎng)狀數(shù)據(jù)庫的掌門巴赫曼和科德還有一場著名的論戰(zhàn)。
后來IBM通過System R, 加州大學(xué)伯克利分校通過Ingres才證明了關(guān)系數(shù)據(jù)庫的能力,Oracle 通過和美國政府的項目才讓SQL成為標準,然后在八九十年代,各個產(chǎn)品Oracle ,Sybase, Db2, SQL Server, Informix,MySQL等百花齊放。
很可惜,這些精彩的故事發(fā)生的時候,我們還在折騰,還在緩慢回血中。
2
再比如編程語言, JavaScript 是前端的王者,布蘭登在設(shè)計它的時候,借鑒了很多語言:
- 基本語法借鑒了C (貝爾實驗室) 和 Java(Sun公司);
- 函數(shù)借鑒了Scheme (MIT);
- 原型繼承借鑒了Self (施樂PARC);
- 正則表達式借鑒了Perl (美國人Larry Wall)
- 字符串和數(shù)組處理借鑒了Python (荷蘭人Guido van Rossum)
除此之外,我們耳熟能詳?shù)恼Z言還有 :
- Smalltalk(施樂PARC)
- C++(貝爾實驗室)
- C#(微軟)
- VB(微軟)
- Go(Google)
- Lisp(約翰·麥卡錫)
甚至連讓兒童學(xué)習(xí)編程的LOGO (MIT), Scratch (MIT)也都誕生在美國。
從過程性語言到面向?qū)ο螅瑥拿钍降胶瘮?shù)式,從編譯到解釋,再到虛擬機,美帝玩得風(fēng)生水起。
3
在操作系統(tǒng)這個大冰山上,程序員日常看到的是浮在上面的Windows (微軟), Linux(開源), Mac (蘋果),Andorid (Google), iOS (蘋果)
冰山之下,是大型機,小型機,PC長達幾十年的爭斗和“累累白骨”。
- OS/360 (IBM的世紀豪賭)
- CTSS (MIT實現(xiàn)的第一個分時共享系統(tǒng))
- Multics (通用電氣和貝爾實驗室)
- VAX/VMS (DEC)
- Unix (貝爾實驗室)
- BSD (加州大學(xué)伯克利分校開發(fā)的Unix 分支)
- CP/M (Gary Kildall 開發(fā)的PC 操作系統(tǒng) )
- DOS(微軟)
- OS/2 (IBM)
- NeXTSTEP (喬布斯的NeXT公司開發(fā)的操作系統(tǒng))
在計算機體系機構(gòu)領(lǐng)域,美國誕生了存儲程序,RISC等原創(chuàng)思想,爆發(fā)過RISC和CISC之間的激烈戰(zhàn)爭。
Sun公司的SPARC處理器,DEC 的Alpha,SGI 的MIPS,Intel 的RISC處理器 i860, i960,IBM 的Power都曾參戰(zhàn)。
在網(wǎng)絡(luò)和通訊領(lǐng)域,有香農(nóng)的信息論,分組交換思想,以太網(wǎng),路由器,TCP/IP......
虛擬化,編譯器,快速排序,RSA算法, 鼠標,GUI, MVC,RPC.....
這個列表還不包括應(yīng)用層的軟件(Apache, Tomcat,Hadoop, Docker, k8s.....), 如果繼續(xù)羅列下去,這個列表會很長很長, 我不再列了。
4
看到這里,你可能會理解任正非所說的話了:美國仍然是世界的科技燈塔,我們?nèi)匀灰磺邢蛳冗M的人學(xué)習(xí)。
計算機這座大廈幾乎是美國人構(gòu)建起來的,這句話毫不為過。
我經(jīng)常在想,中國的IT業(yè)起步雖晚, 但這二十多年也發(fā)展得很快,誕生了幾個世界級的互聯(lián)網(wǎng)巨頭,為什么一直沒有誕生原創(chuàng)性的、有世界級影響力的發(fā)明和創(chuàng)造呢?
可能有人會反對,中國也有很多開源的優(yōu)秀軟件嘛,沒錯,是有很多,但是這些軟件在原創(chuàng)性上還遠遠不夠。
比如Dubbo,這是個很優(yōu)秀的、高性能的分布式服務(wù)框架,但是它的本質(zhì)是什么呢?RPC !Dubbo在RPC的基礎(chǔ)上加上了服務(wù)的調(diào)度、發(fā)現(xiàn)、監(jiān)控、治理,相當于擴展。
而RPC是在1981年,卡耐基梅隆的計算機博士Bruce J. Nelson發(fā)明的技術(shù)。從那以后相繼出現(xiàn)了CORBA, Java RMI, XML-RPC, SOA等各種技術(shù),Dubbo和他們一脈相承。
相比而已,Rayan Dahl發(fā)明的Node.js原創(chuàng)性更高,因為它成功地把JavaScript、異步IO、Http Server等技術(shù)組合起來,達成了把JavaScript搬到了服務(wù)器端的革命。
5
有人可能要說,你對中國的期待太高了,在計算機領(lǐng)域,除了美國以外,別的國家都不怎么樣嘛。
這句話也不準確, 芬蘭誕生了Linux , MySQL , 瑞典的愛立信發(fā)明了Erlang ,英國有ARM , 瑞士有Pascal。
以色列能發(fā)明ICQ,防火墻,荷蘭人能發(fā)明Python, 日本能發(fā)明Ruby, 巴西能發(fā)明Lua 。
再說了,我們中國是個大國,我們的理想可不僅僅是那些小國能比擬的, 我們可不僅僅想在幾個領(lǐng)域突破,而是要在各個領(lǐng)域,大范圍地碾壓。
我相信在中國應(yīng)該有一位這樣的天才程序員, 他也遇到了Rayan Dahl類似的業(yè)務(wù)場景,甚至想到了使用V8在服務(wù)器端運行JavaScrpt的方法,但是他整天被需求壓得喘不過氣來,業(yè)余時間被996榨干,回到家中,累得根本沒有時間和精力去鼓搗的Node.js......
我也相信中國有很多天才的小孩,他們的腦海中充滿著奇思妙想,就像信息論之父香農(nóng)那樣,特別擅長把兩個不相干的領(lǐng)域拉扯到一起,激起思維的火花,只不過他們很難有機會去施展,因為從小學(xué)開始,他們的時間就要被大量重復(fù)的作業(yè)和各種培訓(xùn)班所占據(jù),要想讓他們自由發(fā)展,不走尋常路,家長將會背上很大的風(fēng)險。
大學(xué)畢業(yè),工作以后,這些天才又會被房子問題、醫(yī)療問題、孩子教育問題絆住,他們很難像Rayan Dahl那樣自由生活,追隨興趣,不能去Think Different ,自然也很難做出原創(chuàng)性的發(fā)明和創(chuàng)造。
這種狀況會持續(xù)多久呢,什么時候會改變呢?