Erik Smartt and Jukka Laurila gave an excellent, well attended presentation on Python for Series 60 on Friday morning. It’s a shame that they only had 30 minutes to present, as they could have easily talked for twice that or more on the subject and not run out of material. I headed down to the front row for a good view of it all, so I wasn’t able to take quite as extensive notes as I would have liked.
Erik started off with an overview of the Series 60 platform, something that he didn’t think he would have to do in a crowd like the the one at PyCon. While the number of Series 60 devices in the market vs. the total number of mobile devices isn’t very impressive, if you look at the smartphone segment, Series 60 dominates.
After the introduction, Jukka took over with some of the more technical bits. Python for Series 60 isPython 2.2.2 as a Symbian DLL and available in binary-only form (for now anyway) at Forum Nokia. It covers many of the basics that one would need, including sockets, urllib, threading, and an Application UI framework. (Also note that if you drop the Python 2.2.2 source distribution in <INSTALLDRIVE>/SYSTEM/LIBS
directory, a lot of stuff “just works”).
Jukka then spoke about the porting difficulties that they ran in to because of the underlying Symbian architecture. Symbian C++ began before C++ itself supported things like exception handling, so they had to create their own way around it. Jukka then explained the realities of running out of memory on Series 60 and he also explained a little about ActiveObjects.
After the technical stuff came some demos! Because of the setup, they had to switch between laptop input and video overhead input (to see the phone), but the demos were still cool indeed. Jukka demonstrated the Bluetooth console so that he could pop up an interactive intepreter session on his Laptop (it’s a lot better than t9). After that he showed the requisite one-liner hello world app to pop up a native widget. From there he demonstrated some of the hardware interfaces that are (or will soon be) available. For example, in just a few lines in the console he was able to import the camera module, take a picture, saving the file, and then passing it to Content_handler to show the photo.
It also has a telephone. Jukka then typed import telephone
and after another short line tried to dial a random phone number. He couldn’t actually dial because there was no signal in the Marvin center. For the final demo, Jukka showed the classic Snake game written in 99 lines of Python that utilize the as-yet unreleased 2d graphics package.
After the demos were over there were tons of questions, so many that the session actually ran over by a few minutes. First and foremost was the question of cross platform development. The guys explained that the emulator was only available for Windows but you could use the bluetooth console using Mac and Linux too. Full instructions on that are linked to on the Python for Series 60 Wiki. Also on everyone’s mind was “where’s the source?” Erik couldn’t give a timeline for that, noting that Nokia is a big company with a lot of lawyers, but it sounds like they are doing their best to move things forward.
I definitely think that the talk was a success. I really hope that the new modules demonstrated can make their way to the outside as soon as possible. Lots of games developers would likely jump on the 2d package, and give their first born for a crack at the PyOpenGL port demoed at ETech. I would personally love to see Jukka’s Snake make its way to the public under whatever license possible, because it’s addictive and would probably demonstrate the graphics platform quite well. I also think that it’s crucial to get these new bits of API functionality and other updates out to the developer community as quickly as possible.