Post-Symbian Blog Location

My post-symbian blog is PaulB on Mobile at http://paulbonmobile.wordpress.com/

Moving on from Symbian

I’m moving on from my role as Head of Tools for the Symbian Foundation. I’ve appreciated the opportunity and the experiences with tools, mobile, web and open source.

From my start in June 2009, it has been quite an adventure. After having led tools for Wind River, I was ready for a new challenge. Instead of just platform tools, I was now also responsible for application tools. Instead a staff of 80, we were a few people working with a nascent open source community. There was universal consensus that Symbian’s existing tools solution needed to be dramatically improved to attract and retain developers to the platform.

Now sixteen months later, there is still a long way to go, but the Symbian tools community has made some major progress:

  • There is a modern open source compiler (gcc) and debugger (gdb) for Symbian – available in the Qt SDK
  • QEMU is well on its way to improving the emulation solution for Symbian developers
  • Qt SDK dramatically improves the Symbian application developer experience
  • Carbide.c++ is making major strides towards usability and improved debugging in the upcoming 3.0 release
  • Symbian has become the mobile industry leader in open source web development tooling

This will be my last post on this blog, other than perhaps a pointer to my next one.

You can reach me at first.last @ gmail dot com

I wish the Symbian community the best.

Google I/O: A Wake-Up Call for the Symbian Community

I was at Google I/O last week and was quite impressed with the progress of the Android team and wanted to share some ideas about what the Symbian community can learn. First, some of the highlights:

