Wow, what a thing to wake up to! At the heart of the Open Web Device is Mozilla's Boot2Gecko project. I just joined up with Mozilla on B2G a couple weeks ago and it's been an honor to work alongside so many amazing people, with a great goal: building a truly open mobile ecosystem. If you guys have any questions about B2G itself, feel free to ask and I'll do my best to answer.
I had a couple of questions on how you'd implement things like Spotify or Dropbox (i.e. apps that download a bunch of files, or upload existing ones).
And also about how apps would interact with each other (so that I can change out one SMS app for another, but have everything else continue to work).
Oh, and will it support things like different keyboards? I love that on Android I'm not using the home screen, keyboard, email, SMS, or calendar apps, and it all just works fine.
So, in terms of an app like Spotify, you'll build it based on common web standards, e.g. offline storage APIs for caching. Dropbox is a more interesting case, as the basic use case of things like photo uploads from the app use the standard media APIs, but integrating it into the rest of the system requires a lot more work.
The answer for integration is more a global one, and honestly I don't have a good answer yet. I could see something like Web Intents/Web Activities enabling replacement of the homescreen or keyboard and perhaps eventually integration with the likes of Dropbox, but there's still a lot of work to do before that point.
To me, these sorts of important, unanswered questions are where B2G wins the most. Rather than coming up with the answers in isolation and then pushing the result on the world, we encourage everyone to get involved in the process, and we will make it into another web standard that benefits everyone, not just Mozilla or B2G users/developers.
note: I don't work for Mozilla but follow B2G closely. All of this stuff is possible. Everything in B2G is a web app, including the keyboard IME (and the browser, and the window manager itself). You can definitely swap that out. The only thing that's not swappable, to my knowledge, is the phone app.
It's super easy to swap out any piece (or replace the whole UI) if you're willing to mess around on the device, but there's no way to do this from the UI as it stands, like you can with Android. I'm excited to see the solution to that problem.
It's not possible to truly implement Spotify as there is no P2P in HTML5 yet - but see Chromium's efforts with WebRTC.
It's also not possible to implement Dropbox. When last I checked, IDB in Firefox is at least an order of magnitude slower than a KV implementation with direct posix access. Most importantly, there's no proper native crypto api, and no way to let a user open a file from within a web application, and have it open in a native application, polling the file for changes to sync the different chunks when the user hits CMD+S.
Sort of. The key difference is that B2G is aiming to allow web apps to do absolutely anything a native app can do, whereas on the iPhone it was just intended to augment the native experience. That's how I see it, at least.
More similar to the (initially announced) Palm Pre. It was supposed to be a device which runs Web Apps natively, and you write your applications in HTML + JS, using their "Mojo". Well, developers weren't having it, so they eventually allowed C / C++ as well. I'd predict the same with this device. Since it's running Linux kernel, I can pretty much guarantee that you will be able to run C / C++ apps on the device, and developers will choose that more often than not.
You didnt have to write them with Mojo, you could write them with any HTML/JS framework, or just roll you own. Mojo was just the one the Palm apps (Email, Web, Phone, ..) used.
And a vast majority of the apps for the platform used it for UI. C/C++ was generally only used for games ported from iOS to webOS, or when writing a custom plugin for some capability not provided by the service architecture.
C/C++ was allowed, but definitely not chosen "more often than not" on webOS. The UI for a vast majority of the apps was HTML/JS and using Mojo.
There are probably millions of soon to be unsupported devices, N900 (already left behind), N9 and N950 that could conceivably run this. After all, N900 can run open office and it is the oldest of these devices.
It would be much easier to test and contribute if one had a device already to properly experiment with. My N900 is gathering dust and there is no good replacements for its OS.
In terms of getting 'official' support (meaning Mozilla employees working on it for real, I guess), I don't know how likely that is. But that said, it's all actually open, and porting it to other devices is not just ok, but encouraged -- I don't know about anyone else, but I'd love to see this running on other devices, and have some plans for some personal projects along those lines myself, when I have some spare time.
web standards is greate but what if I want to port my multiplayer game that uses bluetooth for the communication between devices. How will B2G handle bluetooth and can my B2G app use it?
This is where we're gathering the tasks for the project. It's still hardly implemented right now, and our main focus is headsets first. I'd like to get rfcomm going pretty quickly too so we can do fun hardware experiments. :)
In general, if you're interested in the progress of something on B2G currently, just plug "b2g [word of interest]" into http://bugzilla.mozilla.org. That's where we're keeping tasks/bugs related to gecko internals.
WebBluetooth is being worked on based on the WebAPI spec. https://bugzilla.mozilla.org/show_bug.cgi?id=674737 It's fairly early still, but the goal is that you'll be able to (given permission) use Bluetooth from your apps just like if you wrote them natively.
I'm curious about b2g's security model but I haven't been able to find much of substance about it. Currently I'm pretty sure if you beat gecko you own any firefox tab that's open. Does that mean if you beat it on the phone you own the whole thing?