Java能為應用程序提供統(tǒng)一的平臺嗎?

字號:

Java作為一種成熟的語言,同時作為一種優(yōu)秀的平臺,已被廣為接受。很多的程序員對Java技術(shù)很精通。如果說在進行軟件開發(fā)的時候,把Java這個平臺拋掉或?qū)χ萌糌杪?,對現(xiàn)在的開發(fā)者來說,這是一件忍痛割愛的事情。不管是為了更好的提高程序的性能或是穩(wěn)定性,還是看中了Java非常豐富的類庫,非Java應用程序在JVM上運行已經(jīng)吊足了程序員的胃口。那么,Java可以為應用程序提供統(tǒng)一的運行平臺嗎?JVM能承擔這一艱巨的任務否?
    一、 引言
    最近筆者讀到一篇”Use Java to Improve Drupal's Scalability”的文章。作者(Geert Bevin)在使用Drupal(一套采用GPL授權(quán)的開放源碼軟件,它可以讓個人或社區(qū)使用者很容易地發(fā)表、管理并組織一個網(wǎng)站里大量且多樣的內(nèi)容,已經(jīng)有許多個人和組織采用Drupal來建立各種不同的網(wǎng)站)時遇到了程序穩(wěn)定性方面的瓶頸。由于Drupal使用數(shù)據(jù)庫作為緩存,而PHP在跨越Request時是不會保存對象的狀態(tài)信息的,所以他決定使用Terracotta——一個JVM級的開源群集框架,能提供:HTTP Session復制,分布式緩存,POJO群集,跨越群集的JVM來實現(xiàn)分布式應用程序協(xié)調(diào)。使用這一替代方案后,盡管他也遇到了一些別的小問題,但穩(wěn)定性的問題最終得以解決。同時,將PHP在Java下運行,還可以得到更加安全的運行環(huán)境。
    上面的例子,我們可以看出,應用程序雖然采用了非Java的技術(shù)來構(gòu)建,但最終在Java的環(huán)境下運行,并通過JVM來提高應用程序的穩(wěn)定性和性能。而且,非Java編寫的程序可以在JVM上更加快速的運行,這是非常有意思且有意義的事情。而在不久之前,也許三年或四年前,程序員經(jīng)常報怨,一種語言編寫的程序往往只能在特定的環(huán)境下運行。當然,這也包括Java本身。
    當然,如今而言,這聽上去有點不夠人性化。因為不管是PHP應用程序,Ruby on Rails應用程序,或是.NET應用程序,似乎都可以在Java環(huán)境下運行了。更有甚者宣稱,這三種應用程序在Java環(huán)境下的運行效率比他們在各自特定的環(huán)境下運行的效率還要高。
    不管是為了更好的提高程序的性能或是穩(wěn)定性,還是看中了Java非常豐富的類庫,非Java應用程序在JVM上運行已經(jīng)吊足了程序員的胃口。那么,Java可以為應用程序提供統(tǒng)一的運行平臺嗎?JVM能承擔這一艱巨的任務否?