BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage Interviews Adam Blum on Future of Smartphones, Rhodes 2.0

Adam Blum on Future of Smartphones, Rhodes 2.0

Bookmarks
   

1. We are here at QCon London 2010, I am sitting here with Adam Blum, so who are you?

I am Adam Blum and I am with Rhomobile we have an open source framework that let's you write native smartphone apps very quickly for all devices.

   

2. Today you gave a talk on the future of computing; what was the general gist of your talk.

It was intended to be about the future of both smartphones and smartphone development. And we talked a bit about how these devices evolve over the next several years made some predictions that hopefully we can see whether they turn out to be true or not. The bulk of it was about how these devices become more powerful and have more and more interesting capabilities over time. And then we talked about how smartphone development itself is going to change over the next few years and there were two main threads there: one was the way that these new capabilities are going to drive changes in the programming model but then also changes just because smartphone development is becoming such a big industry and how that is going to take what has traditionally been quite a backwater of software development techniques and practices and really modernize it, because it's a much more compelling industry that is worth investing in now.

   

3. So why are smartphones any different than other platforms?

Unlike other shifts from mainframes to minis to PCs to web you are really talking about unique different set of capabilities on smartphones; so smartphones truly have senses they have touch, they have vision they can hear, and the best smartphone apps take advantage of those capabilities they are location aware, they know where they are, they take advantage of camera, they take advantage of video, they take advantage of the ability to capture audio, potentially recognize images, recognize speech, and there are just more and more of those capabilities over time. So a good smartphone app is not making a smaller web app, it's really a new class of application.

   

4. So there is a buzz word called augmented reality, so essentially it seems that you are saying this will be one of the tasks that smartphones will do.

That is certainly an important area it's one of the many interesting capabilities even though in itself it's a combination of technologies, both vision and geo-location, but I think there will be many other interesting combinations of device capabilities.

   

6. So what's primitive about it?

We are here at QCon and we are talking about lots of best practices in enterprise development and so there is a lot of things that are sort of widely accepted it's just a better way of doing things MVC for better development pretty much any language you're writing in, there is an MVC framework and if you are not using it you sort of wish you were, you probably want to interact with the database using an ORM, for example both of those things are largely, with the exception of people using frameworks such as the one that we provide, actually ours is the only framework that has MVC and ORM today, but a lot of these modern techniques of software development just aren't there for smartphone developments. You are using Objective-C to write for the iPhone which is almost thirty years old, and was widely noted in the ‘80s as being sort of an old tool set. So third generation languages no ORM no MVC framework, and there is a lot of opportunity now to take the last twenty five years of computer science and research into good ways of doing software development and finally get it down to smartphone development.

   

7. In your talk you also mentioned that this is an opportunity for many technologies like concurrent programming, event based programming, reactive programming to become used by many developers.

One other thing that we talked about was not just taking widely accepted best practices down to the device but also that the devices themselves are also going to evolve in pretty significant ways, and one of those is much more powerful processors, we are seeing that Intel is going to put Atom-based processors, so you're having true server class power now available on the device. Some of the things that Intel solved along the way, such as idle power usage, will enable you to have many processors on the device.

And so I think the combination of two things that is happening to the device which is multiple processors and also the availability of sensors of all kinds, so there is a variety of sensors now, image sensors, motion sensors, touch sensors, but adding additional kinds of sensors that people are investing in such as there is magnetometers now, temperature sensors will emerge, pollution sensors, there is an article in Cnet today about Intel labs at Berkeley and the air pollution sensor they are doing for smartphones, so I believe that the availability of sensors will drive if you want to write interesting applications it's not just going to be about the users driving the app and clicking buttons and making things happen, it's going to be more event based programming models that allow you to write an app that is responding to events that are happening based upon the environment of your smartphone. So that's one big development it's not one that Rhomobile is participating in but I think it's a ripe area for research and innovation.

And the other one is as more processors emerge having languages and OSs and APIs that make doing concurring programming easier to do. That is another area where we also won't participate but I think it's right for research and it may be using older concurrent language approaches or there may be new languages that emerge.

   

8. You explained that in the future essentially or today the environment will drive the application or the system on the phone because of the sensors.

I am not sure that is really happening today. The sensors capabilities are starting to emerge, the programming models for that aren't really there to do easily today.

   

9. Essentially languages that support event based programming...

Languages and OS approaches, clearly there is the germ of something there with Android Intents but there needs to be more widely spread. And still most of the examples that I have seen of Android Intents to talk about they would say "You have an app and it has an Intent to call a dialer but there is another app that is registered this Intent to handle that dial event and so that is giving you the sort of cross apps event based model, but I think the more interesting scenarios that probably warrant some research are, there are things happening on the device and there are applications and components of applications that are responding to them and there is no user interaction whatsoever.

   