Android Froyo Highlights

  • Speed – JIT generates a 2x-5x speedup
  • Enterprise – Microsoft Exchange now supported
  • Services – Cloud to device API, Tethering
  • Browser – 2x-3x JavaScript performance improvement.
  • Market – Update all; Download apps and music directly from PC to installation via cloud
  • Android and Symbian

    As I sat through the keynotes and the Android sessions, it became clear that a deep developer enablement ethos permeates the Android team. While Symbian has traditionally viewed phone manufacturers as the primary customer, Android views the developer as the primary customer with phone manufacturers being a conduit to get to the developers.  Symbian is strong at security, hardware enablement, and power management.  Android is strong at responsiveness, usability, and developer attractiveness. Symbian can learn from some of Android’s strengths at enabling the community to create applications to enrich the mobile platform vibrancy.

    On the flip side, it’s interesting that many of the Google I/O Android sessions focused on helping developers with power management, asynchronous programming and performance — areas that Symbian programmers have addressed for years.

    The Device is Step One

    The Symbian community is making admirable progress at replicating the Symbian Limited product model in open source. Providing a platform for device manufacturers is no longer enough. The platform also needs to attract developers.

    Developer Enablement Permeation

    Symbian is improving its developer experience by adding the cross-platform Qt development environment and runtime to the platform. Qt is purposely a layer on top of the platform. It does not permeate the whole platform to improve application creation and usage. I was particularly impressed by the “Writing zippy Android apps” session, in which a Google engineer talked about finding performance, responsiveness, and usability issues and then communicating to the multiple responsible teams to get the issues fixed. The Symbian community should empower similar types of initiatives. Too often, developer and application improvement initiatives are rejected or delayed because of concerns about hardware shipping deadlines, cross-functional challenges, or security concerns.

    Speed and Urgency

    Android is making plenty of mistakes, but iterating fast enough so that mistakes get quickly fixed. Froyo is the fourth release since April 2009.

    Tools for Mobile Web

    Despite a lot of information about programming for the web and developing for Android separately, I did not see any content at Google I/O to improve web programming for Android. From a developer perspective, it would be ideal to write a program once and have it work on any mobile device. This will not likely to be possible anytime soon with Objective C, Dalvik Java or Qt C++. However, devices are converging to all supporting WebKit html5 supported web browsers. At the same time, there is increasing access from the browser directly to device capabilities like contacts, location, and camera. In addition to supporting emerging Web mobile runtime standards like phonegap and BONDI, I’d like to see Android join with the Symbian Foundation, Eclipse Foundation, and others in advancing developer tools for mobile web developers with the Tools for the Mobile Web project.

    Conclusion

    There is clearly a need for more than one open mobile platform. Choice will benefit everyone in the mobile eco-system and spur further innovations. As the most deployed smart-phone OS in the world, Symbian is well-positioned to be one of those platforms.  To do so, it should leverage its strengths and learn from the successes and innovations of the newer market players, especially around developer enablement.


    Stepping Toward Symbian Open Source Tools on Linux and Mac

    Linux, Mac, and Windows versions of the GNU compiler, the GDB debugger and the QEMU emulator are now available for Symbian development here.

    Thanks to CodeSourcery, the world’s leading GNU tools consulting company, for producing these tools. And CodeSourcery is in the process of incorporating the changes into the relevant open source repositories.

    At this stage, the tools are likely only ready for experts. They’re in raw form and not integrated with IDE’s, build systems or SDKs. They can provide a foundational basis for community members to create broader development kits. In fact, the Qt Creator team is already working to integrate this GDB.

    If you’re looking for more of a Linux or Mac SDK, Martin Storsjö’s site and/or Anderson Lizardo’s blog are good references.

    If you’re more energetic, you could build some of the other tools yourself from the Symbian source.

    Related existing community initiatives include :

    Symbian Web Tools Beta Available

    I’m happy to say that the beta edition of the Symbian Web Tools is now available for download

    Our goal with this product is to help web developers create applications for the Web Runtime(WRT). The main release criteria was to provide an IDE that had at least feature parity with the alternatives. We believed we met that, as well as providing some additional improvements.

    The key difference is this IDE is developed with purely open source components from Eclipse JSDT, Chromium, and Nokia. We plan to collaborate with Eclipse, Symbian, and other open source communities to rapidly innovate and improve these tools to enable developers to create more and more compelling mobile web apps.

    Read more about the release at Web Tools Wiki.

    Read the lead engineer’s recent blog.

    Discuss in the forum.

    Or just start developing a cool web app for mobile NOW!

    Symbian Tools SIG Proceedings

    It’s been a busy two weeks for Symbian and the Tools team.  Last week was the SEE conference as well as several meetings with our London Symbian colleagues.  This week was Qt Developer Days and the Silicon Valley Symbian SIG.  In this blog, I want to give an update on another meeting that took place in London on October 29th.

    2044961071_d192813762_t

    We had the first Symbian Foundation Tools SIG.  Twenty-nine Symbian eco-system tools creators spent the day sharing plans, strategies and goals.  We had representatives from handset manufacturers, package owners, chip vendors, startups, tools vendors, and service providers.

    Here are some of the highlights:

    Brainstorm About Tools Challenges We broke into five subgroups to discuss the most important issues. The three top themes were:
    • Platform Creation – Use tools to support, ease, and encourage platform creation and collaboration
    • Getting Started – Focus on simplicity
    • Understand the Tools Portfolio – There are a few hundred different tools in the Symbian eco-system. There needs to be a good way to understand them and find what you need
    Tools Organization Working Group  We agreed to create a Working Group to create a better organization of the tools for documentation, installation and usage. We will build from PDT, ADT and earlier tools structures. I’ll announce the Working Group on the tools forum.

    Tools Without a Clean API Separation from the OS There are several tools, especially in the dynamic analysis packages, that need to be aligned with a specific OS release. These should be rearchitected, but in the meantime, we need to determine a packaging strategy that allows tools and OS releasing to be asynchronous.

    Communication We explored how Symbian tools creators should best communicate. The forum isn’t working for some people because Tools Development discussions get overwhelmed by Tools Usage ones. We decided to keep the forum for usage discussions and use the Tools Domain mailing list for Tools Development discussions. We’ll evaluate this after a month or two and add other venues if necessary.

    Open Source Paradox Tools contributions are slow because the contributors are waiting to see interest from the community in contributing. The community isn’t contributing because they’re waiting to see the packages that they would need to contribute to. Next steps:
    • Tools Package Owners – make the “leap of faith” and contribute even if there are no known collaborators
    • Symbian Foundation Tools team and community – Encourage collaborators to express interest in contribution
    Qt Tools Qt is an application framework (not just a UI framework) Qt Creator is focused on being a great C++ development environment.

    Target Shell Tools Accenture has a rich set of command line tools that run on Symbian targets. They agreed to explore contributing them to the Symbian Foundation.

    Open Source Best Practices Qt and CodeSourcery shared best practices from being successful open source eco-system tools providers. Some examples:

    • Meet the community on its own turf – mailing lists, IRC, forums
    • Contributors must see value in their contribution
    • Consider using more existing well known open source tools instead of open sourcing comparable historically closed source tools

    There are more SIG meeting details and presentations on the Symbian wiki.

    The Term “Widget” Considered Harmful

    One of the things about joining a new industry is needing to learn a new set of terminology.  Since joining the mobile industry earlier this year, I’ve been most puzzled by the word “widget”.  This is the story…

    Introduction

    Last year, I did a bunch of JavaScript programming.  Widgets were the little graphical pieces, like dialog boxes and radio buttons, that I used to build my web app.  My understanding of “widget” pretty much matched what I find at wikipedia – “(short for windows gadget) is an element of a graphical user interface (GUI) that displays an information arrangement changeable by the user, such as a window or a text box.”  So I was quite surprised to come into the mobile industry to find that “widget” was interchangeable with web application.   In fact, there is even a W3C standard around “widgets”.  And it is fine to have a standard around pieces of small, single purpose desktop functionality.  However, when the term “widget” is used as a synonym for any web app, it trivializes the power of the web as an application development and deployment platform.

    Web Development Trends

    After spending its early days as a tool to wrap small scripts around html, JavaScript has evolved into a language for full-fledged app development.  Evidence includes the emergence of AJAX as a popular powerful mechanism to drive asynchronous page fragment updates and tools like jslint to improve the ability for JavaScript to scale up robustly.

    While JavaScript is evolving into a more scalable programming, Google is attacking the problem of Web programming from the other end with GWT (Google Web Toolkit) which compiles Java into JavaScript, thus bringing the advantages of compiled languages to Web development including the ability to find more classes of errors at compile-time instead of run-time and enabling the usage of mature Java tooling.

    While the programming languages for the web mature, there is also progress being made with the core markup language (assembly language) of the web browser.  Two important addtions of  html5 are the canvas tag which enables dynamic scriptable rendering of bitmap images and the ability to do offline storage to better enable web apps to deal with intermittent connections.

    Examples

    Check out bespin to get a sense of the growing power of the web application platform.  Bespin is on its way to becoming a fully functional development environment developed purely on the web.  In addition to typical IDE features like editing and building, it takes advantage of the web to innovate around developer collaboration.

    On the mobile side, check out phonegap‘s or project page or Appcelerator Titanium’s sample page to see a wide range of apps developed using cross-platform web tools to run on multiple mobile devices.

    Wrap Up

    The word “widget” may be too entrenched to change, but whether they’re web apps or widgets, web applications are here to stay and will only get more important.   There are an order or two more web developers in the world than native developers.  The mobile platform is transforming into an innovation convergence and acceleration point for the web, embedded devices, and the cloud.  So the mobile eco-system providers that do the best to enable mobile apps with the right browsers, enabling APIs, powerful development tools and usable deployment tools will lead the way in attracting web developers to create a rich set of applications.

    Follow

    Get every new post delivered to your Inbox.