Sign in to follow this  
dxFoo

How is C++ doing in the mobile industry?

Recommended Posts

dxFoo    100
I guess the question says it all. I'm aware of Java & I'm taking a class in it. However, using C++ seemed like an interesting thought since I use it for everything else. I just want to hear from those who actually used it or have heavy knowledge on it. Brew comes to mind. As the result of this post, I hope to understand the nuts and bolts of how it works, and what its pros and cons are. Thanks.

Share this post


Link to post
Share on other sites
frob    44917
That depends almost entirely on your platform.


Mobile platforms include PDAs (Palm and WinCE), cell phones, handheld consoles, custom devices, and a bunch of stuff that I can't think of and therefore doesn't matter. [grin]

Many (most?) mobile devices don't support Java. Sure, a bunch of cell phones do, and if that's your target, their Java support is good enough.

Palm is almost exclusively C++, with some C and asm thrown in.

Windows CE has been mostly C++ (actually, eMbedded Visual C++, which has always been a far cry from real C++), with some other languages thrown in for fun. Now there is also VS2005 C++ support, and using .NET CE, C# and VB.NET work well.

Many cell phones can be programmed without Java, some using Windows CE, some using other OS's with gcc toolchains, some using custom compilers. Again, it depends on your target platform.

Other portable devices, such as the PSP, Gameboy, and other portable consoles, you get to use C++.


So C++ pros:
More available generally, except on Java devices like Nokia cell phones
Lots of libraries available
Normal C++ vs. Java debate pros

C++ cons:
Less available on certain devices, like Nokia cell phones
Fewer libraries available
Normal C++ vs. Java debate cons

I'm not sure what you mean by "I hope to understand the nuts and bolts of how it works," since it's basically the same as Java developement. You develop using some combination of emulators and actual devices.

frob.

Share this post


Link to post
Share on other sites
shmoove    821
I haven't dealt with most of the other devices but on actual cellphones C++ does limit your possibilities. Low end phones are usually Java or BREW, but Java phones are the only ones where you can try your own apps on the phone. In order to get a BREW app on a non-development phone it needs to go through Qualcomm's pipeline (get tested and certified), so there is a lot of $$$ involved. In order to do hobbyist development on a cellphone you need to get one of the high end devices that has an open OS like Symbian or Windows Mobile, which are fewer and more expensive.

And practically every PDA and smartphone nowadays will have some support for Java, so I'm going to disagree with the availability argument. The only devices that won't support Java AFAIK are the mobile consoles and custom devices.

shmoove

Share this post


Link to post
Share on other sites
frob    44917
Quote:
Original post by shmoove
I haven't dealt with most of the other devices but on actual cellphones C++ does limit your possibilities. Low end phones are usually Java or BREW, but Java phones are the only ones where you can try your own apps on the phone. In order to get a BREW app on a non-development phone it needs to go through Qualcomm's pipeline (get tested and certified), so there is a lot of $$$ involved. In order to do hobbyist development on a cellphone you need to get one of the high end devices that has an open OS like Symbian or Windows Mobile, which are fewer and more expensive.
shmoove


I think that's just a re-statement of my post.

Java MIDlets are great for cell phones, many new phones support MIDP 1.0 or 2.0. BREW needs $. If you are targeting the latest Nokia cell phones, then Java is great. That's the thing I listed in the PROS set.


Quote:
Original post by shmoove
And practically every PDA and smartphone nowadays will have some support for Java, so I'm going to disagree with the availability argument. The only devices that won't support Java AFAIK are the mobile consoles and custom devices.


There is some Java support on PDAs, but it isn't great.

Palm's support (MIDlets, not full Java AFAIK) requires the 5.2 OS or later, so it will only work on devices after mid-2003. That's about the time that Palm device sales began to plummet and PocketPC's skyrocketed.

PocketPC has IBM's J9 JVM or NSICOM's Creme JVM, both inexpensive but still $ products. I have heard rumblings about a free PocketPC JVM, but most of the rumblings have been negative.

Sadly, you can't get the full power of either of these devices with Java. The PalmOS MIDlet support that I have seen (YMMV) has been lackluster compared to native apps. IBM's PocketPC JVM tended to eat the memory like candy when I last tried it -- my 48MB device didn't perform well with it, those with more RAM did well, but you can't expect people to have that. The latest batch of PocketPCs have much slower memory since it's all NV (What's up with that, HP?!) so I expect IBM's JVM to be agonizingly slow on them.


J2ME for the cell phone.
Java or J2ME on PDAs with disgression, if your target device is up to it.
C++ for the PDA and other mobile devices as the language of choice, and basically the only choice if you want to run on pre-2003 devices.

frob.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this