Visual Development Environment

Visual program development is in its infancy.  There seems to be a common ailment in the field of visual development environments of today:  They can't take advantage of all the features of the language they are based on, and most definitely can't take advantage of all the features of the OS.  A development environment should have access to all aspects of the runtime system and its hardware.

An operating system created, from the ground up, with hardware/software abstracts could easily maintain a visual development environment that can take advantage of all aspects of the OS.  Here is an example of a (potential) development screen with the ten high level hardware abstracts on the tool bar, and a sample program in progress:

The tool bar brings up child windows that contain a list of all possible functions of this high level abstract.  There are, of course, other toolbars for medium and low level abstracts.  Each abstract and function would contain it's own iconic representation to be used to display in the visual editor.

Each iconic representation, when accessed (clicked on), would bring up the properties for that object.  The arrows point to program flow.  As you can see, the arrows branch off at the beginning.  This would be how threading would be accomplished (with properties all its own for synchronization)..