[PythonCE] The State of Affairs

Alexandre Delattre alexandre.delattre at enst-bretagne.fr
Thu Jul 10 14:39:47 CEST 2008


Chris,

> Also, if we are to encourage developers to build solutions that will  
> work on the PDA, I think distribution is a problem. The environment is  
> workable as a hacker, but if we want to simply the deployment and  
> actually ship applications, at this point it seems a bit complex. It  
> would be nice if there was a Py2App, or even, something along the  
> lines where the solution could be bundled into a directory (not as an  
> EXE, just as Python and your application files) for easy distribution.


I do agree the distribution is problematic especially for end-users having no experience of python.
The problem I see with a py2exe-like solution, is that if each application should hold ~4Mb 
(which is approximatively the size of python.dll+python.exe+standard library) this limits the number of apps
you can install on a handheld device. In my opinion, the separation of interpreter and source files is a more 
viable option on PDA, even if flash memory is getting cheaper and cheaper.

What I really like to start implementing is a web-based approach of programs distribution, 
a bit like apt-get on debian linux (with a graphical frontend of course) or like the Installer.app on jailbreaked
iphones.

This way it would allow us to search/install/uninstall python programs and libs from a common online source, in a few clicks,
directly on pda/smartphone, or by transferring the package with traditional methods if the first option is not possible.
Uploading new applications should be made easy too.

To do that we need:

* Choose a package format for storage/description of application files.
  We could use .cab or design a format specific for PythonCE applications.
  Some times ago, we made some brainstorming with Jared Forsyth on a .ppyp format (Pocket Python Package),
  which is a distutils-like way of defining packages.
  
* Create the Installer application itself, with it's logic and gui, 
  and ship it by default in the PythonCE distribution.

* Make a desktop application for easy cross installation of packages, when there's no direct web access on the
  pda. I've seen there are already existing RAPI bindings, this may help a lot, and seems the most 'universal' way
  to transfer files (i.e. by usb)

* Set up a web service for uploading and hosting packages, managing versions, ...
  I think Django web framework could really help here, but no problem if it's another framework or not even in python


While a such project won't be achieved in one day, I definitely think it is worth the effort and will make PythonCE
superior to .NET regarding distribution user experience.

Regards,
Alexandre



More information about the PythonCE mailing list