在很多人眼中,Java是一個跨平台的程式語言。
在學校的教導下,筆者亦順理成章地接受了這一套說法。
不過日前瀏覽C++之父Bjarne Stroustrup的網站時,
看到了他的論點:「Java不是跨平台,Java本身就是一個平台。」
初時我並不明白他為何會有這樣的看法,
但想深一層,原來這是個十分直接的推論,
只要對Java有認識的,應不難理解。
Java是SunMicrosystems研發的一個技術,
其包含三個部份,分別為語言、編譯器及虛擬機。
程式開發人員在以Java語言編寫程式後,
會交給Java編譯器進行編譯成為中介語言(位元組碼, bytecode),
最後,位元組碼會在不同的系統上透過Java虛擬機轉譯為可被該系統執行的指令碼。
可見,無論缺少了那一環,Java都不能被執行,
所以,無論在什麼系統上,Java其實都是以平台的形式出現。
不過,考評局說它是跨平台,它就是跨平台了。
正如考評局說CPU的時脈是代表該CPU的運算速度,那就是了。
Java原本是一個專利方案,版權由Sun擁有。
Sun後來以Java編寫了一個開源計劃-OpenOffice.org的一些功能,
不過由於Java是封源的,這引起了很多的爭議。
猜一猜Sun之後怎麼辦?以其他開放的語言重寫OOo?
不,Sun把Java公開化。
Sun以GPL授權Java,使其成為自由軟件,
在解決紏紛的同時為自由軟件邁進了一步。
Sun真是一間十分神奇的公司。
[ 編輯日誌 ] [ 分享至FACEBOOK ]

