Hyper-Programming
Another promising application of persistence technology is visual programming.
Current visual development tools, such as Visual Basic or Delphi, only provide
a form of limited persistence. For example, Delphi allows a programmer to
create long-term objects at design-time. As soon as the programmer closes the
project, the Delphi environment saves these design-time objects into some
containers and so keeps these objects long-lived. When a Delphi application
runs, the Delphi library will automatically fetch all design-time objects and
rearrange them in memory. In this way, the Delphi library makes sure the run-time
view equal to the design-time view at start-time. At run-time, these objects
may change, and the run-time view may become different from the design-time
view. However, these changes will be discarded when the application ends. At
this point, the design-time objects cannot be regarded as persistent objects.
In other words, current visual development tools fail to manipulate real
persistent objects.
If a visual development tool can really manipulate
persistent objects, the boundary between design-time and run-time will be
eliminated. In a program developed by this kind of tool, all state changes,
either at design-time or at run-time, are preserved. In contrast, state changes
of a traditional program only occur at design-time. At run-time, state changes in
the memory image are all discarded when the program ends. This new kind of
program is known as a hyper-program [], which will challenge "our
traditional notions of what constitutes a computer program"[]. Different
from a traditional program, a collection of short-term data, a hyper-program is
a collection of persistent objects. As persistent objects are usually stored in
storage devices with very large capacity, a hyper-program requires a very large
address space. This address space can be a flat space. Or, a non-flat address
space sounds better since storage devices are usually organized in a non-flat
address space like a Unix device namespace. A non-flat persistent space,
similar to the hierarchical file system, can offer better scalability and
distribution than a flat address space can.
With a non-flat persistent space, a hyper-program
can be a website composed of many interlinked objects with different lifetimes
and locations. Composing a hyper-program actually becomes a work of composing a
website, vice versa. The procedure of composing a hyper-program can be named
"Hyper-programming"[]. Hyper-programming [] allows the representation
of source programs to include hyper-links to both data and code, therefore
programming and web designing will converge into a single, universal view. In
this universal view, building a large-scale, complex application like a Grid
system can be an easy and pleasant job.
Based on Hyper-programming, word processing
technologies will seamlessly combine with programming technologies. With this
combination, programming becomes a work of page making, and vice versa. The
document produced by this combination will look smarter, livelier, more
interactive, and more versatile than the document produced by current technologies.
Think what will happen if a high school student easily uses a word processor to
write (not program) a video game like Age of Mythology, or a physical teacher
uses a word processor to write an interactive page for demonstrating the theory
of Relativity in his/her lesson. In future, a book will be composed of many
interactive pages and allow readers to add their ideas or comments by using a
word processor to edit these pages.