The below description may not remain accurate but is kept for reference.
I think of TUNES as a standards platform; an interface that should act the same on every computer system that implements the standard. The standard would be created collaboratively through the TUNES project. TUNES will be a standard for a complete computing system where the source code to any running program is easily accessible and modifiable on the fly; in a word, reflective.
Max is a specific architecture designed to implement the principles (formerly called requirements) set forth by the TUNES HLL project. As such, Max should be perfectly suitable as the underlying system used to implement any other features desired by the TUNES project. However, Max's scope stops at the minimum requirements to implement the principles, for two reasons:
On the other hand, TUNES does not have a design for an OS or for a core system, and I do not care to try to convince anyone that my design should be called TUNES (especially since my design hasn't been proven to work yet). Since my work is released publically with no restrictions (License heading below), members of TUNES are, and anyone else is welcome to make changes, add features and re-release it under any name they wish. It's more important that Max simply get finished. If I succeed, then members of TUNES can adequately evaluate Max and determine what relationship they wish to pursue with me. Until then, I'm in coding phase since I believe I have enough ideas to work with for now.
The essential idea is that existing software systems don't operate well together because the programmers thought their mission was to create narrowly-defined, specific behavior. Of course systems don't work well together when they weren't designed with that goal in mind. I intend to fix this with Max by thinking about the bigger picture the entire time: for each component, it must incorporate cleanly into the overall design. Max will be the center piece of the computing system; the core, which every piece of software will be integrated with, and through this core, all the other software that integrates with the core. To integrate software into Max, you use Max's type system for all your data (which should be expressive enough to include any type from any other language), and Max's flexible data flow specification system for all your code. The specification system connects components together using types, and should be expressive enough to support any language paradigm such as functional, procedural and declarative. Max will include a dynamic compiler that looks at the specification to generate code and schedule it for execution. The input specification to the dynamic compiler is integral, and its output is integral if it does its job in implementing the specification. Reflection is accomplished by having the DC running at all times and updating the implementation based on changes in the specification.
I believe a usable computing system based on a dynamic compiler is possible efficiently on current hardware, because reflective systems are inherently more efficient than non-reflective systems. My definition of efficiency is "how long it takes to do what the user wants." In the case when the programmer is a different person from the user, there will nearly always be impedance mismatch between what the programmer wrote and what the user actually wants done. There is nearly always inefficiency, therefore, unless users have the ability to adapt programs to their own needs. Reflective systems are adapted to just this goal, and therefore reach the highest possible efficiency according to my definition. The user in this case is me, and I want to create elegant, transparent, revolutionary code.
Version 0.1: functions specified by listing tuples explicitly, and builtin functions implemented in LISP.
Version 0.1: can build expressions from the bottom up and evaluate them
Version 0.1: Enumerated types, "infinite" types implemented by CLOS instances
Version 0.1: Product and sum types are present
Not in Version 0.1
Not in Version 0.1
Version 0.1: None, nothing worth saving
Version 0.1: Several address types implementing ADTs demonstrate use of the unified addresses