You Are Here:

Community: Blogs

Who am I?

dcrocha

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 fun stuff: http://rawsocket.org

 

Calendar

« November 2008 »
Mo Tu We Th Fr Sa Su
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
 

Daniel Rocha's Forum Nokia Blog

Commercial S60 applications in Python

dcrocha | 28 November, 2008 18:10

Why aren't there (m)any commercial apps written in Python for S60? This is a question I have been asking myself since I started working with this technology back in late 2006.

Mikko Ohtamaa from Red Innovation wrote a very interesting piece on the topic back in February, and from his post plus practical experience plus I have put together a list of the main issues (not in any particular order):

  • Symbian Signed compatibility: Python apps do not have sophisticated memory control, therefore they may fail some SS tests related to performing well under scarce memory conditions. The new Symbian Signed "Express Signed" feature partially solves this issue (?) since it does not involve sending an app for testing by a test house - so the standard test criteria is not used.
  • Packaging and distribution: Packaging Python applications in .sis files is hard. If a developer does it without the Python runtime (distributed as a separate file), users have to be instructed to download the runtime from another place, which is less than ideal since we want our applications to be installed in a single shot. Also if two different applications are packaged with the different versions of the runtime, problems will arise as Symbian prevents installing conflicting binaries with the same UIDs. Python for S60 Community Edition presents a valid solution for this problem, since it allows to package a Python app, customized runtime, C++ extensions and everything else into a single .sis file that can be installed as if it were a native application.
  • API set: I would say that Python API set is situated between C++ and Java sets. It has more features than Java (in general) but less than C++. This can generate high expectations on developers, who think of Python as an easier way of writing native apps. But when they realize the API set is greatly reduced from what's available in C++, they may get frustrated on having to write their own extensions. There's a healthy amount of activity happening around creating C++ extensions for PyS60, so that helps a bit as well.
  • Culture: Python developers are hackers, used to a lot of freedom in other platforms. They may get quickly annoyed by the constraints of mobile development, specially PlatSec and Symbian Signed, and give up trying to get their apps to commercial quality. I see no solution for this problem as of now.

That being said, I wish to say I am a supporter of the idea that Python for S60 can be used for commercial apps, not only for rapid prototyping, and that's exactly why I am puzzled by the lack of commercial apps in this technology.

What do you think is the reason for that?

[]s
Daniel

RSSComments

Re: Commercial S60 applications in Python

jplauril | 29/11/2008, 11:54

We're going to improve the packaging and runtime deployment part in the near future. Stay tuned.

OPL

harnevie | 29/11/2008, 16:51

OPL remains the only language for Symbian that managed to produce a large number of commercial applications from topic matter specialists rather than programming specialists. For some inexplicable reason, Nokia refuses to invest in OPL, though it would have been the simplest and cheapest way forward to create application loyalty (and thereby S60 loyalty).

Express Signed

wizard_hu_ | 30/11/2008, 08:46

Via abusing Express Signed, you may risk the revocation of your Publisher ID. ES is not some "alternative way" for applications which would not meet the criterias, randomly picked submissions are going to be tested.

The future looks bright

miohtama | 30/11/2008, 17:38

Hi Daniel,

The problems I mentioned in blog have been largely solved since the writing.

1. Express signing has not yet complained about any apps we have signed

2. PyS60 Community Edition starts to feel solid. We have rolled out few commercial apps now with it. We are planning to make some sort of "easy" release out of it - no SDK needed. But deployment still needs very much of expertise and cannot be done by anyone. You can much blame the amateurish design of symbiansigned.com here.

3. Further, PyS60 CE plans to coordinate some extension development

4. Symbian architecture is not very human friendly and this probably cannot be fixed easily - especially untraceable EXEC errors are hugely annoying. Maybe open sourcing Symbian helps a bit, since we can actuall know what's crashing there (internal developers don't havet this kind of problems?)

Also, Jukka has mentioned that the Nokia has cried to developer cry for difficult deployment. Python for S60 is easy to develop, pain to deploy. Kudos for Nokia to listening to community.

PyS60 based on Py2.2 is not very solid and I have observed that the developers usually shoot themselves to foot when they choose this "agile Python approach." Mysterious socket errors and application hangs on the device might even lead to the point that otherwise well behaving application cannot be released. But I expect this thing being solved when Nokia releases the next major PyS60 version.

Re: Commercial S60 applications in Python

croozeus | 01/12/2008, 00:46

croozeus

Hello Daniel,

You address a hot topic in PyS60 :D

Mikko's comments quotes that good deployment is quite feasible with PyS60 Community edition, they just need to make the process easy and simple for developers. Extension development - I wonder if Nokia has any contractors for this?

Jukka, thanks for listening and we are looking forward to further releases and improvements packaging and runtime deployment part. Also a major release before Xmas would be motivating :D

Python developers are hackers. They prefer easy way out :D

Br,
Croozeus

Newbie question

alessandro.rotunno | 01/12/2008, 07:19

