java跨平臺性分析
實不相瞞,Java是我見過的執行效率最低的程式設計語言,前不久在CSDN論壇上有個評測,計算9999的階乘,同樣的迴圈演算法,Java的耗時是.NET的5倍。我以前很喜歡Serv-U,自從它用Java重寫之後我就再也沒用過,實在是太慢了,我寧可用IIS搭建FTP,雖然IIS搭建FTP在許可權管理上很不靈活。
我有個同學,他是搞Java的,他給我說“Java不是效率低,而是速度慢。”,我不是搞Java的,我實在想不透這句話的含義,難道執行速度慢不就是效率低嗎?難道執行速度慢還成效率高了?
其實Java之所以在曾經獨步天下,就是因為他的跨平臺、安全性,這兩方面,效率可不是Java的強項,反而是他最短的一塊擋板,雖然Java總是用理論證明比.NET快。
也許C#剛上市的時候有些抄襲Java吧,但自從C# 2.0上市之後,整個局面就扭轉乾坤了,不但Java在模仿C#,而且他從來都沒能跟得上C#的腳步。
就安全性而言,Java已經遠遠低於VB.NET,更無法與安全性著稱的C#相比。
也許唯一可以讓世人留戀Java的理由就剩下它的王牌——跨平臺。
說句實話,Java跨平臺根本就不是外行人想想的那種,一次編譯,處處執行。
因為各系統的API不同,程式碼呼叫API編寫程式就會遇到很多不相容的地方,比如Java改寫後的Serv-U就不能在手機上執行,手機的遊戲也不能直接在微機上執行。
歸根到底,Java跨平臺可以,但是要重新編寫程式碼,否則還分什麼J2EE/J2SE/J2ME呢!
如果需要重新編寫程式碼,幾乎任何一門計算機語言都可以跨平臺了,還用得著Java嘛,而且像PHP/C#等語言不需要修改程式碼都可以跨Windows/Linux。
另外,小型軟體程式碼重用價值低,沒有必要跨平臺;大型軟體,有嚴格的規劃、部署,不可以隨意跨平臺。
Java欺騙了我們那麼多年,如今的多核時代,我認為它氣數已盡!