? ? ? ? ? ——上海科泰華捷科技有限公司董事長陳榕專訪
? ? ? ? ? ? ? ? ? ? ? ? ? ■記者/張蜀? 2011年
? ? ? ? 記者手記:1977年高考的大學生意味著什么?讓我想起路遙的一篇小說《人生》里的男主人公,當年的天之驕子啊。我較陳榕先生晚幾年入清華,當年可能在學校見到過,但沒有機會相識。學生對我來說挺神秘的,我從他們那里學到了很多東西,有時甚至超過了大學老師們所傳授的知識,比如大學時沒能理解微積分,相反給我印象最深的卻是一位77屆學生激情四溢講解的斯特拉文斯基《春之祭》。而我在幾十年之后,采訪一位77級學長,也算是一個報答吧。
記者:您好,我記得《程序員》雜志以前采訪過您。
陳榕:對?!冻绦騿T》雜志社8~9年前邀請
過C++的發明者BjarneStroustrup來清華和北大講演,那次我自告奮勇去當翻譯,順便解釋了一些C++背景方面的故事,大家都比較有興趣。我1986年在美國讀書的時候就開始學習C++了,那時我所在的伊利諾大學正在設計世界上第一個用C++編寫的操作系統Choices。《設計模式》的四位作者之一RalphJohnson,他那時很年輕,一副娃娃臉,剛博士畢業,來伊利諾教書。我們跟他學習了Smalltalk和面向對象的基礎知識,當年覺得面向對象可能就是SilverBullet,我曾經花了很大工夫去研究面向對象和操作系統。
記者:我也對語言很感興趣。我認為metaphysics永遠不具有physics的豐富性,所以我更喜歡非理性的語言,比如像Perl和C。metaphysics只是一種封裝,我想這是C++的問題。不過這次采訪對象不是我,還是談您的吧,后來您怎么想到創業?
陳榕:其實我的創業非常不典型,做的事情不典型,年齡也不典型,只能說是“非典型創業”,對讀者不一定有幫助,就當故事聽吧?,F在創業一般都是二、三十歲,我創業的時候已經四十二、三歲了。我1982年大學畢業后,考上中科院計算所倪光南和竺迺剛老師的出國研究生。倪老師所在的第六研究室當時正在做漢卡。設計漢卡需要硬件知識,也需要對自然語言的語法分析,所以考試題目包括大規模集成電路和編譯原理。編譯原理是軟件專業比較難的課,當時學硬件的人一般不學編譯原理。我上大學時比較用功,清華軟件、硬件專業的課程都學了,所以就考上了。我于1984年1月去了美國,1985年1月轉學去了美國伊利諾大學(UIUC)。伊利諾大學在巨型計算機方面的研究是強項,我在那里學習了并行計算和計算機體系結構,還讀到Amdahl’sLaw。受其影響,我覺得并行計算可能應用面比較窄,出路不大,1986年就去鉆研系統軟件。當時我對兩個領域尤其感興趣,一個是操作系統,一個是編程模型。這也是我1992年能進入美國微軟研究院操作系統組的原因。1995年我在微軟瀏覽器IE3組的時候也參與了一些ActiveX的設計工作,后來做過DCOM。
你知道OLEAutomation嗎?當年就是以DougFranklin和我兩人為主寫的。我所有的職業生涯都和操作系統及編程模型相關,25年來始終不渝。至于創業,確實是很偶然的機會。
1998年我們BaseCOM組開始設計COM+,
1999年跟著Win2000一起Beta,不久就被告知COM+沒戲了,只做到1.0版,之后全體轉移去做.NET。我們.NET組當時的口號是“SoftwareasaService”。但是為了實現.NET的遠大目標,微軟內部產生了嚴重的“路線斗爭”。一派認為要集中全部力量,實現一個類似Java的中間代碼語言,進而實現SaaS;另一派認為要分兵兩路,一路做中間代碼,另一路從COM層重新做起。最終第一種方案獲勝,微軟決定采用C#來實現下一代OS,同時全盤放棄COM+。微軟直到2004年才意識到1999年的決策失誤,并重新啟動了SilverLight計劃,然而已經貽誤了5年戰機,并損失了全部COM團隊。
由于當時我們用C語言實現SaaS的方案被
否定了,自己覺得非常不爽,于是我就回國度假散心。那是1999年10月,美國到處都在.com(此com非彼COM)燒錢創業,中國也在發燒,生怕錢燒不完。我在北京碰到幾個朋友,他們幫忙介紹投資人,看上了我在微軟做過操作系統的背景,這樣我就開始了自己的創業,可謂“逼上梁山”。
記者:怎么想到做操作系統?
陳榕:2000年時國內一般就是做做網站,并
且也誕生了不少成功的互聯網公司,而做基礎軟件,比如操作系統、中間件、數據庫的人就非常少??晌也粫鰟e的,只會做操作系統,所以沒什么好想的?;仡^看,因為操作系統并不直接面對大眾市場,所以類似項目非常不適宜創業。因為中國沒有大型軟件公司來收購創新型軟件公司的環境,導致操作系統項目尤其不適宜在中國創業,所以我說我是非典型創業。
我要是十年前知道這些,我都要勸自己別冒傻氣。但反過來說,我1976年2月下鄉插隊兩年,又幸運考上大學,屬于機遇不錯的人。我們那代人與現在一般創業的年輕人可能不同:一是不怕吃苦、意志比較堅強,二是總想做一點此生無憾的事情。所以只要開始,就絕不輕言放棄。
記者:不過IT界很多人做的事情都是非典型的,我記得,喬布斯也做過Next。
陳榕:說到喬布斯,其實我的經歷和他的Next還有一些交集。當喬布斯投資NextComputer時,他已經被蘋果開除了。再往前追溯,是20世紀80年代末,曾經有一個比較出名的微內核操作系統Mach,由卡內基·梅隆大學的一個團隊發明,其主要發明人是RickRashid,目前是微軟負責科研的高級副總裁,也是我在微軟研究院時的頂頭上司。Mach1.0、2.0的主要代碼實現者是Rick的一個非常出色的博士生。后來這個學生加盟Next,以Mach為基礎,設計了NextOS。再后來喬布斯在蘋果公司復辟,NextOS演變成了今天的MacOSX。1991年下半年到1994年,大部分Mach發明團隊后來都隨RickRashid加盟微軟研究院的操作系統組,那正是我當時(1992~1993年)工作的部門。當時除了我一個來自伊利諾大學,其他同事都來自卡內基·梅隆。
說到做操作系統,我們首先要談什么是操作系統?比如Unix,能把進程、鎖、內存都做好了,你就可以把它叫做操作系統內核。實際上操作系統就是一個運行平臺。設計一個新操作系統的最主要目的,是看你要支持什么樣的應用。這個著眼點,需要你對語言,即編程模型非常熟悉。所以在設計操作系統的同時,經常要設計語言。比如:設計UNIX的同時設計C語言;設計.NET的同時設計C#。使用操作系統編程的人,要熟悉什么是進程、什么是線程、什么是鎖這些東西。但是設計操作系統的功夫,要遠遠發力在操作系統之外。設計語言,目的是便于編寫新型應用,而新型操作系統就是要將其跑起來。做操作系統,做的是什么?某種意義上說,操作系統就是運行平臺,最早是Unix,然后是Windows,后來是.NET、WebOS,現在又將是移動互聯網。至于改進一下Linux內核,并不是沒有改進余地,但那已經不是問題的關鍵。相對IBM主機OS,Windows曾經短小精悍,是個“白領”就能上手,但Windows已經非常不適合今天的移動互聯網了,病毒泛濫,安裝、維護復雜,一般老百姓怎么能搞得懂?這樣的情形下,我們再設計操作系統的動力將是什么呢?是新的看法、新的思想。
記者:你如何看待構件技術的應用前景?
陳榕:我最近寫了一篇文章《另類云計算,另類物聯網》,其中我強調了兩個方面:
對于我們現在這個工業化社會,一般事物可以有兩種狀態,一個是動態,一個是靜態,后者也可以說是零件化的。考察一下現代汽車工業,為什么它能夠這樣飛速地發展?零件化生產是一個重要因素。一個著名品牌的汽車的很多零件是可以互換的。在計算機軟件領域里面,可不可以同樣生成這樣的零件?我覺得零件可以看成一個個集成電路,如果有了一堆這樣的集成電路,怎樣把它們動態組裝起來,就是電路板的功能了,我們可以用Perl、Python,JavaScript等做這樣的事情。所有這一切,零件是必要條件,它是用C/C++或者Java寫不是很重要,關鍵是要像一個集成電路,具有通用性、一般性。如果我們能做成功這件事,就相當于完成了構件化。從面向對象走向面向構件:微軟做的COM,IBM的SOM,或者OMG的CORBA,都是基于這樣的思想。這種思想,距離它們的誕生,其實已經存在了二十多年了。只是它們當年的PC戰場已經灰飛煙滅,以至于人們似乎有一種錯覺:它們已經被人忘記了。如同很久以前就有人在曼哈頓建了摩天大廈,但是現在居民們都移居到上海了,于是人們忘記了在曼哈頓建摩天大廈的技術其實并沒有過時。而從計算機技術領域來說,現在進入了移動互聯網的時代,相當于我們進入了一個新的戰場?;蛟S今天正是我們重新發現構件技術價值的機會。
記者:你們公司的產品一直定位在做操作系統上,但我看你們公司網頁宣傳比較多的是中間件?
陳榕:其實這兩個東西,我們都沒有刻意去宣傳。什么是操作系統?說起來這是一個哲學問題,如我剛才所說,操作系統就是一個Runtime,三十年前Kernel是操作系統,二十年前Windows是操作系統——Windows就架在Kernel之上了,十年前.NET就是操作系統,現在是XML/HTML+JS+Plug-in。所以概念都是與時俱進的。說到中間件,也要看中間件的含義是什么。
記者:據我所知,在Java編程領域中有很多情況下用到中間件。
陳榕:你說的是Framework,它不是構件。Framework可以看成是鋼梁,構件則相當于那些預制件。構件鑲嵌在Framework中,你有Framework,但沒有構件,或者有構件,而沒有Framework,都不行。現在大家講的中間件多是Framework,為什么不說它們是構件?因為它們不是為第三方做的。構件要做到可以替換成第三方的產品,這才能實現軟件的工業化生產。Windows可以是看作一個中間件,它有兩個特點:首先是通用性,如此它的消息驅動機制;其次是它的效率,它能嵌入CPU匯編指令,在某個時間片跑出CPU的效率。Java具有通用性,但它跑不出CPU的效率。我們再思考一下,中間件能不能做得更具一般性?我們可以用構件拼裝,我們可以同步調用你,也可以異步調用,消息也是同步或者異步的。也就是說有四個接口:同步出、同步入,異步出、異步入。所以我們的產品目標是一個具有通用性的中間件。你也可以管它叫操作系統級中間件。另外我們正努力的目標是做一個具有云計算功能的中間件,它既能跑本地程序也能跑網絡程序。
記者:我總結一下,你們產品的特點,一個是通用性,一個是充分利用CPU效率,還有正在努力做的是網絡應用。
陳榕:是。讀者可以從www.elsatos.com下
載我們設計的ElastosSDK。Elastos的架構及API都是我們自己設計并實現的,包括內核、圖形系統、文件系統、瀏覽器等,花了十年時間,一千人年工作量,走了N多彎路,已經商用。一個字:難!
記者:陳先生,我想問您最后一個問題,您認為現在哪個方向創業比較有希望?并且為我們展望一下未來。
陳榕:我不鼓勵大家創業時來做中間件或系統軟件行業。這對個人創業者可能不是很適合。相反移動互聯網絕對是一個大的浪潮,我相信這個浪潮往短里說至少也得有二十年。IBM主機時代的軟件相比PC時代的軟件大小總合,可以說只是“噪音”。PC時代的軟件大小總合,相比移動互聯網時代的消費類電子軟件,我相信,也可以說只是“噪音”。也就是說,IT產業的第三次浪潮才剛開始,移動互聯網時代要把幾乎全部PC時代的代碼都要重寫幾個來回,再外加全新的代碼。創業的機會和就業的機會都非常好。軟件工業化生產的時代正在變為現實。如果我們預想:未來的構件服務=構件+自描述信息、云編程=服務構件+拼裝腳本。所以云上下雨,自然不能像原來安裝Office軟件那樣,一坨就是二、三百MB。一條彩信300KB,那么最大的“雹子”就是300KB。再加上,雨必須從不同的云上下來。雨點可能就是一個一個功能(服務)構件、編譯好的二進制代碼,可能是CPU指令,也可能是Byte-Code。而HTML/XML/JS等腳本語言要在客戶端動態將服務構件拼裝成應用。所以人們將進入這樣的時代——為一篇寫得好的小說付錢,而不用為了印刷技術和紙張付錢。
? ? ? 亦來云(Elastos)第三次出發
? ? ? ? ? ? ? ? ? ? ? ? ? 2017.8.28
? ? ? ? 自1985年開始學習UNIX起,我一直在OS領域沒有離開。20年前在微軟工作的時候,領悟到未來OS必須全面貫徹元數據驅動原則,尤其是采用原生代碼(C/C++)實現元數據驅動。由于微軟當時沒有采用我們的建議,創業的想法逐漸浮出水面。
? ? ? ? ? 2000年5月在北京奧體中心體育場看臺下面的辦公室開始創業,2002年10月去深圳寶安鐵嶺水庫邊的桃花源搞封閉開發,2003年非典之后的8月到上海,開始了TD-SCDMA智能手機操作系統項目,后來承擔了中國聯通沃Phone OS的中間件架構設計與實施任務。
? ? ? ? 2010年開始策劃亦來云項目,這是Elastos第二次重新定位,2012年底獲得富士康投資啟動,開始工業物聯及智能家居網安全網絡操作系統及運營平臺工程實施,為今天的區塊鏈驅動的互聯網打下基礎。
? ? ? ? 前兩次嘗試工程基本按照規劃完成了,但是商業運作失敗了。
? ? ? ? 2016年5月開始Elastos第三次重大規劃,區塊鏈驅動的互聯網,2017年8月在大家的支持下得以正式開始實施。
? ? ? ? 2017年6月初開始亦來云基金會的籌備,至今不足三個月,完成白皮書、組建幾千人社區、數字代幣私募等到位,進度之快令人咂舌。
? ? ? ? 這完全是一種新的互聯網文化,讓我深深感到又回到1995年萬維網興起的躁動時期,機遇與懷疑并存。當時我雖然是微軟瀏覽器IE第十號員工,但我過于追求技術,忽略了二十年前互聯網發展的大勢。
? ? ? 光陰荏苒,日月如梭。十八年,一個襁褓中的嬰兒也已成年。
? ? ? ? 這次卷土重來,任重道遠,風險與機會并存。我殷切地希望我們年輕的團隊青春作伴,為修煉更好的自己、為報答贊助者、為建立互聯網秩序、為把數字變為財富,加油!