A blog about everything that sounds interesting to me and Forum Nokia audience.
dcrocha | 27 May, 2008 18:29
If I had just made a dollar each time I heard this question... *sigh*.
With the availability of so many different development technologies in Nokia's platforms today, sometimes is hard to decide which of them we should use to build our application, isn't it? There's Java, Symbian C++, Open C, Flash Lite, WidSets, WRT Widgets, Python, and the list is still growing.
This is good news for developers, since not everybody has the same technical background nor is developing the same kinds of applications; this means at least one of the technologies will fit our experience and purpose like a glove, and we are going to use it. On the other side, this may confuse newcomers to the wonderful but fragmented mobile software world. Usually it goes like this:
Question: "I want to write an application that opens a file and sends it out to a web server. What should I use to create it?"
Answer 1: "Java ME, FileConnection API"
Answer 2: "Don't bother, use C++ or you will get a lot of security prompts."
Answer 3: "Why use C++ when you can do the same with Python? C++ is way too hard!"
Answer 4: "Python does not run on S40, use Java."
Answer 5: "Do you really need all that jazz? Why don't you go with Flash Lite and use server-based persistence? Your application will look great!"
Answer 6: "Flash Lite is too fragmented. Use Java, but beware of the MIDlet signing issues or your app's user experience will be crap!"
Go check the Discussion Boards. It is crowded with examples of conversations like the one above. Having answered this question so many times before, I decided to summarize my answers in this blog, in the hopes of helping developers decide what use from the growing technology options pool offered in mobile devices these days. Please keep in mind that the following are my opinions on the subject; yours may differ and even prove mine wrong, but that's the beauty of interacting with people within a community. As the number of technologies it too big for a single post, I will continue my analysis in the upcoming posts. I will start off with the most popular mobile developmentp platform, Java ME.
Technology: Java
Good for:
Why?
Bad for:
Why?
Next time I will cover the darling of all Internet programmers, now getting much of the attention on S60 platform: Python.
See you!
tote_b5 | 28/05/2008, 11:51
Daniel,
Thanks for writing a series of post about this question, this topic is really worth the attention. Actually I could imagine an ever-expanding set of articles discussing this question, of course, a blog is not really the right means for sharing this information (as opposed to a Wiki, for example).
Furthermore, it would be also important to compare other development environments, tools, etc. than what Nokia currently offers to see how developers do mobile software development for other phones, like Linux phones, Windows Mobile-based ones, iPhone, BlackBerry, etc. I must admit, though, that it would be a very complex analysis and would most probably require joint effort of experts on their own areas (unless you're experienced in all of them:).
biskero | 28/05/2008, 12:31
Ciao,
would it be more appropriate to ask: "what I am trying to achieve and then select the appropriate technology?"
Alessandro
bogdan.galiceanu | 28/05/2008, 13:11
Nice post, Daniel. Maybe after you write the whole "series", it can be posted as a sticky thread in the Discussion Boards (probably the General Discussion section).
croozeus | 28/05/2008, 13:19
Eagerly, awaiting the next post...
JOM | 29/05/2008, 23:14
It's not only a question of what you can do with the language. As important question is the usability from developer point of view: what kind IDE there is, how's the documentation, how do you debug, do you have profiler and code scanner, how do you do automated testing etc.
Even though I hate it, also signing process should be considered. Java verified will get more difficult, WRT has the easy way.
Looking forward to next article,
--jouni
lpvalente | 02/06/2008, 14:27
Hey Daniel,
I've written a page on the Wiki for beginner developers named "Getting started on mobile phone development", but it's a bit incomplete.
I think it would be very nice to have there the information you wrote here
Here's the link: http://wiki.forum.nokia.com/index.php/Getting_started_on_mobile_phone_development
I'm a software engineer with 10 years experience in application development, having worked with Web (Perl, PHP, JavaScript, JSP, Servlets, Flash, ASP), Enterprise (Java EE) and Mobile software (Symbian C++, Java ME, Flash Lite, Python). Currently working as Forum Nokia Technology Expert with many exciting technologies.
Check my blog for more articles and funny stuff: http://rawsocket.org
Re: Which technology should I use for development? Round 1: Java
antonypr | 28/05/2008, 04:17
It's going to be more interesting when Nokia releases Qt and Silverlight. :)