Win a copy of Functional Reactive Programming this week in the Other Languages forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Java versus C for pda programming

 
Allan Jacob
Greenhorn
Posts: 5
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
New to j2me, so forgive me if this is a basic question...
Isn't C the language primarily used in developing pda apps? Is it feasible, thinking primarily from a performance perspective, for Java to become mainstream in this area? From the Java aspect, what are the answers to the ability of C to be more directly in control of the hardware?
Thanks!
 
Michael Yuan
author
Ranch Hand
Posts: 1427
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Performancewise, J2ME is almost as good as C with the new generation of JVMs. Java is fast enough to program action games on today's cell phones. With more manufacturers adopting Java acceleration chips and execute Java byte code directly on the hardware, Java will outperform C.
In terms of native hardware access, C is better since most of those features are originally developed in C. But most common device features are also accssible via Java APIs (GPS, Bluetooth, SMS/MMS, SIM card etc. etc.). Those Java APIs are all standardized -- so you do not need to learn the APIs for Symbian and for Windows CE and for Palm separately. With Personal Profile, you can always use JNI to access native C APIs from Java applications.
But the most appealing feature of Java is that gives the operator/manufacturer control. The wireless comm industry is a very conservation industry. Operators will not allow a device with un-secured low-level programmable APIs on their network. BREW is a complex infrastructure solution to address those issues on C/C++ based platforms. Java make things a lot easier for carriers to manage.
 
Michael Yuan
author
Ranch Hand
Posts: 1427
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I realize that you are talking about PDAs not cell phones. I think the only PDAs that will sell in the future are the ones that can access wireless networks (PDA phones).
 
Theodore Casser
Ranch Hand
Posts: 1902
Hibernate Netbeans IDE PHP
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Originally posted by Michael Yuan:
I realize that you are talking about PDAs not cell phones. I think the only PDAs that will sell in the future are the ones that can access wireless networks (PDA phones).

Those and ones that have 802.11b/g. I might not need a PDA-phone, but it is damned nice to be able to check my email from the garage or IM from the airport regardless.
 
Daryl Wilding-McBride
Author
Ranch Hand
Posts: 60
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Originally posted by Allan Jacob:
Isn't C the language primarily used in developing pda apps? Is it feasible, thinking primarily from a performance perspective, for Java to become mainstream in this area?

The peformance of some of the JVMs available on PDAs is very good. But I think the advantage of Java is that it's a nicer, less technical language than C. It think it's easier for developers to write a better quality application in Java, because they're not concerned with pointer arithmetic and memory leaks (although memory always remains a key focus area in mobile devices).
I know that many embedded systems developers prefer C, but there are also many Java developers who would like to apply their skills to PDAs, and from an organisational perspective it might be more efficient to concentrate on one language for applications.
As for whether Java will ever become a mainstream development language for PDAs, personally I doubt we will see in the short term more applications written in Java than C on PDAs. But it's nice to have an option. In the medium term, as new and interesting devices evolve, it will be interesting to see.
 
Lasse Koskela
author
Sheriff
Posts: 11962
5
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
With more manufacturers adopting Java acceleration chips and execute Java byte code directly on the hardware, Java will outperform C.

If you don't mind, Michael, I'd like to hang on to this statement of yours for a while... Could you enlighten us about how exactly will Java "outperform" native applications? Will the benefits of runtime optimization exceed the overhead of running an additional layer (virtual machine) in between the hardware and the application?
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic