views:

110

answers:

6

I'm planning some Symbian related development on S60 3.1 platform. It seems like generally available language options are Python and C++. However Nokia's official forum seems very much tilted towards C++.

I want to know what are the advantages and disadvantages of using Python for S60 over Symbian C++? And is it even possible to do Python programming for S60 3.1 platform?

+1  A: 

C++ is very, very fast, and the Qt library is for C++. If you're programming on a mobile phone, Python will be very slow and you'll have to spend ages writing bindings for it.

DeadMG
Could you please explain upto what extent is PyS60 is slow? Say If I want to make a simple Photo Uploader application for Flickr which has the ability of taking photographs directly from Camera and uploading it on Flickr account, would PyS60 really be a bottleneck?
sharjeel
@sharjeel: Nobody can say how much slower or faster or whether it's a bottleneck until you actually write the code and compare.
DeadMG
+1  A: 

PyS60 is good when you need to prototype something simple fast. If you try to develop a full application with it though, you'll most likely find yourself sooner or later wanting to use features that are available in Symbian C++ but not in PyS60 without writing bindings (in C++) for it. Also you'll need to deal with the right version of PyS60 runtime being available, and some of them aren't backwards compatible.

If you go for the Symbian C++ route, you can embed a python interpreter in it too.

Phatency
Is it very hard to mix Symbian C++ and Python code?
sharjeel
Well, the difficulty of it is a bit subjective. But I would argue that compared to learning Symbian C++ development, it's not that hard to write bindings for python. (if writing bindings is what you mean by mixing)
Phatency
Yes, bindings I meant but the context is different as I'd want to have a "compiled" SIS of my Python S60 app. Thats why I used the word "mix". I hope that is possible.
sharjeel
A: 

PyS60 has a very limited API. Applications written using it are slow, hard to deploy (since you have to install the runtime first) and cannot be posted on the Ovi store. If you're looking for an easy way to write simple Symbian apps take a look at Nokia WRT.

If you don't mind C++ try the recently released Qt SDK 1.0. It's really powerful, future proof and will soon be supported by the Ovi store.

Mridul
Isn't it possible to convert the Python S60 program into a compiled SIS?
sharjeel
Technically yes. But the user experience (mainly install/uninstall) is terrible. You'll also have trouble getting the SIS signed.
Mridul
+1  A: 

I answer this as a user.

PyS60 is slow and not so much app and sample to start with.

C++ is good, native, fast, but if you mind deevelop app for most device (current N-series), you will not want to go with Qt, I have a N78 and tested Qt in N82 too, it's slow (more than Python, sadly but true)

Fu4ny
A: 

What is the purpose of your programming? Are you planning distribute your app through Ovi Store? If so, you should use a tool that could be tested and signed by Symbian Signed.

What does it mean? As far as I know, they don't provide such functionality for Python. So you have to choose native Symbian C++ or Qt.

By the way, Qt signing procedure is not quite clear for now. It seems Ovi Store and Symbian Signed are only allow Qt apps for a certain devices (Nokia X6, Nokia N97 mini, maybe some other). I suppose it is a subject for a change, and quite fast change, but you should consider this too.

Haspemulator
Are you sure about that? I read on Nokia forums that PyS60 applications can be compiled into SiS as well as can be signed as well.
sharjeel
Yes, you can build sis package from PyS60 and sign it with your devcert or self-generated certificate. But if your app requires some capabilities that require signing with real certificate, your app should be signed by SymbianSigned corporation (http://symbiansigned.com). Only in this case you'd be able to install it on any devices. However, if your PyS60 app use only user-granted capabilities, you can go with it on OVI store. More info about capabilities at Forum Nokia Wiki:http://wiki.forum.nokia.com/index.php/Platform_Security_in_PyS60:_Part2
Haspemulator
Doesn't the same issue pop up in case of Symbian C++?
sharjeel
Symbian C++ app can be passed to Symbian Signed and signed by them for any capabilities. Not sure about this on PyS60 - its shell have quite many capabilities, and can be installed on any phone (already signed by Nokia certificate), but your scripts must be signed separately and I'm not sure that Symbian Signed provides this service.
Haspemulator
A: 

Hello,

When 3rd edition Feature Pack 1 ran the latest phones on the market, the main runtime people were using to program them was J2ME (http://www.forum.nokia.com/Develop/Java/). I know the title pits C++ against Python, but have you considered Java? It was much easier than native Symbian C++. The performance is good.

-jk

John
I am actually porting the application from J2ME to native Symbian because of all those security messages popping up evverytime I access the filesystem, lack of good UI, restrictions and other issues of J2ME.
sharjeel