LispOS Kernel: the Tunes approach
Sun, 4 May 1997 15:41:42 -0500
[ -- snip -- ]
| Of course, first-class environments, that I strongly recommend
| as a proponent of a fully reflective architecture in general
| trivialize modules and functors.
| We need expose them anyway while implementing the system,
| and they have many other advantages
| (i.e. trivial representation of directories as environments, etc).
| The fully reflective architecture I propose
| makes everything a first class object,
| with ways to remove overhead at compile time, which implies the ability
| for the compiler to detect or be hinted which features will not be used,
| and for the dynamic envirionment to check and enforce such invariants.
| [Even Linux has first-class modules, though C not being a scoped
| they hardly can provide functors].
| It is my belief that reflective programming is
| the natural generalization of dynamic programming,
| that solves open implementation and many other problems.
Being a Smalltalk hacker for some time, I think the fully reflective
environment/OS is definitely the way to go. Environments that are
not reflective always seem to be broken to me (not having all the
source code available online for the entire system for programming,
debugging, study,... also seems broken).
Reflection directly and simply solves so many of the problems that
plague most OSs (and languages).
Xerox PARC has a very nice project called Open Implementation -
<http://www.parc.xerox.com/spl/projects/oi/> - which discusses
some of this and refutes the prevailing "black box" design idea.