原始的Java理念是否已经死亡?

7
我认为,虽然我热爱J2ME和Java,但他们拥有两个API却显得很虚伪。Java的设计理念是"One code, many platforms",而现在它更像是"One API for every OS, and one API for everything smaller than a netbook"。我看到很多J2ME模拟器被移植到PSP等游戏机上并用于自制游戏,但为什么没有人这样做普通的Java呢?
我想写一款游戏在PC上玩,然后启动一个简单的模拟器,在PSP或Dreamcast上玩相同的游戏,但我无法实现。J2ME甚至不能在PC上运行,你需要一个模拟器,这大大减少了市场。而且大多数模拟器都很笨重,效果不好。
随着像iPhone这样的超级手机的出现,人们将希望获得更多J2ME小游戏之外的内容,因此如果Java不能将标准JRE移植到它上面,它可能会像微软在净书电脑繁荣时所做的那样错失良机。
感觉Sun需要努力让标准的JRE变得更小、更具可移植性,或者轻松地将J2ME提供给PC用户使用。

1
我猜这似乎是一个辩论话题,尽管我肯定表示同情。 - Charlie Martin
我猜你打错了,本意是“我看到很多J2ME模拟器和类似的东西”,但“我看到很多...很烂”的描述似乎更贴切这个问题的本质。;-) - Mike Spross
哈哈,是个打错字,现在已经修复了,谢谢。 - William
没有重复链接,我已经提名重新开放。 - Tom Hawtin - tackline
5个回答

8

我认为这应该是一个社区Wiki

但是说到重点,我的观点是J2ME将会死亡并留下普通的Java。当前的Netbook趋势加上更强大的智能手机趋势意味着今天的普通手机比J2SE首次推出时运行的机器要强得多。

因此,我们可以放弃为古老的诺基亚设计的J2ME,在智能门锁(或智能手机)上享用标准Java。

Java面临的唯一问题是,智能手机应用程序中最大的参与者 - Apple - 在可预见的未来不会允许JVM。


安卓怎么样?它上面有Java吗? - Ido Weinstein
尽管手机越来越大,但Java也在变得越来越大。我猜第一次推出Java时运行它的许多机器现在已经无法运行了。 - DJClayworth
没错,但是再过一两年,我们就会有能够运行今天笔记本电脑所运行的应用程序的手机,并且可以轻松运行Java。 - Uri

6
即使您的监视器内置了加速计,您也可能不想将其用于iPhone应用程序 - 因此我认为在可移植性方面存在限制。
如果“一次编写,到处运行”是具有误导性的,那是因为它是在手机普及之前设计的。至于API,我同意使用共同的子集会更好,但再次说明,整个J2ME领域完全是新的。 JVM仍然是有用的:Web浏览器可以在Windows,Linux和OS X上运行,游戏可以在诺基亚和三星手机上运行。
原始Java理念已经死了吗?
它仍然满足从工作站到工作站的便携式代码的原始需求,所以没有。但听起来你已经为未来的平台树立了更高的标准。

1

虚拟机可能选择抽象出许多东西。

操作系统通过提供标准接口(块 i/o、字符 i/o 等)来抽象一些常见硬件。

JVM 的目标是抽象出处理器和操作系统本身,这本身就是一个巨大的目标(当时)。然而,抽象外围硬件是一个难以实现的目标,将来也会是。

也许当我们看到手持设备/笔记本电脑/台式机/服务器更趋同化时,抽象出硬件的需求会减少。


0

J2ME是很棒的。你可以使用精简而干净的http://www.microemu.org/打包和运行J2ME应用程序。自从我开始编写J2ME代码以来,我成为了一名更好的程序员。它迫使你在内存上高效。我喜欢这个小巧干净的API。将来我的所有客户端应用程序都将设计为J2ME,然后移植到J2SE/Android/IPhone。困难的是构建您自己的GUI框架,使应用程序能够在任何屏幕大小上平稳运行。那需要时间。


0

随着像Windows Mobile和Symbian这样的新移动平台占据了市场份额,j2me等已经因为无法利用硬件等问题而退居次要地位。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接