轉自:碼農翻身
程式設計師都知道,美帝在計算機領域非常厲害,我們和美帝的差距很大,但是到底有多大呢?
我們平時忙於寫程式碼,沒有精力對技術做追根溯源, 所以也就沒有直觀的、切身的體會。
美帝在這個領域的積累實在是太深厚了,我們和美帝的差距實在是太大了。
一、資料庫比如平時經常用的關係資料庫,大家可能都知道的是這些:
關係理論是美國人科德1970年提出來的。SQL也是美國人張伯倫和博伊斯在IBM發明的。事務處理技術是美國人Jim Gray開創的,他提出了原子性(A),一致性(C)和永續性(D)。但是很多人不知道的是:
B Tree是美國人Edward M. McCreight和德國人Rudolf Bayer 在美國波音工作時發明的,它的變體B+ Tree是資料庫索引的基礎,率先被應用到IBM 的VSAM 中。
IBM的System R最早在資料庫查詢最佳化中使用了動態規劃(這也是美國人Richard Bellman在50年代發明的演算法)
關係資料庫在剛興起的時候受到網狀資料庫“無情”地打壓,網狀資料庫的掌門巴赫曼和科德還有一場著名的論戰。
後來IBM透過System R, 加州大學伯克利分校透過Ingres才證明了關係資料庫的能力,Oracle 透過和美國政府的專案才讓SQL成為標準,然後在八九十年代,各個產品Oracle ,Sybase, Db2, SQL Server, Informix,MySQL等百花齊放。
很可惜,這些精彩的故事發生的時候,我們還在折騰,還在緩慢回血中。
二、程式語言再比如程式語言, JavaScript 是前端的王者,布蘭登在設計它的時候,借鑑了很多語言:
基本語法借鑑了C (貝爾實驗室) 和 Java(Sun公司);函數借鑑了Scheme (MIT);原型繼承借鑑了Self (施樂PARC);正則表示式借鑑了Perl (美國人Larry Wall)字串和陣列處理借鑑了Python (荷蘭人Guido van Rossum)除此之外,我們耳熟能詳的語言還有 :
Smalltalk(施樂PARC)C++(貝爾實驗室)C#(微軟)VB(微軟)Go(Google)Lisp(約翰·麥卡錫)甚至連讓兒童學習程式設計的LOGO (MIT), Scratch (MIT)也都誕生在美國。從過程性語言到面向物件,從命令式到函式式,從編譯到解釋,再到虛擬機器,美帝玩得風生水起。
三、作業系統在作業系統這個大冰山上,程式設計師日常看到的是浮在上面的Windows (微軟), Linux(開源), Mac (蘋果),Andorid (Google), iOS (蘋果)
冰山之下,是大型機,小型機,PC長達幾十年的爭鬥和“累累白骨”。
OS/360 (IBM的世紀豪賭)CTSS (MIT實現的第一個分時共享系統)Multics (通用電氣和貝爾實驗室)VAX/VMS (DEC)Unix (貝爾實驗室)BSD (加州大學伯克利分校開發的Unix 分支)CP/M (Gary Kildall 開發的PC 作業系統 )DOS(微軟)OS/2 (IBM)NeXTSTEP (喬布斯的NeXT公司開發的作業系統)在計算機體系機構領域,美國誕生了儲存程式,RISC等原創思想,爆發過RISC和CISC之間的激烈戰爭。
Sun公司的SPARC處理器,DEC 的Alpha,SGI 的MIPS,Intel 的RISC處理器 i860, i960,IBM 的Power都曾參戰。
在網路和通訊領域,有夏農的資訊理論,分組交換思想,乙太網,路由器,TCP/IP......
虛擬化,編譯器,快速排序,RSA演算法, 滑鼠,GUI, MVC,RPC.....
這個列表還不包括應用層的軟體(Apache, Tomcat,Hadoop, Docker, k8s.....), 如果繼續羅列下去,這個列表會很長很長, 我不再列了。
四、IT水平看到這裡,你可能會理解任正非所說的話了:美國仍然是世界的科技燈塔,我們仍然要一切向先進的人學習。
計算機這座大廈幾乎是美國人構建起來的,這句話毫不為過。
我經常在想,中國的IT業起步雖晚, 但這二十多年也發展得很快,誕生了幾個世界級的網際網路巨頭
比如Dubbo,這是個很優秀的、高效能的分散式服務框架,但是它的本質是什麼呢?RPC !Dubbo在RPC的基礎上加上了服務的排程、發現、監控、治理,相當於擴充套件。
而RPC是在1981年,卡耐基梅隆的計算機博士Bruce J. Nelson發明的技術。從那以後相繼出現了CORBA, Java RMI, XML-RPC, SOA等各種技術,Dubbo和他們一脈相承。
五、總結有人可能要說,你對中國的期待太高了,在計算機領域,除了美國以外,別的國家都不怎麼樣嘛。
這句話也不準確, 芬蘭誕生了Linux , MySQL , 瑞典的愛立信發明了Erlang ,英國有ARM , 瑞士有Pascal。
以色列能發明ICQ,防火牆,荷蘭人能發明Python, 日本能發明Ruby, 巴西能發明Lua 。
再說了,我們中國是個大國,我們的理想可不僅僅是那些小國能比擬的, 我們可不僅僅想在幾個領域突破,而是要在各個領域,大範圍地碾壓。
我相信在中國應該有一位這樣的天才程式設計師, 他也遇到了Rayan Dahl類似的業務場景,甚至想到了使用V8在伺服器端執行JavaScrpt的方法,但是他整天被需求壓得喘不過氣來,業餘時間被996榨乾,回到家中,累得根本沒有時間和精力去鼓搗的Node.js......
我也相信中國有很多天才的小孩,他們的腦海中充滿著奇思妙想,就像資訊理論之父夏農那樣,特別擅長把兩個不相干的領域拉扯到一起,激起思維的火花,只不過他們很難有機會去施展,因為從小學開始,他們的時間就要被大量重複的作業和各種培訓班所佔據,要想讓他們自由發展,不走尋常路,家長將會背上很大的風險。
這種狀況會持續多久呢,什麼時候會改變呢?