10. So would this mean a move away from the applications to more a kind of soup of logic?

Yes, potentially. At this point I am getting speculative in areas that it's not something, I build an app framework and that is where I can talk more confidently. I do think that sensors on the device as we get more and more interesting ones of those I can see more and more apps that aren't necessarily driven by user interaction and also potentially more componentization and I think that will drive just lots of innovation in approaches to building apps and languages to building apps.

   

11. What do you think of the current situation of the fragmentation of the mobile operating system markets?

I don't know that if I would use the word fragmentation would probably say device diversity as you saw on the talk, my prediction is that we have six major smart phones operating systems now with web OS there would be seven with Meego and there will be at least that seven. I would see that if Meego truly stays open source and not just open source in the snapshot approach like Android, but open source in a real time way and truly foster a community, then they will get a lot of momentum around that. They would probably get a lot of momentum given the fact that it's going to run this Intel Atom-based chips regardless but if Meego does not run in a truly open source community oriented way, then I could see a pure play Linux truly open source whether it's LiMo or some other mobile Linux will emerge, but either way I see the number of smartphone device operating systems continuing to increase, at least over the next five years.

   

12. That brings us nicely to your Rhomobile Rhodes system. You have a new release coming out? Is that true?

Yes Rhodes 2.0 which will be out maybe by the time you are viewing this, sometime in April, and we are very excited about that and probably the two biggest things are we have a much faster sync server, based on something that has been talked about a lot at this QCon which is a NoSQL database, it's based on Redis now instead of having a relational database inside, so it's much much faster, and the other big news is we have this streaming, another thing that ties into this futurist talk about what these devices will do, we have a server that facilitates high definition, bi-directional, streaming audio and video and then of course the enhancement to the Rhodes framework itself to easily connect up to that server so that you can easily build apps that incorporate streaming audio and video.

   

13. So bi-directional means what?

Capturing from the device in bot directions.

   

14. Maybe you could go into a bit of detail on your sync server, sync-ing capabilities of Rhodes.

With Rhodes you can write your app, write it once and it runs on all the devices, and you can connect directly to the backend. If you want your users to have their data when they are offline and disconnected, then there is where RhoSync comes in. And so it's a server that connects to your backend typically by you just writing a very small class, typically about a page of code, that has a query method, create method, update and delete method, and then the server does all the work to connect to your backend, and grab all the data, keep the store of that data on Redis and then as users connect, with their devices, the server says ok, this is what I know you have, this is what you don't have and efficiently sends them only the changes.

And so RhoSync does a couple of things, one is it gives your users the ability to have their data when they are offline and disconnected, the second thing is it actually simplifies the programming model, because you are now on the app, you're not writing any code to sort of fetch information and stuff it into the database, you can just assume the information is in the database, so all of your information handling is just very small amounts of ORM code so it keeps your information handling at a very high level.

The other thing that RhoSync does, that we have started earlier, it has an option to do push, to use the native smartphone push to do something actually called nudge poll, where it's actually not pushing the payloads it's nudging the client to go come back and ask for data, this gets the client away from having to do polling, which is much more efficient, saves battery life from the client, saves processing overhead and saves bandwidth of doing unnecessary connects. And it's giving you near real time updates, so we had push in versions previous to RhoSync 2.0 but the other thing that we are adding to RhoSync 2.0 is the ability to do true push, like true reliable push not simulated push through SMS, on other devices besides iPhone and Blackberry. So they have their own push and so now we are providing it for all devices by providing messaging on the other platforms as well.

   

15. How many platforms are you on now? You added a new platform?

Yes, that is the other big feature of 2.0 is support for webOS so you can run your Pixie or your Pre build from the same Rhodes app source code.

   

16. Are you going to use native Ruby on these devices?

Yes, it's Ruby as the controller as you know I think from previous infoQ coverage so Rhodes has embedded inside it the first smartphone Ruby for each of the devices.

   

17. Where can interested parties find Rhodes and all the offerings?

You can get it at github.com/rhomobile all the projects are maintained real time there, they are open source projects under GPL v3 [Editor's note: Rhodes 2.0 was recently released and the Rhodes framework is now licensed under the MIT license. For details see: http://www.infoq.com/news/2010/05/rhodes-2 ] so you can get Rhodes there and RhoSync as well as a bunch of other related projects. You can also try it out really easily at rhohub.com and you can create a free account and you can start building app there and then you can actually do builds for all the different smart phone OSs on that website.

May 13, 2010

BT