Thoughts on JS/OS 1.0

So my thought is to get a node.js runtime operational directly on top of the Xen Hypervisor and use this as the foundation for JS/OS.  With nothing more than this, I should be able to support everything that JS/OS itself needs to do from a server perspective.

To add a user interface layer is a matter of providing enough support to render a web browser, which means support for a display and the various underpinnings necessary to render HTML visually (I imagine handling typefaces, vector and bit mapped graphics, etc.)

This stage, the visual user interface, is where the complexity skyrockets.  On one hand there are plenty of existing open-source codebases to build on, but they have an extraordinary amount of dependencies, many of which exist to support functionality that will go unused in JS/OS.  On the other hand writing something like this from scratch (as well as maintaining it as HTML specifications change) is a daunting task.

I’m tempted to skip it altogether and move on to the next generation of visual user interfaces: virtual reality .  Perhaps surprisingly implementing a VR UI from “scratch” is far less intimidating and actually familiar territory for me.  This does mean giving up a potentially large range of applications that JS/OS could be used for during the transition from existing GUI’s to commonplace immersive UI’s, but reservations about that might be more of a cognitive hurdle than a real one (after all, consider how quickly we’ve moved from mouse-based desktop metaphors to tactile interfaces).

Of course if you’re giving up the browser and HTML then you really have to reconsider the value of JavaScript as the system programming language.  I’ve said that the future of the web is written in Javascript, but without the browser and HTML we’re not really talking about the web anymore are we? Furthermore JS/OS is a solution for the problem of developing web software, and I’ve already discussed elsewhere that I feel the tipping point for the widespread application of VR technologies will be when VR development becomes self-hosted and self-sustaining, and it isn’t clear that a VR platform build on top of Javascript would fit that bill.  I’d argue that it would be an incredible coincidence if that was the case.  More likely the answer will come in a form that won’t be obvious until we’ve spent enough time in virtual environments to get in touch with their underlying patterns and natural methods of interaction.

So where does this leave JS/OS?  From one perspective it is a dead-end, if you believe that I’m right about VR.  However there is probably a lot of road between where we are and the end of that road (perhaps a decade or even a generation).  I also think there are architectural lessons yet to be learned from JS/OS that will pertain to any distributed system which can be applied to a future VR-based system even if none of the direct implementation is shared.

The question for me then comes back to the right way to provide a UI for JS/OS applications, and I’m leaning toward building something from scratch, but I plan to investigate the existing options more deeply before committing to something that ambitious.