Nokia launched the Python for S60 platform last year for S60-based mobile devices, spawning a community of application developers and users that helped push Nokia toward the code release. The S60 is built on the Symbian operating system, which Nokia estimates is installed in more than 39 million phones worldwide. Python is a versatile object-oriented programming language that can be used on many platforms, for application development and as an extension language for applications.
According to Erik Smartt, a product manager in Forum Nokia's development tools division, Python for S60 includes a port of Python 2.2.2 and a custom library for mobile-specific functionality, sending and receiving short message service (SMS) messages, Bluetooth capability, a GUI library implementation, and native widget sets.
The Python interpreter in Python for S60 hasn't been "slimmed down," he says, and is byte-code compatible with the Python interpreter available at the Python Web site. He adds, however, that although the code itself does not differ, some Python Standard Library modules don't work with the S60 platform because the Symbian OS handles tasks differently than a desktop OS. The Application UI Framework library and a number of widget and feature modules included with the S60 source code also are unique to the platform.
Smartt says Nokia has not set up a dedicated site to share S60 applications, but the developer site Forum Nokia will continue to function as the company's center for those working on mobile software. The Open Source Nokia site, he says, is mostly an informational base for developers at this point.
Though Symbian C++ and Java dominate mobile application development, Smartt says, Python appeals to the company because it is easy to use, extendable with C and C++, and may also attract developers from market segments other than the two dominant languages.
While he says the release is "another tool in the toolbox" for developers, he adds that the company would like to see Python become another dominant language for mobile development across the industry, at least partially because of the openness he says Nokia has helped to spur on the platform.
Nokia released the S60 platform in December 2004 as a binary, and has released several platform-specific modules since then. The recent code release includes all of Nokia's work on the platform up to now, including the Python interpreter and native extensions that had only been available as binary downloads.
Guido van Rossum, Python's creator and president of the Python Software Foundation, says he was glad Nokia made the decision to open the S60 platform. The release required effort on Nokia's part, he says.
"It shows that Nokia is serious about open source -- not just taking, but giving back. It will let other open source developers contribute to the Python port for S60, improving the quality of the port and extending it in ways that Nokia hasn't even dreamed about."
A variety of applications and games are already available at S60.com and the S60 applications page on the All About N-Gage site. Several sites also host developer tools for the S60 platform, including a page maintained by SymbianOne.
Smartt says the open source version of the platform should reflect the latest version Nokia is working on, and that the intention is for most of the company's development of it to happen on the open source code tree.
"The open source release fits well," Smartt says, "because Nokia is very supportive of open standards and collaboration on those standards.... The other manufacturers using S60 can see the benefit of an open platform, and have something to gain from these releases."
Samsung and Siemens, two manufacturers which license S60 for mobile phones they put out, did not respond to requests for comment in time for this story.
Smartt says Nokia expects the source code release to shift the S60 platform industry-wide, making it more useful and opening the potential of what mobile phones can be used for.