Hi, I'm new to python (and PyS60), I started documenting and studying this language because I want to develop a "weekly alarm" in Python (basically a clone of Handy Alarm). The default alarm clock in S60 (I have a nokia E65) is only daily, and it's sooo annoying setting up the alarm every day.
I discarded JavaME and C++ because they are too complex compared to python. Do you think I can manage to do such a simple application and create a sis file?? I would like that this application starts automatically after power on the phone. Is it doable in Python or would be a pain? thanks

Automatic Symbian Signed waiver

Sorcery-ltd | 01/12/2008, 08:06

Sorcery-ltd

Hi,

Just thought I'd add that although using Express Signed and hoping is not a viable strategy, it should be fine for Python applications that only fail the low-memory tests because they get an automatic waiver for that anyway - it's specifically mentioned in the "complete guide" document.

Mark

Commercial

JOM | 02/12/2008, 08:55

JOM

This is something I've been thinking a great deal lately.

There's one thing you mention, but leave to background: the COMMERCIAL aspect. The problems you list are real and need solution, but are mostly technical issues concerning developer.

Another set of questions are about business: how to get money from user(s) in exchange of software/service.

..sorry, this new TINY blog reply box is quite unusable. Impossible to write any longer replies. Shame if that was the plan :(

Short summary of the rest: protect source code, sw registration system, anti-cracher python measures, add-on services...

Cheers,

--jouni slowly getting annoyed about the "improved" FN website

Re: Commercial S60 applications in Python

chall3ng3r | 02/12/2008, 22:14

chall3ng3r

Good points. We have been trying to bring PyS60 into mainstream commercial scene through SWF2Go which allows to use Flash Lite with PyS60 or Net60. Developer can also embed PyS60 into application's SIS using it.

One such sample application "Be My Lips", I already posted SWF2Go wiki some days ago. Check www.swf2go.com/wiki/

We are currently working on our own commecrial product based on Flash Lite + PyS60. Will be posting about it soon.

best,

// chall3ng3r //

Re: Commercial S60 applications in Python

korsun14 | 21/02/2009, 21:36

I think that the last item is the main one

"Culture: Python developers are hackers, used to a lot of freedom in other platforms."

Commercial S60 applications in Python

cell phone news | 23/03/2009, 17:22

Very interesting article and very inspiring. I think that Python s60 will be the way i will learn python.

Re: Commercial S60 applications in Python

thedesignerfenix | 05/10/2009, 07:59

Great topic!
The main issues you listed are very well picked
kitchen renovation Melbourne

You must login to post comments. Login
 

Rate This

 
 
Bookmark this page: DeliciousDiggFacebookGoogleYahooStumbleUponRedditDiigoTechnocratiTwitter  Share this page Share this page Print this Page Print this page Invite a friend Invite a friend
京ICP备05048969号    Email Newsletters Press Terms & Conditions Privacy Policy Sitemap Contact Us © 2009 Nokia 
RDF Facets: qdcZidentifierQSxhttpE3aE2fE2fblogsE2eforumE2enokiaE2ecomE2fblogE2fdanielE2drochasE2dforumE2dnokiaE2dblogE2f2008E2f11E2f28E2fcommercialE5fappsE5fpythonX qdcZtypeQUqfnZE45E78cludedFromGeneralE4cistingsQ qdcZtypeQUqfntypeZBlogContentQ qdcZtypeQUqfntypeZBlogE45ntryQ qdcZtypeQUqfntypeZCommunityContentQ qdcZtypeQUqfntypeZE52esourceQ qdcZtypeQUqfntypeZWebpageQ qdcZtypeQUqmarsZManagedE52esourceQ qdcZtypeQUqwebZInformationE52esourceQ qdcZtypeQUqwebZPageQ qdcZtypeQUqwebZE52esourceQ qdcZtypeQUqrdfsZE52esourceQ qfnZtopicQUqfnTopicZpythonQ qfnZtopicQUqfnTopicZseriesE5f60Q qfnZtypeQUqfntypeZBlogContentQ qfnZtypeQUqfntypeZBlogE45ntryQ qfnZtypeQUqfntypeZCommunityContentQ qfnZtypeQUqfntypeZE52esourceQ qfnZtypeQUqfntypeZWebpageQ qfnZuserE5ftagQSxpythonX qfnZuserE5ftagQSxs60X qmarsZlanguageQUxhttpE3aE2fE2fswE2enokiaE2ecomE2flanguageE2d1E2fenX qrdfZtypeQUqfnZE45E78cludedFromGeneralE4cistingsQ qrdfZtypeQUqfntypeZBlogContentQ qrdfZtypeQUqfntypeZBlogE45ntryQ qrdfZtypeQUqfntypeZCommunityContentQ qrdfZtypeQUqfntypeZE52esourceQ qrdfZtypeQUqfntypeZWebpageQ qrdfZtypeQUqmarsZManagedE52esourceQ qrdfZtypeQUqwebZInformationE52esourceQ qrdfZtypeQUqwebZPageQ qrdfZtypeQUqwebZE52esourceQ qrdfZtypeQUqrdfsZE52esourceQ
User Rating: qfnZuserE5FratingQNx4E2E3333X
RDF Facets: qfnZuserE5FtagQSxpys60X qfnZuserE5FtagQSxpythonX