views:

1008

answers:

11

I was wondering what are the benefits of using anything else but Java for Mobile Application Development.

+4  A: 

Java is the most ubiquitous and for that alone it is your best choice.

SCdF
+5  A: 

I do think that yes, Java is the most common language for devices, with two exceptions:

  • Windows mobile applications, that are frequently built in C++ but that will be built more on the .NET framework in the future.

  • iPhone applications, that use Cocoa and Objective-C.

Sergio Acosta
The IBM J9 implementation for Windows Mobile makes Java a good choice for that platform as well, especially for applications that you are writing for multiple mobile platforms (at least you can share a lot of code between them).
JeeBee
Another exception... Palm OS requires an externally added JRE that is less than intuitive for end-users.
Brian Knoblauch
+1  A: 

The only reason I can think of is that you wouldn't need a Java runtime on the target device.

Palm, for instance, allows you to code in C and talk directly to the OS routines in ROM. The C code compiles directly to the machine language without needing a runtime.

paxdiablo
+4  A: 

You have to use whatever the phone vendor(s) that you intend to support will provide. As most provide Java, but only some provide other things, if you want to support a range of handsets, you probably need to use Java for at least some of them.

Your client (be they internal or external) will need to decide what handsets to support, and you then need to base your decision on supported handsets.

It's not entirely impossible that you'll have to ship versions in different programming languages, which may make code reuse more "challenging". It all depends on your requirements. Nobody on this site can tell you what they are :)

MarkR
I thought I'd plug here a tool I worked on in a previous life (http://blue-edge.bg/brew.html). Same approach could be taken for bridging other frameworks with little upfront planning.
ddimitrov
+2  A: 

It really depends on what you're trying to do.

Java, whilst ubiqutious does have speed disadvantages. Also it's not "write once, run anywhere" as it is on the desktop space, as different manufactureres, even different devices have different sub-sets of java installed each with differening inclusions of APIs.

Using native code is going to be more efficient, whilst more difficult to port. It provides a more direct representation of the devices capabilities without the sandboxing of a VMs Apis.

Alternatively, you could use a language like C which whilst isn't strictly portable, will have implemenations on many devices with minor tweaks to make, whilst retaining a lot of the speed beenifts of such a language. (OpenC on S60/Symbian), C on Palm etc.

Dynite
+2  A: 

It depends on what you see as the future of the the mobile space. If the iPhone turns out to be as popular as the iPod, then no, Java probably wouldn't be the best choice.

One thing to consider is that at some point there may no longer be such thing as an iPod Nano, perhaps the Touch will be the only iPod available. In that case, every single iPod out would support Apple's iPhone OS and the number of iPhone OS mobile devices would far exceed those of Java.

Five years from now perhaps "Cocoa vs. Android" will be the new Mac vs. PC. In that case, Java could be just as good as Cocoa.

bpapa
I was hoping someone would mention Android.
Alan
A: 

before one can provide a speculative answer to such a trivial question there are other variables that need be answered. What kind of phone application does one want to develop. e.g. you can use xhtml for something that does not need to connect to the phones' core features. and when you need to connect to the phone software or hardware you have can use java,python,c++,windows mobile or the new kid on the block android.

Ronald Conco
+1  A: 

Java is the best if you want to support multiple phones, however J2ME is a limited environment. If you are doing homebrew development then develop for whatever your own phone uses, for commercial development then Java is the most widespread (and there are companies that can port Java to other platforms).

+1  A: 

One of the advantages of using native code is your are closer to the hardware, on a mobile phone this means you might be able to take advantage of features which are not exposed to the virtual machine upon which your Java application is running, the promise of Android is that everything is a lot more exposed that it is with a typical Java Mobile implementation

kgutteridge
A: 

Best is to go to nokia, apple microsoft or google web sites or whaterver and see what developer tools and resources are available and choose the one you want to develop for all of them are very good as good mobile app developers can help increase their market share.

darthchesster
A: 

Depends on what Application you are trying to write.

If its a simple service / data provider I would use HTML and CSS via a framework like jqTouch, jQuery Mobile, or http://www.sencha.com/ as these will run on mostsmart phones and you can package them into a binary app using something like http://www.phonegap.com/ this will allow for sliding, GPS, local file storage using HTML5

If you need to a database, motion sensing, bluetooth, game type application then you could look at http://monotouch.net/ http://monodroid.net/

That lets you write c# .net code and deploy onto any platform do you should be covered for windows mobile, android and iPhone.

There is also http://rhomobile.com/ that lets you write applications for all mobile platforms using Ruby.

Daveo