在第1部分中,我们将从一个游戏开发者的视角来探究微型设备软件开发的历史,这包括Java(更重要的是J2ME),适合微型设备开发这个领域。
既然J2ME游戏开发是为小设备创造“大”游戏,笔者也将介绍一些流行的J2ME兼容移动设备,它们分别来自诺基亚、摩托罗拉和索尼、爱立信。
本章将讲述Java和其他相关技术的历史。同时可以看到像手机这类设备的能力和限制,最后可以看到它们演变出的J2ME。
1.1 Java Oak
在1995年的早期,Sun公司发布了一个带有Java的新的软件开发环境。在Java发布后的前6个月里,整个产业界用了许多时间来制造一些关于咖啡豆和印度尼西亚岛的恶意笑话(他们说在Java岛附近有很多冲浪,这难道仅仅只是讽刺?)。然而并没有经过太长时间,“编写一次,到处运行”——也就是Write Once,Run Anywhere,被拿起来捍卫Java。慢慢地,Java毫不留情地开始了一步一个脚印的发展步伐。在笔者讲述Java的辉煌之前,先简要看看Java的历史。
Java最早可以追溯到20世纪90年代的早期,当时Sun组建了一个特别的技术团队,他们的目标是下一代的计算机技术。经过了18个月后,这个团队带着自己的成果出现了:一个带有动态触摸屏的被称为*7(star seven)的手持家庭娱乐设备控制器。图1.1所示是Sun公司开发的*7最初的原型。最重要的是这个团队创造了一个叫做Duke的动画角色,用来演示他们的作品。

图1.1 Sun公司开发的*7最初的原型
这样的一个时期现在已经过去了,笔者并不认为*7是下一代的计算机技术,因为它们甚至没有Internet或者移动电话,更不要说用移动电话来访问Internet。
然而真正有用的不是那个设备,而是后台驱动它的技术。这个项目的一个要求就是嵌入式的软件环境,这个环境要具有非常强的硬件无关性,也要很方便地进行低成本的开发。这样就引出了故事的主角James Gosling——这个在项目中工作的加拿大工程师。他选取了C++中的一些最好的方面,同时又去掉了容易惹麻烦的内存管理、指针和多重继承,加上早期面向对象语言SIMULA的概念,James创造了一个全新的叫做Oak的语言(他是以他窗台外的树来命名该语言的)。
Oak的力量不只在它的语言设计中,当时已经存在很多其他面向对象的语言。Oak的蓬勃发展,是因为它包含了所有的东西。James并不是设计一个语言,然后让其他人实现这个语言。Oak的目的是与硬件无关,基于这个想法下,他建立了一个复杂的软件部署环境。从虚拟机到函数接口,Oak都提供了,更加重要的是,它控制了所有的东西。
但是,此后*7的发展基本停滞了。直到1994年,当时经过三天无休止的讨论,James和他的战友们,Bill Joy、Wayne Rosing、John Gage、Eric Schmidt和Patrick Naughton发现了Oak的一个新的机会——因特网。
大约在那个时候,万维网作为因特网的一种主流技术出现了。万维网被用来在全球不同的硬件设备上传输和以图像、文字,甚至声音的形式来显示数字内容。
万维网的目的与Oak的目的是相同的:提供一个系统让人可以书写一次内容,然后在各个地方观看。Oak就是尝试去做同样的事情,但是是为了程序设计。设想一下如果因特网作为一个框架,Oak可以在上面发布和到处安装。James和他的伙伴们意识到这是一个商机无限的东西。






