views:

178

answers:

5

Hi, I am interested in programming for Mobile Devices. Now I have a phone which runs Symbian S60 3rd, which is one of my motivations for programming for mobile devices. Now, my question is, which one is better to go for? Python or C++? I have a good background in C++ (ANSI), Java and C#. Thanks.

+1  A: 

Python is more easy to use, but you have to know that a mobile is normally a very strict environment, so is possible that C++ be a better alternative.

Nisanio
A: 

If you want to get into mobile development, C++ can definitely help you with Microsoft Windows Mobile development.

However, just as S.Lott stated, each platform may require an entirely different IDE, let alone an entirely new language. For example, in order to program for the Android and BlackBerry platform, developers use Java; for the iPhone, developers use Objective-C.

Unfortunately, I'm not familiar with any mobile platforms on which developers can create GUI apps using python.

Sean
MeeGo, Maemo and Symbian (at least some Symbian-phones) run Qt, and for Qt there is PySide and PyQt for rapidly building UIs. PySide and PyQt have different licensing and platform support, though PySide seems to be the most future proof choice and it's endorsed by Nokia.
Fredrik H
+2  A: 

There's a large learning curve associated with Symbian C++, if you want to do a quick prototype probably do it in Python. It depends on what you want your application to do. I believe the Symbian Python implementation was done in some Symbian developers spare time so it may not give you access to everything on the phone. Symbian C++ will give you access to almost everything.

Also, Java and MIDP may be useful to you too.

James
+1  A: 

If you want to program for your Symbian phone, why not download some tools, read some tutorials, and try it? It looks like they lean towards C++ and Qt.

Nathon
A: 

Python could work , C++ could work, but you should also consider JAVA MOBILE.

Python is nothing more than wrapping of C++ libraries, but that means you will have to do some wrapping as it is not programming language supported by the operation systems of mobile phones with the exception of Android.

Another option is Javascript, the only way to make sure your apps will work anywhere , with no recoding . Pyjamas can help you translate your python code to javascript code.

If I were you I would given Pyjamas a serious try.

http://pyjs.org/

Obviously using javascript imposes some restrictions , the biggest one is that your app will not run natively but from inside a browser. However in case of iphone os Apple has been quite vocal about JAvascript and HTML5. What happens however with the thousands other mobile devices ? What about those that do not browse the net and dont have a browser or have a broswer and is pathetic ?

The choice is yours.

Kilon
Python is not the de facto language for Android. Java is (although Google will argue it's not real Java to avoid Oracle's law suit).
blokeley
I edited my answer to make it more clear. "de facto" was a poor choice of word. I wanted to imply support by the operation system.
Kilon
@Kilon: Thanks for your reply. I am familiar with Java Mobile, and have done some programming with it, but compared with C++ on Mobile Platforms, it has a lot of restrictions, because it has to run on phones like SE K750. But when you use C++, you know there is an OS, and at least a better CPU (than that of K750 and similar). So, I am not a big fan of Java Mobile. I prefer my old friend C++!!
Ako
@Ako: Fair enough, that means you already made your choice. I dont know if you should embed python into your C++. I know it can be done , but I have no experience with mobile apps and what issues this may generate, but I think its worth to give it a try. Obviously each device is very diffirent , so sooner or later you will have to get your hands dirty if you want a clear answer. I wish you a bug free experience.
Kilon