今天在SUN看到一篇采访KVM之父AT的文章,觉得很不错。因此翻译了其中一部分,希望能对网友有所帮助。Antero Taivalsaari是KVM的创始人,他领导了CLDC规范的开发并对J2ME的很多特性都做出了巨大的贡献。
Q:KVM是如何形成的?
A:在来到SUN工作之前,我在电话设备制造商工作,因此我对移植适宜在手机上运行的JAVA平台十分有兴趣。但是我们遇到的问题是,目前所有嵌入式版本的JAVA虚拟机相对于手机的内存和处理器都显得太大了,因此在1998年的时候我和Bill Bush决定开发一个比目前各种版本的JVM还要小十倍的虚拟机,这个计划得到了实验室经理的大力支持。几个月后,我们做出了一个初始的版本并在实验室演示的时候取得了成功,Motorola对系统非常感兴趣,我开始离开实验室领导开发组开发这个产品。
Q:KVM中的"K"代表什么
A:KVM是一个真正的Java虚拟机,她是按照K字节衡量的而不是兆字节。还有另外一种解释是K来自单词"Kauai",这个是这个项目的代号。注意我们不能叫他为"Kilo Virtual Machine"
Q:Spotless和KVM的关系是什么?
A:Spotless是原始研究项目的名字,KVM是一个产品。
Q:KVM是什么语言实现的?
A:C语言
Q:KVM有多大?
A:这依赖于目标平台和包括的库,KVM的核心大约是35000行包括注释的代码。
Q:为什么在LCDUI包没有设计为AWT或者SWING的子集?
A:awt和swing是为电脑应用程序设计的,针对更大的显示器。他不适合用在手机这样的设备上,而且他们也太大了。
Q:如果开发者想让他们的应用能在尽可能多的设备上运行,那么他们应该注意什么?
A:开发者必须明白嵌入式的开发和主流的桌面应用程序的开发是不同的,应该注意内存和电池的使用,多使用良好的设计模式和好的编码规范是个不错的主意。
Q:J2ME是如何形成的?
A:在创建初始的J2ME的标准的时候,Motorola发挥了巨大的作用。SUN公司和Motorola都认识到要想让J2ME标准成功,那么我们必须让更多的关键的厂家参与进来,让我非常惊奇的是很快就有很多主要的设备制造商和我们共同探讨这个问题,很快制定了CLDC和MIDP的标准。
Q:为什么浮点数在CLDC1.0中没有被支持,但是在CLDC1.1版本得到了支持?
A:在CLDC1.0中缺少对浮点数的支持主要是由于当时的嵌入式设备在硬件层对浮点数的支持。
Q:J2ME最大的成功之处是什么?
A:为软件开发者开辟了新的天地、使得开发真正的移动应用成为可能、让移动设备更具个性化
Q:J2ME有竞争对手吗?
A:当然,高通的BREW和微软的SmartPhone