主要由于以下两个方面:
1 跨平台的问题
06年做天清汗马UTM管理端的时候,考虑过这个问题。当时我已经有了5年的java编程经验,一年的python编程经验,选择java似乎没有任何疑问,因为当时java没有嵌入式版本的jdk,所以没有考虑java。
不考虑python的原因是当时国内的程序员基本不使用python,找到一个python程序员是个很困难的事情。所以我们使用自己并不熟悉的php做UTM的web管理平台的开发语言。
你也可以说,现在已经有了arm和龙芯版的jdk,是不是就可以了。但是sun的jdk主要是面向x86和x64平台,arm版的jdk并不支持所有版本的linux的c语言库。还有因为用户较少,arm和龙芯版的jdk如果有bug,解决的周期会比较长。
2 占用空间大小的问题
做UTM的web管理平台的时候,我们试图裁剪jdk,但是做的很不理想,因为只要输出图形,就要使用java的awt和swing库,裁剪几乎无从谈起。天清汗马的UTM使用php即使加上apache,管理程序可以控制20M以内。
jdk 1.5的解压包,100多M,jdk 1.7的解压包,接近300M,加上tomcat占用空间,肯定在300M以上。如果使用jetty的话,占用空间会小一点,但是情况也不会很乐观。
你会问,为什么网御SAG的web管理使用java呢?
主要是两个方面
1 网御SAG主要控制流程使用java,jdk必要安装,所以没用jdk额外占用空间。
2 SAG使用的tomcat是经过处理的tomcat,耗费空间很小。
你也许觉得java的框架很多,我做单机管理是不是很有优势呢?这个问题很多人提出过,但是php的框架不会比较java少,Laravel Symfony CodeIgniter也都是很不错的。