Bio Adam Blum is CEO of Rhomobile (http://rhomobile.com), the open mobile framework company. He is a longtime founder/CTO/VP of Engineering of several successful startups in the web services and mobile spaces (Commerce One, Systinet, Good, Mobio). He is also an adjunct professor at Carnegie Mellon University and advisor to several other software companies.
QCon is a conference that is organized by the community, for the community.The result is a high quality conference experience where a tremendous amount of attention and investment has gone into having the best content on the most important topics presented by the leaders in our community. QCon is designed with the technical depth and enterprise focus of interest to technical team leads, architects, and project managers.
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.
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.
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.
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.
Smartphone development itself is quite primitive.
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.
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.
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.
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.
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.
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.
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.
Capturing from the device in bot directions.
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.
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.
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.
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.