CosmicOS Development Roadmap
There isn't quite a roadmap for CosmicOS yet, but here is a report on
its status. Development work on CosmicOS can be decomposed into the
following activities:
- Medium: Finding the most
productive ways to encode the message in physical processes, for
transmission or long-term storage.
- Kernel: Communicating a core set of logical and
mathematical ideas, a simple programming language, and the overall
structure of the message.
- Library: Contructing a broad collection of derived concepts
from the kernel, enriching the shared language.
- Bridging: Making it possible to include code written in a
conventional programming language in the message. This is important
to simplify development, and to insulate as much of the message as
possible from changes to the kernel.
- Alternative primers: Integrating entirely different
kernels/primers into the message, to give alternate starting
points to a reader.
- Simulations: A key advantage of the algorithmic
approach to communication is that it is possible to
include simulations and games, to communicate about
physical and social properties by demonstrating behavior.
Medium
This issue has been studied extensively by others, so it is dealt with
only superficially in this project. A toy auditory form of the
message has been developed, and a few toy visualizations. Given that
the message can be compiled to a sequence of 4 symbols, and has a very
regular structure, encoding it physically should not be difficult.
Kernel
A basic kernel has been developed, reminiscent of scheme or lisp (but
much simpified). The major limitation currently is that there is no
treatment of real numbers yet, just integers.
Library
Again, a very basic library is in place. The issue of efficiency
needs to be addressed -- some of the constructs used are
very inefficient. It seems better to go for the simplest possible
constructs, but this trade-off could be re-evaluated.
Bridging
The approach adopted here has been to support a subset of Java.
Java byte-code is translated into code that can be inserted
into the message, and evaluated in terms of the kernel+library.
The Java support is being added step by step, and is far from
complete (and again, uses inefficient constructs to maximize
simplicity).
Alternative primers
Work on this has just begun. Based on discussions with Brian
McConnell, logic circuits have been chosen as an alternate starting
point. 2D images of circuits have been introduced into the message,
and related to the kernel. But a lot more needs to be done to
make this a true alternate starting point for the message.
Simulations
Pending the introduction of real numbers, there are no
physical simulations. There is the beginning of a
simulated adventure game with rooms and doors and
characters moving around, but it is very rudimentary
and wouldn't be very understandable yet.