張國棟為銀河計算機的軟體開發分配了70名工程師,這已經是張國棟能拿得出手的極限了,雖然龍騰有著2000多名軟體工程師,可是既要懂軟體又要在硬體上面有著非凡造詣的人真的不是很多,加上中科院以許峰雄為首的三個人,暫時組成了一個73名核心工程師的技術團隊,加上外圍的服務人員,也達到了一百多人了。 這在龍騰的隊伍中算是比較龐大的團隊了,能夠與之相比的恐怕就只有作業系統開發團隊和遊戲開發團隊了。
“周博士,這次叫你過來呢,主要是想聽一聽你對於虛擬機器的看法以及你們的進度。 ”早在兩年前張國棟就開始佈置這方面的任務了,周新銘加入進來後很快就成了這個團隊的領導者,而原先的諸如朱崇軍等跟隨張國棟一起的創業者則另有用途,畢竟他們只是個本科畢業生,再有天賦,有些東西搞不出來就是搞不出來。
“老闆,我們是這麼想的,根據我們的討論,虛擬機器它是一個虛構出來的計算機,是透過在實際的計算機上模擬模擬各種計算機功能模擬來實現的。 而老闆讓我們開發出Java的虛擬機器來我們覺得這是一個天才的創舉,目前Java的語言語法部分已經完成了,我們現在在集中解決兩個部分,一自然是Java自帶的編譯器了,第二個就是Java虛擬機器了。 Java虛擬機器有自己完善的硬體架構,如處理器、堆疊、暫存器等,還應該具有相應地指令系統。 ”
“那你們應該明白了Java的跨平臺性和虛擬機器的關係了吧。 ”張國棟笑眯眯的問道,這種不需要自己動手只需要一個念頭下面自然有一大票人為你來實現你的想法的感覺是在是太好了。 難怪有那麼多人希望穿越回去,就衝這一點也能讓人多活不少年啊。
“是的,目前我們設計地Java語言的一個非常重要地特點就是與平臺的無關性。 而使用Java虛擬機器是實現這一特點的關鍵。 一般的高階語言如果要在不同的平臺上執行,至少需要編譯成不同的目的碼。 而引入Java語言虛擬機器後,Java語言在不同平臺上執行時不需要重新編譯。 Java語言使用模式Java虛擬機器遮蔽了與具體平臺相關的資訊,使得Java語言編譯程式只需生成在Java虛擬機器上執行地目的碼(位元組碼),就可以在多種平臺上不加修改地執行。 Java虛擬機器在執行位元組碼時,把位元組碼解釋成具體平臺上的機器指令執行。 只不過老闆,我們真不明白為什麼要叫Java語言,對於我們來說Java真的非常拗口。 難道叫龍語言不好麼?”
“這個怎麼說呢,你也知道我們推出Java的目的是一統市場上的高階開發語言,至少讓要C系列語言的使用大大減少。 但是如果我們使用龍語言這個名字的話在西方容易受到抵制,畢竟在西方人眼中龍是邪惡地。 更重要的事。 在計算機世界中,人們一般習慣於將名字命得比較神祕,這能增加吸引了。 反正大家以後就會慢慢習慣的。 ”還有一個沒說得原因自然是因為Java可是後世萬千程式設計師心中的最喜歡的開發語言,雖然前世的林興華是微軟地,但是這並不妨礙他喜歡Java,相反,他還比較鄙視跟風的C#。 無非是把Java的import搞成using,把Java的大寫搞成小寫,把Java的小寫搞成大寫,然後改一改其他Java設計得不是太合理的地方,然後微軟就宣稱他們開發了一種新語言,在世界範圍內推廣。 如果不是Visual Studio這款開發工具實在是做得不錯,而且也提供了一種傻瓜式的程式開發方法的話,C#能不能在市場上推廣開還不知道呢。
其實Java還有個讓人詬病的地方就是要進行環境變數的配置了。 有很多初學程式設計地小白直接在這一關就給倒下了,聽說還有進行配置他們直接就打了退堂鼓,畢竟軟體對於他們來說就是下一步再下一步,自然還要進行什麼環境配置,什麼jar包匯入,什麼伺服器設定。 什麼資源池配置,這對她們來說太複雜,所以他們寧願學給傻瓜一點地C#。 所以這一世的張國棟吸取了這一特點,將一個Java地大致語法框架與機理特點告訴開發人員後,重點就讓外圍人員將這些東西寫清楚,最好是每一步都截圖,這樣即使再小白的人都會使用Java了。 想一想後世的sun,幾乎所有賺錢的產品都是從Java衍生開的,雖然被甲骨文給收購了,可是sun並沒有沒落!
“那你們這些設計人員都理解Java虛擬機器的機制麼。 要知道一旦Java語言向世界推廣後就是一個巨大的複雜的工程。 將來可能出現各種各樣的問題,我是立志於將Java打造得比目前的VB和C++以及Dephi這類的語言更加出色的。 將來我們還可以建立認證考試嘛。 ”
“是的,我們在開發的過程中已經在對我們的工程師培訓了,Java虛擬機器是Java語言底層實現的基礎,只要是對Java語言感興趣的人都應對Java虛擬機器有個大概的瞭解,更何況我們還是發明人員。 上次老闆說的3000人推廣計劃已經在實行了,目前深圳大學,廣東中山大學,湖南的湖南大學,四川的四川大學,重慶的重慶大學等中部的高校已經和我們達成了協議,而這些學生的加入將對我們Java地推廣起到直接的效果。 我們正在對她們培訓,我告訴他們瞭解Java虛擬機器有助於理解Java語言的一些性質,也有助於使用Java語言。 而對於要在特定平臺上實現Java虛擬機器的軟體人員,Java語言的編譯器作者以及要用硬體晶片實現Java虛擬機器的人來說,則必須深刻理解Java虛擬機器的規範。 另外。 我們目前設計地Java是個開放式的語言,就像Unix一樣,世界上所有地Java愛好者都能為我們的Java擴充套件類庫。 ”周新銘略帶自豪的說道,畢竟他們這是在改變歷史,改變中國人在計算機語言方面沒有發言權的歷史!
“沒錯,就是要開放,以後軟體的趨勢就是開放。 雖然對於我們的核心產品的核心元件我們不會開放,但是開放也是我們龍騰將遵循地一個趨勢。 只有集中世界人民的智慧才能將產品做到極致。 ”林興華曾經也是世界開放軟體組織的一員,對開放也情有獨鍾,其實像微軟那樣根本沒有為世界軟體行業的發展作出過太大貢獻的公司或組織他是比較鄙視的,他欣賞的是全球資訊網的發明人這種人。
“嗯,目前我們將Java虛擬機器地體系結構設計為五個部分,一組指令集、一組暫存器、一個棧、一個無用單元收集堆(Garbage-collected-heap)、一個方法區域。 這五部分Java虛擬機器的邏輯成份,不依賴任何實現技術或組織方式,但它們的功能必須在真實機器上以某種方式實現。 ”
“那你覺得你們的工作大概什麼時候能夠完成,我以及有些迫不及待了。 你知道,該死的C++中那些該死的指標總是讓人很頭痛,還有垃圾資源地回收,哎,每次寫程式必然要事先進行大量的規劃和計算,不然最後測試的時候總是測出許多莫名其妙的錯誤,上次你們軟體事業部的王嘉就告訴我,他已經對寫程式沒什麼信心了。 我瞭解了一下。 基本上就是每次測試他負責的模組總是記憶體洩漏,他呢就老是挨批評,我想我們Java出來後這種情況應該會改變不少。 ”
“年底我們爭取將1.0的語法完成,然後爭取在90年的時候將一整套工具做完,然後進行大規模測試,估計要到好91年年中才能做完了。 這還是最理想的情況。 ”周新銘咬咬牙將大家討論過得時間又提前了半年,倒不是他好大喜功,畢竟有很多事情可以交給其他非Java組的專案小組去完成嘛,完成機密也不會洩lou,內包嘛。
“好好,對你們地工作我基本上還是表示滿意地,不過這次叫你過來呢還有一個事情,你也知道以前中科院的應用軟體室有個石油軟體研發小組是不是,以前我們龍騰沒有他們地用武之地,所以讓他們解散後充實到其他小組裡面去了。 這次我們接到中東阿聯酋的委託。 說是讓我們為他們開發一整套石油軟體,他們也提出了要求。 要有油藏連通圖生成系統,綜合地質柱狀圖編輯系統,油藏開發製圖系統,地質層對比圖編輯系統,圖文資料庫管理系統,等等,可能中間要用到Corel公司的某些產品,到時候需要協調你再來找我吧,如果是人少了的話你去找史魚柱,讓他替你去招一點人,哎,現在是恨不得將國內給挖空啊。 ”
“老闆的意思是將這些人重新召集起來成立一個新的專案小組專門來做這麼一套軟體啊,那老闆,這麼做劃不划得來啊,要知道我們的人力成本目前很貴啊,要是隻為他們專門開發有點不划算啊。 ”周新銘憂心忡忡的說道。
“哎,你以為我想麼,這是國家攤派下來的任務,而且我們也拿不到什麼錢,他們和國家簽訂了一個石油購買協議,這是協議的一個補充條件。 ”
聽到是國家任務,周新銘馬上不說話了,只是點了點頭默默地走了出去。