By Carlo Longino
As mobile phones become more powerful and pervasive, it was inevitable that they'd spawn the same kind of homebrew hacking culture as computers and the Internet. While the locked-down nature of cell phones and the closemindedness of wireless carriers has stunted that culture's growth, a few developments are afoot that promise to give a big boost to DIY mobile programming. Whereas programmers must typically pick up platform-specific skills to develop for mobile, a number of ways for independent and casual developers and even enthusiasts to use skills they've already got—or can relatively easily learn—to build applications.
First is Nokia's release of the Python programming language for its Series 60 smartphone environment.
The port of Python is a full implementation with a high degree of portability from the desktop environment, opening mobile development to a whole new class of programmers—which was its primary goal, says Erik Smartt, the program manager of Python for Series 60. "By choosing a developer-friendly, easy-to-learn language, Nokia is making it possible for casual developers to tinker with their mobile phones and innovate without the typical investment costs for embedded system development," he says. "Bringing a language like Python to Nokia devices changes the rules on who can create applications."
While Series 60's Symbian OS underpinnings allow for pretty robust programming in C++ or Java, Python offers a much simpler way to develop applications with much quicker results, encouraging users to tinker and play around. "If people are going to innovate, they need to feel comfortable rapidly proofing new ideas and throwing away code when something doesn't work," Smartt says. "That's less likely to happen if application development takes months. With Python for Series 60, it should be possible to produce a simple proof-of-concept application in an afternoon."
One such application was a simple "Traffic Cam Proof of Concept" app, that was orginally built in 45 minutes. It's since been refined to include traffic cameras from cities all over the globe, all added quite easily—an app for London cams, for instance, was built over somebody's lunch break.
The traffic camera application was built to demonstrate the rapid development possible with Python in response to the quick development time for a New York City traffic cam viewer that won a developers' contest for content made in Flash Lite — another tool, like Python, that is mainstreaming mobile development. Flash Lite is already available on more than 40 handset models in Japan, and can be downloaded for Symbian devices. It's also starting to appear on several manufacturers' devices in Europe and North America as well.
Flash Lite applications can be built with the same version of Flash MX that's used to build Web applications, and it includes a variety of templates to facilitate design for different handsets. One difference between Flash Lite and Python that's readily apparent is the rich graphics available with Flash. Python extends the group of potential mobile developers, but Flash Lite also allows designers into the mix.
A quick look at the Flash Lite Exchange, where people can upload their applications, shows some of the different ideas people have had: there's a lot of slick games and animations, but also a lot of small applications (think widgets) that highlight the potential of Flash Lite to become quite pervasive once it's on a lot of handsets.
Python and Flash are just the beginning of mobile companies embracing the hacker ethic to expand the functionality and coolness of their devices. There are cracks emerging in the standard mobile industry mindset that innovation has to come from the top down as companies realize that by opening development up to as wide a range of developers as possible will they harness the most innovation. Another example on the horizon is the Nokia 770 internet appliance, which runs an open-source Linux platform called Maemo. The device isn't even yet available, but quite a community has already rallied around it and generated several applications.
There's been a fairly seismic shift of semantics, if nothing else, over the last few years where "hacker" has dropped a lot of its negative connotations, and companies are looking to take advantage of people's capacity to use devices in new and unimagined ways. As Nokia's Smartt puts it, "If you can make a device that's fun to hack on, people will. And the more people tinker with a device and produce killer applications, the more the value of the device increases to people who own it."