國內(nèi)的朋友對開發(fā)工具都有超乎想像的熱情。 每每連上開發(fā)類的站點,要么Delphi Vs VC,要么java Vs C 這是Bjarne對Java所說的那"一句"話:"Java is not platform-independent, it is the platform。"是的,它并非平臺無關(guān),它"就是"平臺。 原來如此.....以提倡跨平臺起家的Java,又如何跨過自身的平臺?借用明斯基拷問人工智能本質(zhì)時的那句話:"用一把手鉗,能拆開它自身嗎?" 現(xiàn)在的虛擬機還是非常簡單的。僅僅提供了基礎(chǔ)功能的抽象,可以安裝運行在各個操作系統(tǒng)之上。但競爭的加劇也會讓它的尺寸也再次加"巨"的,那時的虛擬機的復雜性又如何?它,會不會又是新一層的操作系統(tǒng)? .net起來了,Java起來了,那IBM呢?那CA呢?難道他們不想擁有搞自已的虛擬機?難道這個領(lǐng)域就不會有自已的Linus?是否又會出現(xiàn)千帆共競的狀況? 我們不要打破了操作系統(tǒng)間的隔閡,又人為造出虛擬機的疆界!!! 以其現(xiàn)代的編程思想,Java贏得了大量的推崇者。對,我知道你很推崇Java,但你不得不承認,要擁有跨平的互操作性,不僅僅是技術(shù)就可以解決的問題。 要害在于規(guī)范。 但,Sun在此問題上的態(tài)度并不讓人滿足。那種枉圖將標準控制在自已手里以贏取商業(yè)利益的作法,實在是太過短視的。假如微軟放棄標準控制權(quán)的.Net的中間代碼、C#等標準得以通過.... 對我這樣一個普通開發(fā)者而言,.net平臺同Java平臺最大的不同,就在于Java虛擬機是可以向下跨操作系統(tǒng)平臺的,而.net的framWord是可以向上跨語言平臺的。 那么,從市場的角度來看,會發(fā)生什么呢? 結(jié)論很簡單,Sun必須放棄控制標準的企圖! 假如Sun仍執(zhí)迷不悟,則.net成為標準的可能性將大為增力。接下來的,當然就是第三方廠商在各個操作系統(tǒng)上的移置。當然,也可能是微軟自已,那要取決于它是否仍持以操作系統(tǒng)為中心的市場策略了。我想,這絕不是Sun所希望看到的結(jié)局。 假如Sun放棄了對Java控制,則自法律角度來說,Java也將是可以生成.net的中間代碼了(以微軟一慣的卑鄙手段,它一定會這樣做的)。而JVM,假如不開放對其它開發(fā)語言的前端,繼續(xù)這許多編程的人力、物力資源,它靠什么來同.net競爭呢? 假設(shè)都Sun能選擇正確的市場策略,則JVM和.net都將是持多語言,接下來是什么? 不再有語言之爭,只有兩個平臺的framework之爭!!! 那么,在這些個平臺上,我們將使用什么語言作開發(fā)呢?當然,原生語言是最好的選擇,在.net上用C#,在JVM上用Java,那跨平臺會不會是有最好的開發(fā)語言?那在第三方第四方的虛擬機平臺上用什么? "xml",好多高聲的喊叫。對,XML現(xiàn)在是跨平臺的唯一希望了。但請不要忘記,XML全稱是Extensible Markup Language,僅僅是一種標記語言。 幾個月前我同朋友有一場爭論,核心焦點就在于XML是否圖靈完備。在我個人看來,XSL即為其提供了完備的圖靈機能力,讓其有能力表達任一程序設(shè)計語言表達的語意。但一定沒有人認為,XSL能實際運用于獨立程序設(shè)計中,究竟,理論同實做仍有巨大的差別。 假如XML只能用做粘合劑,那我們的問題仍在面前:跨平臺會不會是有最好的開發(fā)語言? 我的答案是否定的,沒有對每個人每個目的都最佳的語言。其實對我來說,這個問題的答案就是C++,因為我熟悉它,喜愛它。你會有你的答案,也許是Perl,也許是Java。 在將來,在XML超級粘合劑的支持下,選擇語言的最大理由,也許只是個人的喜好而已