File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes Java Micro Edition and the fly likes which way to go: eMbeded C++ or Personal Java Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Mobile » Java Micro Edition
Bookmark "which way to go: eMbeded C++ or Personal Java" Watch "which way to go: eMbeded C++ or Personal Java" New topic

which way to go: eMbeded C++ or Personal Java

Waldle Cai
Ranch Hand

Joined: Aug 16, 2000
Posts: 34
Hi all,
I need to develop a program on Win CE 3.0. The program will have to be able to display jpeg files, play back sound and video clip etc and access network service like http. Shoudl I use eMbeded C++ or Personal Java?
Thanks and Regards
Mark Herschberg

Joined: Dec 04, 2000
Posts: 6037
Oooh, good question.
I don't know enough about your project to suggest a clear answer, but I give you some ideas about the advantages and disadvantages of each language in the mobile device space.
Disclaimer: I am very Java biased. I learned C years ago and have maybe coded about 100 lines of it in my life. Rusty doesn't being to described my C/C++ abilities. I am a member of Sun's JSR 75, J2ME PDA Profile Expert Group. These opinions are my own, and based on knowledge external to the Expert Group.

For a WinCE device, your options are PersonalJava (which evolving into the Personal J2ME profile) and C++. Iassume you already familiar with both languages, and learning isn't an issue.

WinCE is a MS OS, and MS likes C++ and doesn't like Java. The same advntages of C++ over Java on a PC apply here: its faster (no JIT on WinCE) and you can more easily access native functionality. I don't know how readily availavle C++ WinCE compilers are.
We found our Java app to be a bit slow on a Jornada 133MHz; however running on an iPaq (206MHz?) seems fine. I actually don't really like Java for mobile devices simply because unlike PCs and workstations, mobile devices have a lot of variance between them. Jave tends to only support the intersection of their fuctionalities an can be very limited, e.g. MIDP. While device/JVM manufacturers can add OEM APIs, that makes Java as hard to port as C++. I think over the next few years, as devices matural and standardize, J2ME will, too, and this will be less of an issue. (Personal Java is currently very close to the JDK 1.1.8, but this may change a bit as it moves into the J2ME space, and as other devices come out which may fall into the PersonalJava space, influencing its direction.)
Also, there are a limited number of JVMs available, and their licensing isn't as simple as on the PC, so if this is a commercial/distributable product, that may be a factor.
Java does offer one advantage, however, and this is where my Java bigotry comes in. I think code is easier to maintain in Java, than in C++. For most commercial products, maintanence is a hugh cost of software development, much greater than the initial development cost, and so this plays a big factor.

So really, it depends on
- who will use it: few? many? is it a commercial product?
- how they will use it:do you rely havily on native
- what is the future:how long will you support it? will you be
adding new features? will you be on multiple platforms?
I hope this helps.
Waldle Cai
Ranch Hand

Joined: Aug 16, 2000
Posts: 34
Thank you, Mark, for your professional opinion!!
This is NOT gonna be a commercial product. It'll be running on IPaq. It's just for demo. So development time frame is the first factor I should consider. Following issues are so my concern:
Is PersonalJava for Win CE 3.0 providing JPEG displaying API, multi-media API and http access?
Thanks a lot!!!
I agree. Here's the link:
subject: which way to go: eMbeded C++ or Personal Java
It's not a secret anymore!