This article was written by David Wood and published on the Symbian corporate website in December 2005, with the following description
In his latest article David Wood addresses the developer community and reveals the secret to rapid realization of applications and services for Symbian OS-based devices.
Insight 4: Smartphone programming goes mainstream
Smartphones are going mainstream. They’re no longer just for specialists or technology enthusiasts. Month after month, smartphones are appealing to ever larger numbers of end-users. But this move to the mainstream isn’t just a fact about the smartphones themselves. It’s also a fact about the way that people write applications for smartphones.
When the first smartphones reached the market, in the early noughties, they quickly attracted the interest of far-sighted software developers. These developers could see the potential of sharing in the commercial success of this emerging market, provided they could write an application which users would want to download in large quantities to their smartphones. However, at that early stage of smartphone evolution, it was a real black art to write an application for a smartphone. Developers needed special programming skills and dedicated training. Only the real enthusiasts stayed the course.
Since that time, two large changes have been taking place. The first of these large changes is that sales of smartphones are dramatically accelerating. 2002 was the first year in which over a million Symbian OS phones were sold. Q1 of 2003 was the first million-selling quarter, December of that year was the first million-selling month, and the first million-selling fortnight occurred in December 2004. Various factors underpin this sales growth:
-
Advances in hardware, in software, and in manufacturing, combine to enable reductions in the prices of smartphones, making them more affordable
-
Improvements in usability, performance, and connectivity mean that more users find themselves at home when using smartphones
-
News of the benefits of smartphones continues to spread – through newspaper and magazine articles, by word of mouth, through better-informed retail store staff, and through better informed Information Systems departments. As a result, people who used to think their needs were well met by feature phones are increasingly realising that their needs will be met even more fully and more widely by smartphones
The second large change is a steady reduction in the difficulties facing developers as they create add-on smartphone applications. It’s no longer necessary for developers to become smartphone specialists, or to learn the intricacies of high-performance idioms of the C++ programming language (the “native” language of Symbian OS – meaning, the language used to write the operating system itself). Instead, they can use any one of a number of more mainstream approaches.
For example, many people have been exposed to the Java and Basic programming languages at least once during their secondary or tertiary education. (The modern version of Basic is called “Visual Basic”, which is often abbreviated to “VB”.) Short courses in programming in either of these languages often form part of either science or arts courses of study. These languages require much less knowledge of computers than C++. The good news is that applications for Symbian OS phones can be developed using either of these languages.
-
Symbian support for Java has been co-developed over nearly ten years in partnership with Sun Microsystems, the originator of Java
-
Symbian support for VB is enabled by the Crossfire tool from AppForge Inc, which also supports the use of Microsoft Visual Studio .NET to develop applications for Symbian OS phones.
Python is another programming language that is poised to potentially play a significant role for smartphones. There’s a fascinating video available at Mobilehub that shows the highlights of a week-long course held at the University of Art and Design, Helsinki, to provide students in media studies (including trainee journalists and budding multimedia artists) with an experience in developing applications for Symbian OS phones. The main language covered in this course was Python. The seminar leader, Jürgen Scheible, explains his reasons for choosing Python:
-
It is easy to learn
-
Students don’t need to master any advanced computing concepts
-
It can be used to create working applications in a short space of time
-
A multitude of ideas can be tested and the best ones kept
-
The motivation for pursuing an idea is high because results can be achieved quickly and an iterative development cycle easily applied.
-
It provides easy access to smartphone features such as the camera, Bluetooth, text messages, graphics drawing, and packet data (allowing these applications to connect to web servers via public API’s, or to directly connect to a PC or MAC)
-
Applications written in Python have the same “look and feel” as the native applications on the smartphone
What’s particularly interesting is the range of rather wacky applications developed by students on this course. Being media students, they’ve got many novel ideas. They’re probably less constrained by conventional thinking than, say, the majority of software engineering students. It’s like the difference between traditional art and modern art – or the difference between traditional classical music and modern. These new applications won’t necessarily appeal to every smartphone user. However, it’s very probable that some genuinely valuable applications will emerge out of this rich brew of unexpected ideas.
The key point here is that languages like Python enable a rapid turnaround between initial idea and the creation of a smartphone application that implements the idea. And when the media student changes his or her mind, the application can be quickly changed to match the new idea. This rapid turnaround is what’s necessary to nurture the creative process. In contrast, if the implementation process requires lots of specialist programming skills, it can soon dampen and kill the creative spark.As it happens, there’s an important linkage between the two large changes I’ve mentioned:
-
The increase in smartphone sales boosts the potential payback for developers who work with smartphones; an application that can in principle be downloaded onto tens of millions of Symbian OS phones has a greater chance of making its author famous and/or rich, than one that is restricted to merely single figures of millions of units. This leads to a burgeoning interest in writing applications for these phones. It also leads independent companies, such as Sun (for Java), AppForge (for VB), and Macromedia (for Flash) to have an incentive to improve the applicability of various programming languages to smartphones. Finally, it attracts members of the open source community – such as the people behind Python, or another set of people who support yet another rapid programming language, OPL – to make their offerings work well on these smartphones
-
The new smartphone applications that come to the fore, as a result of improved support for easy-to-use programming languages, increase the overall attractiveness of smartphones, boosting their sales yet further. So there’s a healthy virtuous cycle
When Symbian says that “smartphones are going mainstream”, we mean more than (just) that Symbian OS will be in ever greater numbers of “ordinary phones”. We also mean that useful applications and services can be written by ever greater numbers of “ordinary users”. This connects to the importantant cultural move towards “user-originated content”. Increasingly, people today aren’t satisfied with simply absorbing content that others have created. They don’t want to be couch potatoes. They want to play their part in creating content that others can look at. Witness the following trends:
-
The increase in personal home-pages, containing photos of family, pets, holidays, etc
-
The phenomenal rise of blogging, and the forthcoming rise of video-blogging
-
People’s desire to personalise their phones, including individually customised ring-tones
The interest in trying out new ideas in discussion forums, and sharing the results with friends and colleagues via email and instant messaging.
The next step with many of these trends will involve modest amounts of programming. Programming allows more sophisticated customisation and control. It may not be widely known, but with modern programming languages and modern development tools, programming needn’t be hard. This is a trend that smartphones will both fuel and satisfy.