Amaretto is Nokia’s Python for Series 60. Russell Beattie has been playing around with it and has some thoughts:
You can run Python files that are on your phone in regular .py format (this you’ve seen from the public demos of the app), or you can wrap up the .py files into a .SIS Symbian installation file with its own icon, so that the user never knows that it’s Python. Very cool – I mean, obvious, but cool. In terms of development, the SDK comes with both Windows and phone versions of the application and core libraries, so you can do testing in the emulator before sending to your phone. Again, this is great – as the command line intepreter may not be all that useful with a phone’s keypad, on the emulator it’s vital.
What I’ve been looking at doing is creating an RSS news aggregator. Of course! If you think about it, this would take networking and xml parsing, UI integration and also things like browser integration or at least some sort of rich text. (The latter bits aren’t supported right now). An aggregator is a great sample app for Amaretto because it mimics real-world enterprise usage: client-server communication via XML with forms and offline storage. Getting a good aggregator working on Python would go a long way to proving it’s capabilities in the corporate world, IMHO. So as I explore the language and libraries, this is something I’m concentrating on.
Another cool part of Amaretto that most people won’t know just from hearing about the project, is that it supports Python’s standard C wrapper interface! This is cool because in theory, you could have heads-down developers crank out the really intense parts of your Symbian application in C++, then they can simply create a wrapper for the Python guys, who use that as a base and then develop UIs and interactivity from there. This could reduce development times substantially. In some respects it does harken back to the bad-old OCX days of VB, but honestly, I think this is a really good model for mobile apps because of the resource constraints. Actually it could inspire an OCX-like tools market, or if not, it’ll at least allow the developer community to start quickly adding functionality that may not be in the basic Nokia libraries at launch. Nokia is concentrating on just getting the basics down right now, so there will be lots of gaps that can be filled in by creative developers, I’m sure.
The reason I’m so concerned about the enterprise market is because that’s where I see Microsoft making its play in to mobile world: selling to large corporations with applications developed in .Net Compact, touting their rapid VB-like development and tight integration with Outlook/Exchange. Nokia can pre-empt this move by providing Series 60 with a compelling RAD language which does much of the same, but has the cachet of being from the Open Source world, and fits in great with all those new Linux boxen that more and more companies are installing on their intranet. Nokia could even publish custom libraries itself for integration with it’s NokiaOne enterprise products, and expand the functionality and applicability of Amaretto to the enterprise even more.
Looks like its time for some Python learning – given platforms like Amaretto and Zope to build netx-generation applications.