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