PyS60 1.9.0- What is new? PyS60 2.0- Expectations?

by Pankaj Nathani

It was really a good morning today, when I saw the new PyS60 version 1.9.0  released on Forum Nokia.

This post summarizes new features of PyS60 1.9.0 and PyS60 2.0 expectations.

So whats new with this major release? Below is the list,

  • Python 2.5.1 core, with much better compliance to the standard Python than before. Most of the modules in the standard library are included – basically almost all that make sense on this platform and even some that don’t (for regression testing purposes). This includes such goodies as the Expat XML parser, ftplib, smtplib, urllib2, xmlrpclib, SimpleHTTPServer, cPickle, asyncore and especially the much more compliant socket module. Garbage collection is enabled, so there is no need to dismantle reference cycles anymore.
  • Packaging Python applications to SIS files is much easier. The user-friendly Ensymble tool is now the official packaging tool, and we’ve made a GUI for it so packaging your application is now just a button press away.
  • The environment for SIS packaged applications is closer to the script shell environment, since the script shell is no longer a special case but just a regular application packaged using the Ensymble tool. This should make testing your application easier.
  • SIS packaged applications are now more robust:
  • If the runtime is missing and you try to launch the application, a human readable error message is displayed instead of the application just failing to start, like before.
  • If the application raises an exception on start-up, the traceback is printed on the screen instead of the application quitting silently.
  • The applications have a default text console just like in the script shell environment, so printing text using the print statement works the same way in SIS packaged apps and the script shell.
  • On S60 3rd Ed FP2 devices, access GPS out of the box without signing hassle! Since S60 3rd Ed FP2 devices now permit the Location capability for self-signed applications, that capability is now enabled by default in the S60 3rd Ed FP2 binaries.
  • Almost all of the old 1.4.x Python APIs are included. The rest should be added during the 1.9.x series.
  • The interpreter start-up time is considerably longer than in 1.4.x. We’ll optimize this.
  • The runtime package is much bigger than with 1.4.x. This’ll get smaller once we have the modified packaging model working – estimate is that the final base runtime would be less than 1MB.
  • There is an additional dependency to the OpenC libraries, which must be installed for the runtime to work.
  • Sadly, S60 2.x devices are not supported by the new code-base, and never will be. This is because OpenC libraries aren’t available for S60 2.x.
  • This initial release is aimed at script developers, not extension developers, thus no plug-in to the C++ SDK is included. The C++ SDK plug-in should follow soon.
  • Binary compatibility between 1.9.x versions isn’t guaranteed until 2.0. We won’t break it without good reason, but it can happen.

Bogdan summarized them as follows,

Pros:

  • Python 2.5.1 core. Yes, that means more modules and improved versions of the already existing ones will be available. This is very good when it comes to stability.
  • Official packaging method. This is my personal favorite. The very useful Ensymble has been given a rather nice GUI which makes it easier to use.
  • Better error handling. If the application raises an exception on start-up it doesn’t just terminate silently but prints the traceback on the screen.

Cons:

  • Much longer installation and start-up time. Really, you’ll notice the difference. But like the thread says, this will be fixed.
  • No support for S60 2nd Edition. Sadly, this part of the S60 family will no longer be supported now or in the future, because there are dependencies on OpenC libraries, which aren’t available for 2nd Edition.

Notes:

  • This release works on S60 5th Edition like the previous ones did, but it doesn’t explicitly have any special features for it (like support for touch events).
  • In a strange yet understandable way, the runtime isn’t signed by Nokia with all capabilities like before. We only get the user-grantable set this time.
  • Apparently PyS60 has moved from sourceforge and has a new home: https://garage.maemo.org/projects/pys60/
  • The documentation no longer comes as a pdf file (at least this time it didn’t) but as a much more comprehensive collection of HTML documents. I think this is better in pretty much every aspect.

This is not a stable release, but just one of the first in series of 1.9 to make a solid and a satisfying PyS60 2.0 !

Targets for PyS60 2.0 are as follows,

  • Better usability for the developer and the end user
  • Easier runtime deployment. It must be possible for a developer to package their application in a way that the end user doesn’t need to think about the runtime installation. Note that we’re not saying the end user doesn’t have to _install_ the runtime, we’re just sayingthey don’t need to _think_ about it.
  • Easier tools installation and SIS packaging for Python applications. Especially packaging Python applications to SIS has proved to be pretty tough with all the dependencies you need to install. The 1.9.0 release improves things with the new all-in-one installer that gives you the packaging tool, the documentation and the SIS files you need for development in one package. The user-friendly Ensymble tool is now official, and there is a GUI for one-button package creation.
  • Easier and more robust ways to use and distribute 3rd party extension modules with your application. Free use of third party extensions isone of the main advantages of Python, and we want to enable and encourage that. We’ll improve the Ensymble packaging tool to automatically bundle modules not included in the base runtime into your application SIS, as well as specify how a module author can distribute their module to other developers so that the module can be easily used.
  • Integrated HTML documentation: The S60 specific documentation is now a part of the full Python documentation so you no longer need to switch between them.
  • Reliability and compliance with the standard Python. We’ve put effort into automatic testing on multiple target platforms as well as fixing any noncompliance revealed by Python’s own regrtest.py test suite. The compliance isn’t perfect yet, but it’s much better than with the old 1.4.x code-base.
  • Quicker start-up and smaller base runtime package size than with 1.9.0.
  • Selected API additions. Qt support is definitely on the roadmap. Schedule we can’t give yet.
  • Support for non-Windows platforms for things other than C++ extension development. Already preliminary support is available in 1.9.0, which contains an all-in-one archive that gives you the packaging tool, the documentation and the SIS files.

The plan seems good, and the packaging process is getting simpler with the availability of GUI based Ensymble.

Just hoping that one day, PyS60 ships preinstalled with the Nokia devices. May be with PyS60 2.0 ?

Merry Christmas! :-)

Related posts:

  1. PyS60 1.9.0 is now here! A heavily upgraded version of Python for S60 was released...
  2. Happy Birthday to PyS60 Boxing day, and PyS60 has just completed 4 years...
  3. Switch back to PyS60 1.4.5… Last week, on X’mas eve, we had the major...
  4. Its 2.0 time – PyS60 2.0.0 is released The much awaited PyS60 2.0.0 development kit was released...
  5. PyS60 1.9.4 is now here! As predicted here, PyS60 team releases one more PyS60 dot...

Related posts brought to you by Yet Another Related Posts Plugin.