What is Redox's vision for UI "Widgets"?


I was wondering what was the Vision/Direction the Redox project was going with regards to GUI Widgets?

I have watched many “ground up” OS projects come and go. The ones that actually get a system operational, languish because of a complete lack of software. A small group of programmers behind a cool new OS need a large group of competent programmers to write software for it. Without a software base there’s no point in having an OS. I see “GUI Widgets” as having immense potential in solving the “not enough software” problem.

A Direct Manipulation UI, where Widgets can be created and then visually combined to create fully functional applications, is where I see the solution to this problem.

There are several ways that I see Widgets helping.

  1. Only a small group experienced programmers required. An army of programmers is required to make a software base big enough to be considered useful for a traditional OS. In this case, experienced programmers would write the complicated foundation pieces (Widgets, engines, servers, etc), then users would “construct” the applications they actually need. Users could also construct and share compound-widgets that they create. This is very similar to the command line tools that every Unix user knows and loves.

  2. Only a small number of fundamental Widgets would be required to make just about anything one might want.

  3. Application construction creates smarter, more competent users. When there is a simple system that allows anyone to build their own application, they become more empowered. App construction would engage the user in understanding the problem they are trying to solve, gain a greater understanding of the data they are processing and a greater understanding of the capabilities of the system as a whole as they go. Making this process visual and flexible is key.

  4. No more Walled gardens. When users can make most (all?) of the software they need, walled gardens start to fall. Without viable options for user created software, the current situation of “app stores” and draconian OSes will just continue to get worse.

Two existing Direct Manipulation systems available today (that I’m aware of) that can do this are “Morphic” and “KSWorld”. Morphic originated from the Self project at Sun Microsystems. Today, Morphic is alive and well in various Smalltalks (Squeak/Cuis/Pharo) and in LivelyKernel (Morphic for the web).

Even better than Morphic is KSWorld.
KSWorld was recently made by Viewpoint Research Institute (VPRI.org) which was lead by Alan Kay. KSWorld is part of their “STEPS” project research. KSWorld is a flexable Direct Manipulation GUI that can allow even new users to create powerful and feature rich software. They refer to it as a “Universal Document”.

Here are some links to papers written by Viewpoint research Institute (VPRI).
These papers focus on using Functional Reactive Programming to make GUI programming easier and vastly reducing the amount of code required.

I have listed them newest to oldest.

"KScript and KSWorld: A Time-Aware and Mostly Declarative Language and Interactive GUI Framework"

"Making Applications in KSWorld"


There’s a highly relevant discussion going on in Rust Internals right now: