Tags: Java
Yesterday I wrote a rant about the usability of web applications that depend on AJAX between stuff in a browser and stuff on a backend. It seems to have struck a chord with several others chiming in with concerns about the usability and reliability of this model.
Dreaming in the "Cloud" with the XIOS web operating system covers what someone is trying to claim is an "Internet Operating System" implemented in javascript and living inside a web browser. Okay, this means a new twist on what we mean by "operating system" .. so let's accept that phrase for the sake of argument.
The idea is to have full applications running in some kind of javascript interpreted container that lives inside a web browser.
It would mean reimplementing the whole world of applications .. in Javascript .. fighting with cross-browser inconsistencies in Javascript .. Oh, and javascript today is always interpreted so it's not going to be terribly speedy. And I understand javascript in browsers has a poor multi-threading model, so is that going to interfere with usability when multiple applications are executing side by side?
This raises some ideas ...
First, this sounds like some existing application environments. Whittling it down to its essentials, it's a container for launching applications, right? Hmm, I was playing with AB5K earlier today and it's a pure Java container for launching applications .. that is in an early development stage. JNode also does the same sort of thing, and they too try to call it an "operating system", and they've been at this for a long time. I think in a way Dashboard (Mac OS X) is along these lines.
Next I'm thinking about stability of the environment. I dunno about you, but my experience of web browsers is they aren't exactly the most robust pieces of software. Sure, they're better today than they used to be. But, really, would you want to trust your critical data to this?
Contrasting the stability of web browsers with something I see in my daily work ... the level of stability we offer with Sun's Java SE implementation comes from a lot of testing. Lots of testing. 24/7, with testing and other quality related activities occurring in multiple models in parallel. We have customers who are expected to build ultra-reliable systems for whom we have gone to long lengths to build this quality system.
If I was the quality lead for a web browser I'd think the main use-case would be Aunt Millie browsing the web and doing online shopping. While she would be put off by a browser crash or malfunction she wouldn't be expecting the same level of reliability as someone who's using it for their whole user environment.
Source: weblogs.java.net