java不適合做單機web管理平臺
這里所說的單機管理程序是網(wǎng)絡(luò)設(shè)備的web管理平臺,例如防火墻的web管理界面,或者路由器的web管理界面。其中大多數(shù)使用php,還有wrt系列使用Lua,甚至有使用perl的,單機web管理平臺很少使用java做的。
主要由于以下兩個方面:
1 占用空間大小的問題
做UTM的web管理平臺的時候,我們試圖裁剪jdk,但是做的很不理想,因為只要輸出圖形,就要使用java的awt和swing庫,裁剪幾乎無從談起。天清汗馬的UTM使用php即使加上apache,管理程序可以控制20M以內(nèi)。
jdk 1.5的解壓包,100多M,jdk 1.7的解壓包,接近300M,加上tomcat占用空間,肯定在300M以上。如果使用jetty的話,占用空間會小一點,但是情況也不會很樂觀。
2 跨平臺的問題
06年做天清汗馬UTM管理端的時候,考慮過這個問題。當時我已經(jīng)有了5年的java編程經(jīng)驗,一年的python編程經(jīng)驗,選擇java似乎沒有任何疑問,因為當時java沒有嵌入式版本的jdk,所以沒有考慮java。
不考慮python的原因是當時國內(nèi)的程序員基本不使用python,找到一個python程序員是個很困難的事情。所以我們使用自己并不熟悉的php做UTM的web管理平臺的開發(fā)語言。
你也可以說,現(xiàn)在已經(jīng)有了arm和龍芯版的jdk,是不是就可以了。但是sun的jdk主要是面向x86和x64平臺,arm版的jdk并不支持所有版本的linux的c語言庫。還有因為用戶較少,arm和龍芯版的jdk如果有bug,解決的周期會比較長。
你會問,為什么網(wǎng)御SAG的web管理使用java呢?
主要是兩個方面
1 SAG使用的tomcat是經(jīng)過處理的tomcat,耗費空間很小。
2 網(wǎng)御SAG主要控制流程使用java,jdk必要安裝,所以沒用jdk額外占用空間。
你也許覺得java的框架很多,我做單機管理是不是很有優(yōu)勢呢?這個問題很多人提出過,但是php的框架不會比較java少,Laravel Symfony CodeIgniter也都是很不錯的。