您的位置:首页 > 编程语言 > C语言/C++

嵌入式语言对比之 JavaME vs QtC++

2010-01-04 11:47 323 查看
嵌入式语言对比之 JavaME vs QtC++

有人说,使用 JavaME 开发嵌入式,无异于自缚双脚步行。这话比喻的太恰当了。作者进行嵌入式开发,深有同感。在这里,作者举几个小小的例子来印证这个论点。热烈欢迎嵌入式开发达人前来拍砖!

一、JavaME 对底层开发“心有余而力不足”


尽管最近推出了 MIDP3.0,但是新增功能大部分也只是针对手机游戏。尽管前段时间 JCP 调查是否让 JavaME 支持 JNI,但随着 Java 语言总体走势不容乐观也不了了之。总结:JavaME 根本就不适合嵌入式开发。所谓的“跨平台”也只是给游戏开发带来一些“功能丰富、可移植”的好处。

Qt 可以随意根据系统 API 调用本地函数,至于写好的 C++ 程序更不用说了。

二、JavaME 对高层界面开发支持力度疲软


不做夸夸其谈高谈理论,作者举两个小例子进行说明。

例子一:JavaME 低级界面坐标系变换不灵活。javax.microedition.lcdui.Graphics 提供的 public void translate(int x,int y) 方法只能进行上下左右式的变换:这种变换基本没有意义。大家完全可以通过简单的坐标增减来达到这种效果。我们最需要的是可以进行旋转的坐标变换:虽然没有旋转的坐标变换,很多效果也可以通过计算来拿到,但是如果有旋转的坐标变换,只有程序员自己才能体会到其中解放了多少劳动力!

Qt 库里有个 QTransform 就为程序员想到了这一点。

例子二:JavaME 不能调节画笔粗细。

很多朋友使用画矩形,或者多画几条直线来解决这个问题。但是效果不尽如人意。而且带来的计算量惊人。比如如果两点在水平直线上或者垂直线上,我们可以增减两点的纵横坐标来多画几条线。但是其他情况就复杂多了。

Qt 的画笔不仅可以调节粗度,而且出于平滑度考虑,还有三种结合点样式进行选择。

三、JavaME 并不真正支持跨平台


所谓的“一次编译到处运行”也只是没落中的王者在娱人自乐。标准五花八样,即使 JCP 官方 demo 也漏洞百出,BUG 一大堆。真的跨平台么?不尽然。这个可能要有人为 JavaME 不平:硬件提供商不尽遵循标准,有的给 KVM 打了补丁,甚至有了自己的 KVM。

对于这个作者不愿意多说一些。作者曾经听一位老板这样说过:“我不在乎你使用什么什么语言,我也不管你用什么什么框架,我要的只是你能够给我实现我的功能!”。跨平台就是跨平台,不跨就是不跨,何必多说呢?

四、前景与钱景


先不说 Java 之父即将成为“待业”人员,Java 语言前景暗淡之事。就国内环境而言,因为 Java 语言入门低,所以越来越多的应届毕业生选择了 Java。当然,如果真正精通 Java 还是很吃香的,但是大家还是要面对 Java 程序员身价越来越低的现实。

根据 07,08,09 年三年 IT 起薪排名,Qt 起薪排名几乎和 DBA 并驾齐驱。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: